ExpressCheckout 定期付款 - 找不到解决方案

Posted

技术标签:

【中文标题】ExpressCheckout 定期付款 - 找不到解决方案【英文标题】:ExpressCheckout with recurring payments -- Cannot find solution 【发布时间】:2013-10-22 15:34:09 【问题描述】:

我一直在尝试使用定期付款设置 ExpressCheckout,但找不到解决方案。

查看文档 (Recurring Payments With the Express Checkout API),该图给出了最后调用“CreateRecurringPaymentsProfile”的序列。

现在,查看其他文档 (How to Create a Recurring Payments Profile with Express Checkout),解释的不同步骤给出了不同的顺序,其中“CreateRecurringPaymentsProfile”直接位于“GetExpressCheckoutDetails”之后。

我尝试按照第二个示例进行操作,但系统性地收到一个错误。

有人能告诉我我到底需要做什么吗? 当然,一个实际的例子会非常受欢迎......

提前,非常感谢

附加信息:

我收到的错误是“INVALID TOKEN”。

这是我发送的信息:

版本=84.0 METHOD=CreateRecurringPaymentsProfile LOCALECODE=FR TOKEN=[我从 SetExpressCheckout 收到的] PROFILESTARTDATE=[下次付款的日期] BILLINGPERIOD=月 计费频率=6 TOTALBILLINGCYCLES=0 AMT=[和我在 PAYMENTREQUEST_0_AMT 中提到的一样] AUTOBILLAMT=AddToNextBilling CURRENCYCODE=EUR MAXFAILEDPAYMENTS=3 DESC=[和我在 L_BILLINGAGREEMENTDESCRIPTION0 中提到的一样] L_PAYMENTREQUEST_0_NAME0=[与我在 SetExpressCheckout 中使用的相同] L_PAYMENTREQUEST_0_DESC0=[与我在 SetExpressCheckout 中使用的相同] L_PAYMENTREQUEST_0_AMT0=[与我在 SetExpressCheckout 中使用的相同] L_PAYMENTREQUEST_0_QTY0=[与我在 SetExpressCheckout 中使用的相同] L_PAYMENTREQUEST_0_TAXAMT0=[与我在 SetExpressCheckout 中使用的相同]

我是否还需要提及: L_BILLINGAGREEMENTDESCRIPTION0 & L_BILLINGTYPE0 ?

【问题讨论】:

@Machavity 我可以使用 Express 结帐付款来进行动态金额的每月付款吗(我有频道包,每个包都有一些不同的金额。)并且用户支付一个月,然后这个包将下个月自动续费,扣款。我可以这样做吗? 我得到的错误是“Invalid Token”。 【参考方案1】:

如果您收到 11502 Invalid token,您需要在 SetEC API 请求中传递以下变量:

BILLINGAGREEMENTDESCRIPTION=您的帐单协议名称BILLINGTYPE=RecurringPayments

请检查以下 EC+RP 流程的工作原理:

1) SetExpressChekout + BILLINGAGREEMENTDESCRIPTION 和 BILLINGTYPE 变量

版本 = 86.0 方法 = SetExpressCheckout 返回网址 = http://www.website.com/return.php 取消网址 = http://www.website.com/cancel.php PAYMENTREQUEST_0_CURRENCYCODE = 美元 PAYMENTREQUEST_0_PAYMENTACTION = 销售 L_BILLINGTYPE0 = 定期付款 L_BILLINGAGREEMENTDESCRIPTION0 = SameEveryTime PAYMENTREQUEST_0_AMT = 1.00 PAYMENTREQUEST_0_ITEMAMT = 1.00 PAYMENTREQUEST_0_DESC = 实验室 L_PAYMENTREQUEST_0_NAME0 = 实验室 1 L_PAYMENTREQUEST_0_NUMBER0 = 10101 L_PAYMENTREQUEST_0_QTY0 = 1 L_PAYMENTREQUEST_0_AMT0 = 1.00 L_PAYMENTREQUEST_0_DESC0 = 下载

2) 登录您的 PayPal 帐户并点击“接受并继续”

https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-2EJ022116H3067544

买家登录他的 PayPal 账户并点击“同意并继续”按钮, 然后他将被重定向到 RETURNURL+ token+ PayerID:

http://www.website.com/return.php?token=EC-2EJ022116H3067544&PayerID=HHHAPCFUM9ULW

3) 然后你可以运行 CreateRecurringPaymentsProfile + 令牌:

PROFILEREFERENCE=RPInvoice123 PROFILESTARTDATE=2016-08-17T14:30:00Z SUBSCRIBERNAME=Sub Scriber 先生 METHOD=CreateRecurringPaymentsProfile 代币=XXXXXXXXXXXXX DESC=SameEveryTime AMT = 1.00 BILLINGPERIOD=天 计费频率=3 版本=86.0 MAXFAILEDPAYMENTS=1 L_PAYMENTREQUEST_0_AMT0=1.00 L_PAYMENTREQUEST_0_NAME0=实验室 1 L_PAYMENTREQUEST_0_NUMBER0=10101 L_PAYMENTREQUEST_0_QTY0=1 L_BILLINGTYPE0=定期付款 L_BILLINGAGREEMENTDESCRIPTION0=每次都一样 L_PAYMENTREQUEST_0_ITEMCATEGORY0=数字

这是 NVP 响应:

PROFILEID=I-TOKEN123456 PROFILESTATUS=ActiveProfile 时间戳=2013-11-22T04:06:50Z CORRELATIONID=2b5be15a871ff ACK=成功 版本=86.0 构建=5908853

文档: ECRecurringPayments

API 参考 (NVP)SetExpressCheckout API requestCreateRecurringPayment API request

【讨论】:

以上是关于ExpressCheckout 定期付款 - 找不到解决方案的主要内容,如果未能解决你的问题,请参考以下文章

甚至可以使用 Express Checkout 进行定期付款吗?

通过使用 CC 而非贝宝帐户的 Express Checkout 定期付款

定期付款和更新定期付款资料限制

如何使用 Express Checkout 创建定期付款资料

贝宝:快速结帐。在单笔交易中设置一次性付款和定期付款

Paypal:通过 Express Checkout 定期付款,无需用户拥有 paypal 帐户