定期付款的 ExpressCheckout 需要哪些 API 调用

Posted

技术标签:

【中文标题】定期付款的 ExpressCheckout 需要哪些 API 调用【英文标题】:what are the necessary API calls for ExpressCheckout with recurring payments 【发布时间】:2012-10-20 20:21:51 【问题描述】:

我的通话流程如下:

设置ExpressCheckout GetExpressCheckout DoExpressCheckout

注意:paymentAction 是单次付款的销售和定期付款的授权

使用初始金额创建RecurringProfile(仅用于定期付款)

我发现:

钱有待扣押。

个人资料还扣除了首期付款。

当我试图扣款时,客户被扣款两次。

问题:

    请您告知我的 API 调用中缺少什么? 对于定期付款,您认为我不需要致电 调用 CreateRecurringPaymentsProfile 之前的 DoExpressCheckout API API? 如果问题 2 为真,如果 CreateRecurringPaymentsProfile API 调用 成功即 $createRPProfileResponse->Ack == "SUCCESS", 那么这是否意味着我和我可以保证初始金额 可以允许访问我的服务吗?

【问题讨论】:

【参考方案1】:

听起来你对你正在做的事情有点不习惯。您不会将定期付款资料设置为“授权”。

如果结帐只是定期付款,则无需调用 DoExpressCheckoutPayment。例如,您只需要在需要为您运送的产品一次性付款的情况下拨打这两个电话(DECP 和 CRPP),然后还要在此基础上创建订阅。在您的情况下,听起来您只需要 CRPP。

您仍然需要调用 SEC 和(可选)GECD,但您只需使用 CRPP 即可完成它。 (旁注:确保您已在 SEC 请求中包含计费协议详细信息。这是很多人常犯的错误,最终在调用 CRPP 时会出现无效令牌错误。)

成功的确认并不意味着初始金额已获得批准。它只是意味着配置文件已成功创建。但是,请求中有一个可用参数 FAILEDINITACTION,您可以使用该参数指定是否要让配置文件保持活动状态,或者在初始付款失败时立即暂停配置文件。它接受以下值:ContinueOnFailure / CancelOnFailure

不过,不要让这让您感到困惑。它实际上会将个人资料状态设置为暂停,而不是取消,因此您只需在他们付款后重新激活它。

当您构建登录系统以访问您网站的付费区域时,您可以使用 GetRecurringPaymentsProfileDetails API 检查个人资料的当前状态,并仅在其处于活动状态时才允许访问。

希望有帮助!

【讨论】:

谢谢安德鲁,这是正确的。我发现即使有初始付款,也不需要调用 DoExpressCheckout API 来进行定期付款。 例如,如果您的服务正常收费为每月 10 英镑,并且您希望您的客户可以在 10 天内使用您的服务,初始金额为 5 英镑。十天后,您希望继续正常收费。您不需要调用 DoExpressCheckout API,您只需调用 SetExpressCheckout 并在 CreateRecurringPaymentsProfile API 调用期间,将初始金额设置为 5 英镑,并将配置文件开始日期设置为当前日期加上十天。初始金额将在创建定期资料时扣除,随后的定期付款将在十天后开始。 对...这就是我在回答中解释的内容。 ;)

以上是关于定期付款的 ExpressCheckout 需要哪些 API 调用的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

PayPal API 混淆 - ExpressCheckout 使用哪一个

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

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