【问题标题】:Call to undefined method Stripe\Subscription::retrieve()调用未定义的方法 Stripe\Subscription::retrieve()
【发布时间】:2016-09-02 21:22:00
【问题描述】:

我在 CodeIgniter 中使用 Stripe,我是这样设置的:

在我的 Stripe 控制器中,我通过以下方式调用库:

require_once(APPPATH.'libraries/stripe/init.php');

这是Stripe - PHP Fatal error: Class 'Stripe\Charge' not found

失败的函数是:

function cancelSubscription($stripeaccount){

    $customer = \Stripe\Customer::retrieve($stripeaccount);
    $sub_id = $customer->subscriptions->data[0]->id;    
    echo $sub_id;
    $subscription = \Stripe\Subscription::retrieve($sub_id);
    $subscription->cancel();

}

我已通过回显确认第一行上的 \Stripe\Customer 调用实际上正在工作并撤回订阅 ID。但是,当我尝试在第 4 行检索订阅时,它失败了:

Fatal error: Call to undefined method Stripe\Subscription::retrieve()

Stripe 的文档给出了以下示例:

$sub = \Stripe\Subscription::retrieve("sub_8PVEGdSaepQU26");
$sub->cancel();

如您所见,除了我的变量名之外,它是相同的。我对此一无所知,任何帮助将不胜感激。

结果:

print_r(get_class_methods('\Stripe\Subscription'));

[0] => instanceUrl [1] => cancel [2] => save [3] => deleteDiscount [4] => baseUrl [5] => refresh [6] => className [7] => classUrl [8] => init [9] => __construct [10] => __set [11] => __isset [12] => __unset [13] => __get [14] => offsetSet [15] => offsetExists [16] => offsetUnset [17] => offsetGet [18] => keys [19] => constructFrom [20] => refreshFrom [21] => serializeParameters [22] => __toJSON [23] => __toString [24] => __toArray

【问题讨论】:

  • $sub_id 没问题?
  • 不,我确实验证了返回的 sub_id 在我的条带帐户中有效。但我认为它实际上并没有做到那么远,由于某种原因它无法识别 Subscription 类......或者至少我是这么认为的。
  • print_r(get_class_methods('\Stripe\Subscription')) 是做什么的?不确定它是否返回静态方法!
  • 我更新了结果。奇怪的是它有结果,而且没有一个是 Retrieve...

标签: php stripe-payments


【解决方案1】:

\Stripe\Subscription::retrieve api 非常新,需要最新版本的 stripe-php 库 (3.13.0),您应该尝试更新您的 Stripe 库。

【讨论】:

  • 将库更新到 3.13.0,它就像一个魅力。谢谢!
【解决方案2】:

如果不想更新条带,那么只需使用此功能即可cancelsubscription

function cancelSubscription($stripeaccount){
      //$stripeaccount will be customer_id
    $customer = \Stripe\Customer::retrieve($stripeaccount);
    $sub_id->cancelSubscription(); 
      // cancelSubscription() is a function in Stripe_Customer Class,
      // So without getting subscription detail direct cancel the subscription 

 }

更多解释请看这里:Can't cancel the subscription on stripe in cakephp

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-21
    • 1970-01-01
    • 2017-01-24
    • 2016-09-14
    • 2019-02-07
    • 2013-07-18
    • 1970-01-01
    • 2021-01-19
    相关资源
    最近更新 更多