php - 此 SetExpressCheckout 定期付款请求有什么问题吗?

标签 php paypal paypal-subscriptions

好吧,PayPal 的文档和示例非常糟糕,所以我希望其他人可以帮助我解决这个问题。我正在使用他们的 NVP API 执行 PayPal SetExpressCheckout 请求。看来我的代码产生的是一次性付款而不是订阅(我在以单次付款格式而不是订阅格式接收 IPN 时发现这一点,而且在 paypal 的沙箱买方/卖方面板上也没有任何内容表明历史中的付款是重复发生的),所以我想知道我做错了什么。这些是我使用的 key => value 对,当然我会内爆并以正确的方式将它们发送到 PayPal - 正如我所说,它有效,但不是我想要的方式。

array
  'METHOD' => string 'SetExpressCheckout' (length=18)
  'PAYMENTREQUEST_0_AMT' => string '3.99' (length=4)
  'PAYMENTREQUEST_0_CURRENCYCODE' => string 'USD' (length=3)
  'PAYMENTREQUEST_0_PAYMENTACTION' => string 'Sale' (length=4)
  'PAYMENTREQUEST_0_INVNUM' => int 93
  'PAYMENTREQUEST_0_CUSTOM' => string '394mtrf1h5lfdeehvgrferk1n1' (length=26)
  'LOCALECODE' => string 'EN' (length=2)
  'NOSHIPPING' => int 1
  'REQCONFIRMSHIPPING' => int 0
  'RETURNURL' => string 'http://MYDOMAINXXXX.COM/payPal/return' (length=44)
  'CANCELURL' => string 'http://MYDOMAINXXXX.COM/upgrade' (length=38)
  'ALLOWNOTE' => int 0
  'LANDINGPAGE' => string 'Billing' (length=7)
  'EMAIL' => string '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="1e7a7773776a7f6c5e77706d6a77707d6a7768307d7173" rel="noreferrer noopener nofollow">[email protected]</a>' (length=22)
  'BILLINGPERIOD' => string 'Month' (length=5)
  'BILLINGFREQUENCY' => int 1
  'PROFILESTARTDATE' => string '2011-07-26' (length=10)
  'L_BILLINGTYPE0' => string 'RecurringPayments' (length=17)
  'L_BILLINGAGREEMENTDESCRIPTION0' => string 'Basic Subscription - 25GB' (length=34)
  'VERSION' => string '63.0' (length=4)
  'USER' => string 'pro_1307543338_biz_api1.gmail.com' (length=33)
  'PWD' => string 'XXXXXXXXX' (length=10)
  'SIGNATURE' => string 'AdTGraIKTCQ-O2lYSLlGJVfeJ1FWAKhC6Y8qZZxqGGkKkccrGxO45emb' (length=56)

我怀疑问题可能是 PAYMENTREQUEST_0_AMT 和其他 PAYMENTREQUEST_N_XXX 键,正如在 PayPal 文档中一样,我看到“PAYMENTREQUEST_N_AMT”“应该”设置为 0 以进行定期付款,而且在文档中他们说“使用了 AMT”指出每个计费周期要计费的金额,但已弃用,请改用 PAYMENTREQUEST_N_AMT"!?

感谢任何帮助。如果您需要更多具体信息,我将提供所有内容,只需添加评论即可。

最佳答案

您仍然需要调用 CreateRecurringPaymentsProfile 来创建定期付款资料。如果您不想收取初始金额,可以将 SetExpressCheckout API 调用的 AMT 设置为“0”。另请参阅https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_nvp_r_CreateRecurringPaymentshttps://www.paypalobjects.com/en_US/ebook/PP_ExpressCheckout_IntegrationGuide/RecurringPayments.html中的表4.2

关于php - 此 SetExpressCheckout 定期付款请求有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6828798/

相关文章:

ruby-on-rails - Paypal 重复出现问题 ruby​​ on rails

php - 造型 echo 错误

php - 发布到 SQL 的端点问题

php - 导出数据库转储文件不正确

php - 使用新的 REST API 应用程序从经典(IPN 端点)搜索 Paypal 交易

php - Paypal IPN : log for manual investigation

php - Paypal 订阅 : cost not shown at checkout?

php - 使用 PHPDoc 仅查找错误

javascript - 选中框脚本正在计算索引中未选中的框?

ruby-on-rails - 用户的未定义方法 'suspend_paypal'