使用php的paypal自定义变量解决方案

标签 paypal

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

我的网站只卖一种虚拟货币,就像网络游戏中的“钻石”。

所以在阅读之后我开始使用 Express Checkout 购买数字商品,对吗?或者我必须使用其他付款方式?

那么我的问题是在使用数字商品快速结帐时,如何传递自定义变量?

假设我想从我的数据库向 paypal api 支付 user_id、diamond_id 和其他一些变量。似乎 paypal 不支持自定义变量来传递 api 调用。我希望在用户完成付款后,Paypal 通过 user_id 和我传递的其他一些变量通知我的服务器付款已完成,这样我就很容易知道详细信息。

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

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

提前致谢

最佳答案

整个过程中有两部分可以成功识别您的订单:

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

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

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

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

关于使用php的paypal自定义变量解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12870476/

相关文章:

android - 如何修改Card-IO手动录入画面

Paypal 网站支付专业版 : Express Checkout: How to Hide "Purchase Details" in Paypal?

c# - 将 PayPal 与控制台应用程序集成

javascript - PayPal Checkout JS 错误处理

Wordpress 支付错误

magento - 经常性配置文件和捆绑项目

Paypal $0 美元交易?

PayPal - 如果已经批准了一些计费协议(protocol),则计费计划处于非事件状态怎么办?

javascript - PayPal 开发人员关于逗号的问题

paypal - 哪个 Paypal API 用于预核准付款?