如何将 Paypal 计费计划从 ACTIVE 状态更改为 CREATED 状态?

Posted

技术标签:

【中文标题】如何将 Paypal 计费计划从 ACTIVE 状态更改为 CREATED 状态?【英文标题】:How to change Paypal Billing Plans to CREATED state from ACTIVE state? 【发布时间】:2015-06-22 13:43:22 【问题描述】:

我已经制定了 3 个单独的计费计划并将它们更新为 ACTIVE 状态。目前还没有任何与之相关的协议。

我希望能够在计划的详细信息切换到 ACTIVE 状态后对其进行编辑。

所以,当我尝试更新计划时,它给了我一个错误提示:

"name":"BUSINESS_VALIDATION_ERROR","details":["field":"validation_error","issue":"Requested state change is invalid."]

所以,我尝试再次将状态转换为 CREATED,以便编辑详细信息。这是我试过的代码sn-p:

try 

         $statePatch = new PayPal\Api\Patch();
         $statePatch->setOp('replace')
           ->setPath('/')
           ->setValue(array('state' => 'CREATED'));
         $statePatchRequest = new \PayPal\Api\PatchRequest();
         $statePatchRequest->addPatch($statePatch);
         $plan->update($statePatchRequest, $apiContext);
         $updatedPlan = \PayPal\Api\Plan::get($plan->getId(), $apiContext);

       catch (Exception $ex) 
         var_dump($ex);
         exit(1);
      

但这仍然不起作用。 API 再次给出了类似的错误。

private 'url' => string 'https://api.sandbox.paypal.com/v1/payments/billing-plans/P-6DK979342A210870GWHVJFGY' (length=83)
  private 'data' => string '"name":"BUSINESS_VALIDATION_ERROR","details":["field":"validation_error","issue":"Requested state change is invalid."],"message":"Validation Error.","information_link":"https://developer.paypal.com/webapps/developer/docs/api/#BUSINESS_VALIDATION_ERROR","debug_id":"5cf8ac1da4fa8"' (length=283)
  protected 'message' => string 'Got Http response code 400 when accessing https://api.sandbox.paypal.com/v1/payments/billing-plans/P-6DK979342A210870GWHVJFGY.' (length=126)
  private 'string' (Exception) => string '' (length=0)
  protected 'code' => int 400
  protected 'file' => string '/var/www/public/application/third_party/PayPal-php-SDK/paypal/rest-api-sdk-php/lib/PayPal/Core/PayPalHttpConnection.php' (length=119)
  protected 'line' => int 177

我在任何地方都找不到有关如何执行此操作的任何参考。有没有可能?

【问题讨论】:

【参考方案1】:

您可能想直接关注PayPal REST API SDK 中提供的samples。

http://paypal.github.io/PayPal-PHP-SDK/sample/doc/billing/UpdatePlan.html

从外观上看,您需要“状态”为 ACTIVE,而不是 CREATED

【讨论】:

Patel:我想你误解了我的问题...我试图编辑计划描述,而它已经处于 ACTIVE 状态。我做不到。这就是为什么,我试着把它放回 CREATED 状态,以为我可以编辑它。有没有办法编辑计划详情? 哦!现在我懂了。不幸的是,一旦计划被激活,它就不能被编辑,因为它可能会影响已经签署的协议的改变。但是,API 团队已经意识到了这个问题,并正在尝试看看我们是否可以更新计划中要编辑的几个组件。 这就是我耳边的音乐。 :) 如果我们可以编辑描述和金额,那就太好了。但是,就目前而言,如果我们决定以后停止某个计划,或者创建一个新的计划来增加金额,那么我们应该如何管理计费协议(并找到其相关的计划数据)?此外,这带来了另一个问题,如果要替换旧计划,我们如何将用户迁移到新计划?

以上是关于如何将 Paypal 计费计划从 ACTIVE 状态更改为 CREATED 状态?的主要内容,如果未能解决你的问题,请参考以下文章

PayPal REST API 计费计划和协议(订阅)

Paypal Rest api:计费计划,paypal_definitions 的“周期”含义

Paypal REST SDK - 计费计划在激活后不再可检索

创建计费计划时 PayPal Rest 设置 notfyURL

如何获取某个计费协议的计费计划的 ID?

如果信用卡过期,PayPal 账单协议会怎样?