PayPal PDT是什么?怎么设置PDT token?

来源:互联网 发布:java 正则表达式语法 编辑:程序博客网 时间:2024/05/10 02:58

付款数据传输 (PDT) 使得商家能够向完成付款后跳转回其站点的买家显示交易详情。对于提高客户的购买体验有一定帮助。

PDT通常和PayPal的网站付款标准版(Web Payment Standard)配合使用,目前快速结账(Express Checkout)和信用卡付款尚不支持PDT。

工作原理

一旦启用 PDT,每次买家进行网站付款并被重新定向到您的返回 URL 时,一个交易标记将作为“GET”变量传递给此返回 URL。为了正确使用 PDT 并向客户显示交易详情,您需要构建一个指向PayPal的 HTTP POST,以便从PayPal取得变量名为“tx”的交易标记和检索交易详情。

您的 POST 应发送到 https://www.paypal.com/cgi-bin/webscr。您必须使用变量“tx”和以前收到的交易标记值(如“tx=transaction_token”)发送交易标记,并且使用变量“at”和 PDT 身份标记值(如“at=identity_token”)发送特殊身份标记。您还需要将名为“cmd”,值为“_notify-synch”的变量(例如“cmd=_notify-synch”)附加到 POST 字符串。

PayPal将回复该 POST,并在回复的正文某行中包含一个词“成功”或“失败”。当收到“成功”回复时,回复正文的其余部分将为交易详情,一行一项,格式为 key=value,其中 key 和 value 都是 URL 编码字符串。需要对此回复数据进行适当解析,然后进行网络解码。

成功回复示例:
成功
first_name=Jane+Doe
last_name=Smith
payment_status=Completed
payer_email=janiedoesmith@hotmail.com
payment_gross=3.99
mc_currency=USD
custom=For+the+purchase+of+the+rare+book+Green+Eggs+&+Ham
...

您可以向客户显示您认为适当的付款详情;不过,PayPal建议包括送货地址、付款者电子邮件和付款金额。如果您使用 PDT 确定何时自动完成订单,请确认 payment_status 为已完成,因为买家可能使用像电子支票那样的付款方式,这种方式不能立即结算。

如果您使用这些数据来完成订单,PayPal强烈建议您启用 IPN 以确定何时结算这些待付款。欲知更多信息,请参阅PayPal IPN 手册,该手册可在PayPal网站上找到。

如果该回复是“失败”,那么您可以尝试重新寄回PayPal以确定是否是网络错误造成的故障;不过,如果第二次尝试同样失败,PayPal建议您检查脚本并进一步调查:

  • 确保 txn_id 未重复,以防止某些人重复使用旧的已完成的交易。
  • 验证 receiver_email 是已在您的PayPal账户中注册的电子邮件地址,以防止将付款发送到欺诈者的账户。
  • 检查其他交易详情(如物品号和价格),以确认价格未改变。


 

IPN 变量

有关所有 IPN 变量的完整列表以及如何使用“即时付款通知”的详细说明

 

原创粉丝点击