当前位置: 首页 > 知识库问答 >
问题:

如何添加优惠券到*条纹订阅*与Laravel收银台订阅后已经创建

裴卓君
2023-03-14

根据Stripe文档,看起来您实际上可以将优惠券作为一个整体应用于客户,但也可以将优惠券应用于他们的订阅。我正在尝试在创建订阅后将优惠券应用于客户的订阅。我使用的是Laravel出纳4.2。

以下是我尝试过的:

 $company = Auth::user()->company;
 $customer = $company->subscription()->getStripeCustomer(); // returns a StripeGateway object
 $customer->subscription->applyCoupon($input['coupon_code']);

以下是错误消息:

"Call to undefined method Stripe_Subscription::updateSubscription()"

我可以对整个客户使用applyCoupon()方法,但不是实际订阅。。。我很欣赏你的想法。

Stripe文档仅显示如何从subscription:discount对象中删除折扣。我在他们的文档中找到的唯一其他信息是:

优惠券及折扣

如果要向某些客户提供折扣,可以在仪表板中创建优惠券代码。优惠券有折扣百分比和期限,因此您可以创建优惠券,如10%终身折扣,或一个月50%折扣等。优惠券还可以附加过期日期,过期后不能使用。下面是一个向用户订阅添加折扣的示例。在本例中,我们已经创建了一个名为50OFF1MONTH的优惠券:

curlhttps://api.stripe.com/v1/customers/cus_4fdAW5ftNQow1a \-u sk_test_4loiHLH19UZ8YFBLWMIXNBY:\-d优惠券=50off1个月

然而,这不是很有帮助。再一次,Laravel的文档有点优雅,它缺少关于这个主题的任何信息。

我想知道我是否需要完全用新优惠券重新创建订阅对象。。。但这并不理想,因为你需要一张卡片代币。

更新1

我可以确认,这确实适用于订阅本身的优惠券

$user->subscription('monthly')
 ->withCoupon('code')
 ->create($creditCardToken);

然而,问题再次是如何在事后添加优惠券。

共有3个答案

幸乐湛
2023-03-14

向现有订阅添加优惠券。您也可以使用出纳方法,如下所示:

try {
$user->applyCoupon('coupon_code');
return redirect()->back()->withMessage('Coupon Applied');  
} catch (Exception $e) {
return back()->withError($e->getMessage());
}

应用优惠券时,最好将其包装在try/catch块中,因为如果用户输入无效优惠券,Stripe将返回一个异常,并说明失败的原因。

莫英卓
2023-03-14

从收银台v11开始。*有新的方便方法来更新底层条带订阅对象。要将优惠券应用于用户的订阅模型而不是客户模型,请在控制器中尝试以下操作:

$user->subscription('default')->updateStripeSubscription(['coupon' => $couponCode]);

若要从订阅中删除优惠券,请发送更新请求并传递空优惠券字符串。如在另一个问题下所述,设置为空字符串的优惠券将删除它,而传递null将被忽略。

$user->subscription('default')->updateStripeSubscription(['coupon' => '']);
步兴德
2023-03-14

看起来我想做的事情不可能,所以我找到了另一种方法。我所要做的就是将用户现有的计划切换到当前计划,并使用WithCouncil方法。这似乎将优惠券应用于订阅,似乎不会向用户收费或更改他们的计费周期,但我可能错了。。。

$company->subscription($company->stripe_plan)
        ->withCoupon($input['coupon_code'])
        ->swap(); 
 类似资料:
  • 我用的是带条纹的拉威尔收银员。 在我的帐户面板中,我想向用户显示他们每月订阅的费用。 用户可以拥有没有优惠券的普通计划,也可以拥有半价优惠券的相同计划。 有没有收银员可以告诉我每月订阅的费用是多少,或者他们是否使用优惠券注册?或者这是我必须在他们订阅时存储在我自己的数据库中的东西?

  • 我使用的是Laravel 5.2和出纳。我要创建订阅 我得到了这个错误 RequestOptions中的Api。php第78行:条带API方法调用的第二个参数是可选的每请求apiKey,它必须是字符串,或者每请求选项,它必须是数组。(提示:您可以通过“Stripe::setApiKey()”)设置全局apiKey)

  • 创建一个条纹客户非常容易,将一张卡与该客户关联起来,然后随时向他们收费。然而,使用Laravel出纳之后,在任何时候订阅用户的计划都不那么容易。 当用户在“我的设置”中添加卡时,会生成卡令牌。我已尝试在此时存储令牌,并在用户希望更新其订阅时使用它,但出现错误:

  • 我四处搜索,找到了关于如何在woocommerce中添加产品的链接,但关于如何使用自定义php片段更新或添加订阅记录的链接不多。

  • 我通读了RxJS文档,并希望确保我理解了< code > subscriber . unsubscribe()和< code > subscriber . complete()之间的区别。 假设我有一个有两个订阅者的可观察对象,订阅者1和订阅者2。如果订阅者1对其订阅调用取消订阅,它将不再接收来自可观察对象的通知,但订阅者2将继续接收它们。 <代码>的文档。complete(): 观察者回调,用于

  •  说明 调用方法: $.f2eAct.yyue(el,options); 函数说明: Y阅功能,包含查询用户是否订阅,用户订阅,用户取消订阅 参数说明: 参数名 类型 说明 备注 el string DOM元素对象 必要 pcode int 订阅媒体的id 必要 gcode int 媒体用户分组id 必要 success function 查询是否订阅回调方法 无 confirm functio