更新paypal结算方案(payment_definitions)

时间:2015-12-15 08:48:13

标签: curl paypal paypal-sandbox

我想更改结算方案的金额,但在尝试执行此操作时遇到错误。 如果计划已经与协议相关联,则可以更改计划的条款(payment_definitions)吗?

请求:

curl -v -k -X PATCH 'https://api.sandbox.paypal.com/v1/payments/billing-plans/[plan id]' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <Access-Token>" \
-d '[
    {
        "path": "/payment_definitions/[payment_definitions_id]/amount",
        "value": {
            "currency": "EUR",
            "value" : "10"
        },
        "op": "replace"
    }
]'

响应:

{
   "name":"BUSINESS_VALIDATION_ERROR",
   "details":[
      {
         "field":"validation_error",
         "issue":"Invalid Path provided."
      }
   ],
   "message":"Validation Error.",
   "information_link":"https://developer.paypal.com/webapps/developer/docs/api/#BUSINESS_VALIDATION_ERROR",
   "debug_id":"183e87c07085e"
}

4 个答案:

答案 0 :(得分:1)

我现在遇到了同样的情况!

到目前为止我研究过,不可能改变计费计划的数量和金额相关约束,因为paypal可能不提供该服务。

例如,让我们说,有一个处于活动状态的计划P1。因此,可能会有一些协议,比方说A1,它们订阅了P1。

所以,问题很清楚,如果A1订购P1计划有一些金额,可以说200美元,订户每次付款收费200,但万一,如果你改为210美元,你根本无法收费订户210美元。:))

但在您的情况下,我认为路径无效,并且响应清楚地表明错误。

答案 1 :(得分:1)

您可以尝试使用create_agreement_request approach。请求中有override_charge_models对象。您可能会在该对象中找到金额字段。为此,您必须知道协议ID(看起来像“ I-XXXXXXXXX”)和交易ID(有时称为sale_id或capture_id)。

我不得不说我还没有尝试过,但这是一种新功能。我想它应该在不取消订阅的情况下更新定期付款的金额。

答案 2 :(得分:0)

您无法更新或修补计费计划。您只能更改每个客户的结算协议。

贝宝提供了两种API。

答案 3 :(得分:0)

最近,贝宝(PayPal)打开了用于订阅付款的新API。您现在可以在此页面中看到以下通知,现已弃用了用于结算计划和结算协议的以前的API:

https://developer.paypal.com/docs/api/payments.billing-agreements/v1/

此新API支持升级和降级用户计划或更改(例如)许可证数量。

https://developer.paypal.com/docs/subscriptions/

希望这会有所帮助。