我正在尝试使用促销码而不是优惠券代码在laravel收银台/条纹官方套餐中,但我在那里找不到任何关于如何在订阅时应用促销码而不是优惠券的帮助,因为我知道如何申请优惠券,但我想申请促销码,我该怎么做呢?以下是我在创建新订阅时申请优惠券的代码,但我不知道如何使用促销代码来实现:
$subscription = $user->newSubscription($plan->name, $selectedPlan);
// Add the trial days if any
if ($plan->trial_days) {
$subscription = $subscription->trialDays($plan->trial_days);
}
// Add the coupon id if any
if ($request->input('coupon_id')) {
$subscription = $subscription->withCoupon($request->input('coupon_id'));
}
$subscription->create($paymentMethod->id, [
'email' => $user->email
]);发布于 2021-03-31 11:57:53
您可以使用->withPromotionCode()添加促销代码,例如
if ($request->input('promotion_code_id')) {
$subscription = $subscription->withPromotionCode($request->input('promotion_code_id'));
}但是,此函数需要促销代码ID而不是代码,并且您最有可能希望用户键入代码,而不是ID。在这种情况下,您可以检索所有活动的促销代码并匹配代码。
if ($request->has('promotion_code')) {
$stripeClient = new \Stripe\StripeClient(config('cashier.secret'));
$result = $this->stripe->promotionCodes->all(
['code' => $request->get("promotion_code"), 'active' => true]
);
if($result->isEmpty()){
// handle invalid promo code here
}
$promoCodeID = $result->first()->id;
$subscription = $subscription->withPromotionCode($promoCodeID);
}https://stackoverflow.com/questions/65437246
复制相似问题