看看我是怎么开始完成手术的,
第一步。首先称为setexpresscheckout,
AMT=0.00
PAYMENTREQUEST_0_AMT=0.00
PAYMENTACTION
BILLINGAGREEMENTDESCRIPTION
BILLINGTYPE=MerchantInitiatedBilling
RETURNURL
CANCELURL
CURRENCYCODE
SOLUTIONTYPE=Sole
LOCALECODE=us
LANDINGPAGE=Billing
第二步。然后我打电话给CreateBillingAgreement
TOKEN
PAYERID
PAYMENTACTION
AMT
CURRENCYCODE
IPADDRESS
它返回帐单ID。
第三步。使用参数调用DoreferenceTransaction:
&REFERENCEID=B-0GJ65589SA3528026 //billing Id generated by CreateBillingAgreement method
&PAYMENTACTION=Sale
&AMT=3.00
&CURRENCYCODE=USD
&IPADDRESS=paypalrecurring.com
&L_ITEMCATEGORY0=Digital
&DESC=Test+Recurring+Payment%28+%243.00+monthly%29
&L_PAYMENTREQUEST_0_ITEMCATEGORY0=Digital
&L_PAYMENTREQUEST_0_QTY0=1
&L_PAYMENTREQUEST_0_NAME0=Test Name
&L_PAYMENTREQUEST_0_AMT0=3.00
&L_NAME0=Test Name
&L_DESC0=Test+Recurring+Payment%28+%243.00+monthly%29
&L_AMT0=3.00
&ITEMAMT=3.00
&L_QTY0=1
但是艾罗的眼睛:
Array
(
[TIMESTAMP] => 2015-11-03T11:29:51Z
[CORRELATIONID] => 811b64f880aff
[ACK] => Failure
[VERSION] => 69
[BUILD] => 000000
[L_ERRORCODE0] => 10004
[L_SHORTMESSAGE0] => Invalid Data
[L_LONGMESSAGE0] => This transaction cannot be processed.
[L_SEVERITYCODE0] => Error
[TRANSACTIONTYPE] => None
[PAYMENTTYPE] => None
[ORDERTIME] => 1970-01-01T00:00:00Z
[PAYMENTSTATUS] => None
[PENDINGREASON] => None
[REASONCODE] => None
)
请告诉我哪里错了。
注意:PayPal团队说RT已启用。(沙盒测试)
最佳答案
第一次尝试设置
再发生
DoreferenceTransaction API调用的字段。
如果没有成功,请使用方法createRecurringPaymentsProfile代替doreferenceTransaction。API Documentation link。
我建议不要使用贝宝沙盒-只要使用https://api-3t.paypal.com/nvp并将价格设置为0.01-这将防止双重测试
当方法setexpresscheckout和(在您的情况下)doreferencetransaction之间不兼容时,出现错误10004
关于错误“Express Checkout Digital Goods不再适用于新集成”:
我们与PayPal支持部门联系,为我们的PayPal主帐户激活数字商品。此外,我们多次尝试激活贝宝账户内的数字商品,几天后,这个错误消失得像个奇迹:)
我不太确定如何解决这个错误,但在尝试了许多不同的测试(包括询问PayPal支持)后,他就消失了。所以我的建议是继续尝试不同的方法和组合