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 定期付款