2016-05-08 28 views
4

我使用内笨条纹,这里是如何我有它设置:调用未定义的方法条纹认购::获取()

在我的条纹控制器,我呼吁通过以下库:

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(); 

} 

我已通过echo回复确认第一行上的\ Stripe \ Customer呼叫实际上正在工作并撤回订阅ID。然而,它的失败,当我尝试检索与4号线的订阅:

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

条纹的文档提供了下面的例子:

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

正如你所看到的,与例外我的变量名, 一样的。我在这一个空白,任何帮助将不胜感激。的

结果:

的print_r(get_class_method(0函数 '\条纹\订阅'));

[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 
+0

没有错'$ sub_id'? – Thanos

+0

不,我确实验证了返回的sub_id在我的条带帐户中是有效的。但我认为它实际上并没有那么做,因为某些原因,它不会承认Subscription类......或者至少这是我的想法。 – bryanx

+0

'print_r(get_class_methods('\ Stripe \ Subscription'))''做了什么?不知道它会返回静态方法! – Thanos

回答

8

的\条\认购::检索API是很新的,需要最新版本的条纹PHP库(3.13.0),你应该尝试更新您的条纹库。

+0

更新了图书馆到3.13.0,它的作品就像一个魅力。谢谢! – bryanx

0

如果不想更新条纹则简单地使用此功能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

相关问题