好的,PayPal的文档和示例很痛苦,所以我希望其他人可以帮我解决这个问题。我正在使用他们的NVP API进行PayPal SetExpressCheckout请求。似乎我的代码产生一次性付款而不是订阅(我在接收单一付款格式的IPN时发现,而不是订阅格式,也是在paypal的沙盒买家/卖家面板上,没有任何内容表明历史上的付款经常发生),所以我想知道我做错了什么。那些是关键=>我使用的价值对,当然我会以正确的方式内爆并将它们发送给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 'dimitar@instinctiv.com' (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“!?
感谢任何帮助。如果您需要更多具体信息,我将提供所有内容,只需添加评论。
答案 0 :(得分:4)
您仍然需要调用CreateRecurringPaymentsProfile来创建定期付款配置文件。如果您不想为初始金额计费,可以将AMT设置为“0”以进行SetExpressCheckout API调用。另请参阅https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_nvp_r_CreateRecurringPayments
中的https://www.paypalobjects.com/en_US/ebook/PP_ExpressCheckout_IntegrationGuide/RecurringPayments.html和表4.2