如何使用Laravel Cashier通过Braintree_id或subscription_id取消Braintree订阅

问题描述 投票:0回答:1

我们正在使用Laravel 5.8版的Laravel Cashier(Braintree)。在某些情况下,用户为不同的订单多次订阅了相同名称的相同计划。我们希望使用户能够取消其订阅。我们根据下面的手册https://laravel.com/docs/5.8/braintree#cancelling-subscriptions的建议,尝试使用以下语句取消具有订阅名称的订阅。

$user->subscription('main')->cancel();

$user->subscription('main')->cancelNow();

我们正在传递订阅名称。它可以按预期运行,并且还可以更新订阅表的“ ends_at”列中的日期。

这里的问题是,因为我们为用户订阅的订阅使用了相同的名称。因此,在我们的情况下,它会在此处返回最后一个订购的订单并取消该订单。可以按预期做。

但是我们要基于订阅表中存储的braintree_id取消订阅。我们可以做到吗?到目前为止,我们尝试如下所示:-

use Braintree\Subscription;

$subcriptionObj = Subscription::find($subscription); //where $subscription is braintree_id from subscriptions table.
if ($subcriptionObj->status == 'Canceled')
    abort(400, 'Subscription Not Active');

Subscription::cancel($subscription);

但是这会取消Braintree的订阅,但不会更新订阅表中的“ ends_at”列。

有人可以为此建议解决方法吗?任何帮助,将不胜感激。

我们正在使用Laravel 5.8版的Laravel Cashier(Braintree)。在某些情况下,用户为不同的订单多次订阅了相同名称的相同计划。我们想给...

laravel subscription braintree laravel-5.8 laravel-cashier
1个回答
0
投票

由于Laravel Braintree Cashier模块在内部使用Braintree订阅库。因此,我想直接将其用于我的控制器。

© www.soinside.com 2019 - 2024. All rights reserved.