Paypal NVP API - BMUpdateButton

标签 paypal paypal-nvp

我有一个使用 PayPal 的托管订阅按钮,我希望它的计费周期不受限制。这很容易通过 PayPal 网络界面进行设置,只需设置“在多少个周期后应停止计费?”到“从不”。但是,当我随后通过 PayPal NVP API BMUpdateButton 更新该按钮时,计费周期数向用户显示为“一个月 25.00 澳元”而不是“每月 25.00 澳元”。该按钮在 Web 界面中仍显示“从不”作为值,但在使用时,该按钮设置为在 1 个月后完成。

我尝试了 L_OPTIONnTOTALBILLINGCYCLESx API 参数的变体,但没有成功。任何帮助或想法将不胜感激。据我所知,这是 PayPal 本身的一个微妙错误。如果有人有理由相信如果我从 NVP 切换到 SOAP 它会起作用,那么这也算作一种解决方案。

这是我发送的参数示例。我没有收到任何 API 错误,按钮更新正确,但总计费周期除外。

'METHOD' => BMUpdateButton
'VERSION' => 117
'USER' => ...
'PWD' => ...
'SIGNATURE' => ...

'L_OPTION0SELECT0' => First Tier
'L_OPTION0PRICE0' => 25.00
'L_OPTION0BILLINGPERIOD0' => Month
'L_OPTION0BILLINGFREQUENCY0' => 1
'L_OPTION0TOTALBILLINGCYCLES0' => 0

'L_OPTION0SELECT1' => Second Tier
'L_OPTION0PRICE1' => 30.00
'L_OPTION0BILLINGPERIOD1' => Month
'L_OPTION0BILLINGFREQUENCY1' => 1
'L_OPTION0TOTALBILLINGCYCLES1' => 0

'HOSTEDBUTTONID' => ...
'BUTTONTYPE' => SUBSCRIBE
'OPTION0NAME' => Payment Scheme
'L_BUTTONVAR0' => currency_code=AUD
'L_BUTTONVAR1' => no_shipping=1
'L_BUTTONVAR2' => cancel_return=...
'L_BUTTONVAR3' => return=...

非常感谢您的任何想法。

最佳答案

API 调用中的以下两个参数与分期付款按钮相关,如果您将它们与订阅类型按钮一起传递,它们将被忽略。

L_OPTION0BILLINGFREQUENCY0

L_OPTION0TOTALBILLINGCYCLES0

如果您希望更新订阅计费周期,您需要传递这两个参数:

L_BUTTONVARn="src=1"

L_BUTTONVARn="srt=12"

如果上面的 src=1 意味着 profile 被设置为 recurring 并且 srt=12 将设置 billing cycle 为 12 。

如果您未在 API 调用中传递任何参数,则默认情况下“src”将设置为“0”,表示不会重复出现,这与您的情况类似。

关于 Paypal NVP API - BMUpdateButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26110850/

相关文章:

PayPal Pro NVP API 错误本地化

paypal - 禁用 PayPal 页面上的付款方式选项 (PayPal NVP)

paypal - SetExpressCheckout Paypal API : Using "physical" category for digital goods

android - 新的 PayPal 沙盒测试用户帐户

localization - 如何控制 Paypal 沙盒中显示的语言?

python - 如何使用 django-paypal 获取付款通知

paypal - DoExpressCheckoutPayment 问题 - 不返回付款状态

paypal - 使用 PayPal Payflow 设置采购订单号或客户引用号

paypal-sandbox - paypal payment direct pro sandbox 仅适用于美国账户?

php - 在 Paypal 中存储客户数据