【发布时间】:2021-04-30 11:26:03
【问题描述】:
我在使用 Laravel Cashier 创建订阅时遇到了一些问题。
首先,我从我的后端创建一个包,它调用以下两个 Strip 函数:
public function createStripeProduct(array $data)
{
$product = $this->stripe->products->create([
'name' => $data['title']." ".appName(),
]);
return $product->id;
}
public function createStripePrice(array $data)
{
$price = $this->stripe->prices->create([
'unit_amount' => $data['price'] * $this->multiple,
'currency' => $this->currency,
'recurring' => ['interval' => 'month'],
'product' => $data['stripe_prod_id'],
]);
return $price->id;
}
然后在我的控制器中,我正在创建会话:
public function create(Request $request)
{
$key = config('services.stripe.secret');
$stripe = new Stripe\StripeClient($key);
$stripeCustomer = $user->createOrGetStripeCustomer();
$checkout_session = $stripe->checkout->sessions->create([
'customer' => $stripeCustomer['id'],
'success_url' => route('frontend.user.account'),
'cancel_url' => route('frontend.user.account'),
'payment_method_types' => ['card'],
'line_items' => [
[
'price' => $request->stripe_price_id,
'quantity' => 1,
],
],
'mode' => 'subscription',
'allow_promotion_codes' => true,
]);
return $checkout_session['id'];
}
到目前为止一切正常,但通过实施,我可以多次订阅同一个或不同包的使用。
我怎样才能防止这种情况发生,以及如何实现包的未来升级/降级?
【问题讨论】:
标签: laravel stripe-payments laravel-cashier