0

我正在尝试使用贝宝作为我网站的付款方式。

我的网站只销售一种虚拟货币,比如在线游戏中的“钻石”。

因此,在阅读后我开始使用 Express Checkout for Digital Goods,对吗?还是我必须使用其他付款方式?

那么我的问题是当使用 Express Checkout for Digital Goods 时,如何传递自定义变量?

假设我想将数据库中的 user_id、diamond_id 和其他一些变量支付给 paypal api。似乎贝宝不支持自定义变量传递 api 调用。我想在用户完成付款后,Paypal 通知我的服务器通过 user_id 和我传递的一些其他变量完成付款,这样我很容易知道细节。

搜索后我找到了一些解决方案,

第一个解决方案是将“TOKEN”(从“SetExpressCheckout”方法生成)和我属于TOKEN的自定义变量存储在数据库中,然后在支付完成后paypal将通知我的服务器之前保存的相同TOKEN。所以我会根据TOKEN查询。第二种解决方案是在 RETURNURL 变量http://www.mysite.com/successpayment.php?user_id=13&diamond_id=88中使用 get 样式所以我很容易抓住 GET 变量。哪种解决方案是正确的?有什么解决办法吗?以及如何确保付款确认的安全,我的意思是如果有人知道并破解了我的返回网址。

提前致谢

4

1 回答 1

1

整个过程有两个部分能够成功识别您的订单:

  1. 要在用户通过成功或取消 URL 重定向回来时识别您的订单,只需通过 URL 的查询字符串传递订单 ID。

  2. 当 Paypal 通过 IPN 发送有关交易和相关事件(退款、撤销、争议等)的通知时识别您的订单:Paypal 确实支持传递变量,它允许您将 IPN 关联到数据库中的订单记录。

    • 对于快速结帐,您在 SetExpressCheckout 调用中设置 PAYMENTREQUEST_0_INVNUM
    • 如果您正在创建定期配置文件,则该参数在 CreateRecurringPaymentsProfile 调用中被命名为 PROFILEREFERENCE
    • 当您收到 IPN 时,发票分别作为“发票”或“rp_invoice_id”传递

(不过,我的一般建议是:仅在确实需要时才使用 Paypal)

于 2012-10-14T01:30:10.403 回答