2011-07-26 25 views
2

好吧,PayPal的文档和示例很痛苦,所以我希望别人能帮我弄清楚。我正在使用他们的NVP API执行PayPal SetExpressCheckout请求。看来我的代码产生一次性付款,而不是订阅(当我在PayPal的沙盒买方/卖方面板上以单一付款格式接收IPN时,我发现了这个问题,而不是订阅格式,没有任何说明历史上的支付是反复出现的),所以我想知道我做错了什么。这些都是我使用的key =>值对,当然我会以正确的方式将它们发送给PayPal,正如我所说的那样,但不是我想要的方式。定期付款的SetExpressCheckout请求有什么问题?

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 '[email protected]' (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”!?

任何帮助表示赞赏。如果您需要更具体的信息,我会提供一切,只需添加评论。

回答