Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP/Laravel中,如何将变量从函数传递到stripe webhook函数?_Php_Laravel_Stripe Payments - Fatal编程技术网

在PHP/Laravel中,如何将变量从函数传递到stripe webhook函数?

在PHP/Laravel中,如何将变量从函数传递到stripe webhook函数?,php,laravel,stripe-payments,Php,Laravel,Stripe Payments,我已经建立了一个网站和集成的条纹元素与支付意图。。。我想在服务器从stripe webhook获得charge.Successed事件时激活对用户的订阅。 我有一段代码,可以获取每个用户的未付订阅ID,它写在支付意图上,因此每当用户尝试付款时,它都会被调用: $subscription = Subscription::findByUid($subscription_id); 例如,它可以是:60ad280fbc3b9 如果我做了echo$subscription,输出将是: { "

我已经建立了一个网站和集成的条纹元素与支付意图。。。我想在服务器从stripe webhook获得charge.Successed事件时激活对用户的订阅。 我有一段代码,可以获取每个用户的未付订阅ID,它写在支付意图上,因此每当用户尝试付款时,它都会被调用:

$subscription = Subscription::findByUid($subscription_id);
例如,它可以是:60ad280fbc3b9 如果我做了
echo$subscription
,输出将是:

{
  "id": 4,
  "uid": "60ad280fbc3b9",
  "user_id": "60a405d5be7b6",
  "plan_id": "58bd4b4d0d4c3",
  "status": "new",
  "trial_ends_at": null,
  "ends_at": "2021-05-25 18:17:55",
  "created_at": "2021-05-25 16:38:39",
  "updated_at": "2021-05-25 18:18:07",
  "metadata": null,
  "payment_claimed": "0",
  "current_period_ends_at": "2021-06-25 18:17:21",
  "timezone": "",
  "started_at": "2021-05-25 18:18:07",
  "last_period_ends_at": null,
  "error": null,
  "gateway": "stripe"
}
因此,在payment intent函数级别上,一切都可以完美地工作,我只是不知道如何将此变量
$subscription
从payment intent函数发送到stripe webhook函数,以便通过执行此代码激活订阅

case 'charge.succeeded':
        $subscription->start()
        break;
它总是给我这个错误:
在null上调用成员函数start()

如果我尝试打印订阅id,则不会发生任何情况,因此它不会从支付意图功能收到它

谁能帮我一下吗?
谢谢你

你收到的webhook就像一篇帖子——它包含了Stripe中的一些数据,你可以用这些数据来识别费用、客户、订阅等。查看有关如何处理webhook的文档——看起来你可能已经这样做了,所以你差不多做到了。这篇文章包括一个
事件
,你可能已经有了这个事件;对于。然后您需要了解如何从该
费用中找到您的
$subscription
——例如,如果您正在存储支付意图ID,您可以使用该ID。或者,当您创建支付意图时,您可能正在发送一些元数据(如您的订阅id)——这些元数据将由webhook负责。非常感谢您,我在元数据中添加了订阅id,将其存储在另一个变量中,并在此行中调用$subscription=subscription::findByUid($newvariable)。。。现在它工作得很好。