调用未定义的方法 Stripe\Subscription::retrieve()

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

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

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

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

这是根据

失败的函数是:

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

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

如果不想更新条带,只需使用此函数即可 cancel subscription:

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 

 }

更多解释,请看这里: