【问题标题】:Laravel Cashier Cancel returns call to member function cancel on nullLaravel Cashier Cancel 返回对成员函数 cancel on null 的调用
【发布时间】:2020-02-04 18:09:05
【问题描述】:

好吧,这对我来说毫无意义。订阅的方法显然返回 true,但随后取消返回“call to member function cancel on null”。这应该根据 Cashier 的文档工作。有谁知道它为什么会这样做?

public function cancel() {
  $user = auth()->user();
  if( $user->subscribed('CkWraps Subscription') ) {
    $user->subscription('CKWraps Subscription')->cancel();
  }
  return back()->with('status', 'Your subscription has been canceled. We\'re sorry to see you go!');
}

【问题讨论】:

  • 那么cancel()调用会抛出异常吗?你能分享堆栈跟踪吗?
  • 没有堆栈跟踪,只有那个错误。如果我 dd out $user->subscribed('CkWraps Subscription') 它返回 true,但如果我 dd out $user->subscription('CKWraps Subscription') 它返回 null,这根本没有意义。
  • 实际上,如果我在取消它返回订阅对象之前转储 $user->subscription('CKWraps Subscription') ......这只会变得更愚蠢
  • 也许改用cancelNow()
  • 我做了,结果一模一样。

标签: php stripe-payments laravel-cashier


【解决方案1】:

好吧,这很奇怪,但我猜这是某种奇怪的字符编码问题。将订阅名称设置为常量可以修复它。

    define("SUB", 'CkWraps Subscription');
    $user = auth()->user();
    if( $user->subscribed(SUB) ) {
        $user->subscription(SUB)->cancel();
    }

【讨论】:

  • 对,忘记了。它告诉我我必须等待一段时间才能做到这一点。谢谢提醒
  • 您的意思是在将产品添加到条带中后,您必须等待一段时间才能返回空值?所以我想在 Stripe 上更新东西需要一点时间?
  • @NitroStoutPlz 不,我正在回复删除他们评论的人说我应该接受我自己的答案作为正确的答案。
猜你喜欢
  • 2018-11-12
  • 2020-01-01
  • 2020-11-04
  • 2020-08-29
  • 2020-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多