了解我是如何开始完成程序的,
步骤1.首先调用SetExpressCheckout,
AMT=0.00
PAYMENTREQUEST_0_AMT=0.00
PAYMENTACTION
BILLINGAGREEMENTDESCRIPTION
BILLINGTYPE=MerchantInitiatedBilling
RETURNURL
CANCELURL
CURRENCYCODE
SOLUTIONTYPE=Sole
LOCALECODE=us
LANDINGPAGE=Billing
第2步。然后我调用了CreateBillingAgreement
TOKEN
PAYERID
PAYMENTACTION
AMT
CURRENCYCODE
IPADDRESS
返回结算ID。
步骤3.使用参数调用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。 (沙盒测试)
答案 0 :(得分:0)
首先尝试设置
重新开始
DoReferenceTransaction API调用的字段。
如果没有成功,请使用方法CreateRecurringPaymentsProfile而不是DoReferenceTransaction。 API Documentation link
我建议不要使用paypal沙箱 - 只需使用https://api-3t.paypal.com/nvp并将价格设置为0.01 - 这样可以防止双重测试
当方法SetExpressCheckout与(在您的情况下)DoReferenceTransaction
之间存在不兼容时出现错误10004关于错误“Express Checkout数字商品不再适用于新的集成”: 我们与Paypal支持联系,以激活我们的主要paypal帐户的数字商品。此外,我们多次尝试在我们的paypal帐户中激活数字商品,几天后这个错误就像奇迹一样消失:)
我不太确定如何解决此错误,但在尝试了许多不同的测试(包括要求PayPal支持)之后,他就消失了。所以我的建议是继续尝试不同的方法和组合