0

我正在尝试实现此处描述的流程“设置网页以使用灯箱调用嵌入式支付流程” https://developer.paypal.com/webapps/developer/docs/classic/adaptive-payments/integration-guide /AIntro/

我能够获得初始支付密钥,并且得到如下响应:

{u'responseEnvelope': {u'ack': u'Success', u'timestamp': u'2013-08-06T01:59:32.228-07:00', u'build': u'6941298', u'correlationId': u'3f9b3609b9069'}, u'paymentExecStatus': u'CREATED', u'payKey': u'AP-4C138527MX750433P'}

此时,我们可以在我们的网站上显示“使用 PayPal 付款”按钮,按照付款方式进行操作等......现在问题出在 IPN 通知上。

我已经尝试过 IPN 模拟器,它发送的是带有这些值的 POST(例如):

Key: last_name - Value: Smith
Key: txn_id - Value: 245929950
Key: receiver_email - Value: seller@paypalsandbox.com
Key: payment_status - Value: Completed
Key: tax - Value: 2.02
Key: residence_country - Value: US
Key: invoice - Value: abc1234
Key: address_state - Value: CA
Key: payer_status - Value: verified
Key: txn_type - Value: web_accept
Key: address_country - Value: United States
Key: payment_date - Value: 01:43:47 6 Aug 2013 PDT
Key: first_name - Value: John
Key: item_name - Value: something
Key: address_street - Value: 123, any street
Key: mc_gross1 - Value: 12.34
Key: custom - Value: xyz123
Key: notify_version - Value: 2.1
Key: address_name - Value: John Smith
Key: test_ipn - Value: 1
Key: item_number - Value: AK-1234
Key: receiver_id - Value: seller@paypalsandbox.com
Key: business - Value: seller@paypalsandbox.com
Key: payer_id - Value: TESTBUYERID01
Key: verify_sign - Value: AFcWxV21C7fd0v3bYYYRCpSSRl31A.8pFOgHmGMTg8Lj.JUvXyp3bu63
Key: address_zip - Value: 95131
Key: address_country_code - Value: US
Key: address_city - Value: San Jose
Key: address_status - Value: confirmed
Key: mc_fee - Value: 0.44
Key: mc_currency - Value: USD
Key: shipping - Value: 3.04
Key: payer_email - Value: buyer@paypalsandbox.com
Key: payment_type - Value: echeck
Key: mc_gross - Value: 12.34
Key: quantity - Value: 1

事实上,我们接受 IPN 帖子的服务器必须能够接受任意数量的交易。那么,当我收到这样的消息时,我如何知道与哪个paykey相关?

1) 我可以使用 payer_email 跟踪付款,但如果付款人想登录并使用不同的 PayPal 帐户付款怎么办?

2) 如果同一个 PayPal 账户有两笔待付款,会发生什么?

3) 如果付款人不想创建 PayPal 帐户并想用他的信用卡付款怎么办?

在这三种情况下,我无法将收到的 IPN 消息连接到我的初始交易(我用支付密钥识别)。

看起来我错过了一些东西....有人可以帮我吗?谢谢!

4

1 回答 1

2

如果您想将自定义变量传递给Paypal用户从您的站点到那里的时间,该变量会在交易完成后返回到您的 IPN,您需要使用custom按钮中的字段。

<form name="_xclick" action="https://www.paypal.com/ca/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="custom" value="paykey:aBjKmNi223">
<input type="image" src="http://www.paypal.com/en_US/i/btn/x-click-but01.gif" border="0"     name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
</form>

您的 IPN 响应将如下所示...

Key: last_name - Value: Smith
Key: txn_id - Value: 245929950
Key: receiver_email - Value: seller@paypalsandbox.com
Key: custom - Value: paykey:aBjKmNi223

请注意,这只适用于名为custom. 您不能只使用任何字段。如果要传递多个对象,请在自定义字段中使用逗号分隔的字符串。

于 2013-08-06T14:41:52.913 回答