我们很高兴地宣布 Cashier v13 立即可用。此 Cashier 版本引入了对更多支付方式的支持和众多其他小改进。我们将在下面重点介绍一些最重要的改进。
新的支付方式
Cashier 的支付方式 API 已更新,支持指定支付方式类型,包括 SEPA 借记支付方式
// Retrieve card payment methods on a user...
$paymentMethods = $user->paymentMethods();
// Retrieve all SEPA Debit payment methods on a user...
$paymentMethods = $user->paymentMethods('sepa_debit');
// Check if a user has any SEPA Debit payment methods...
if ($user->hasPaymentMethod('sepa_debit')) {
// ...
}
// Delete all SEPA Debit payment methods on a user...
$user->deletePaymentMethods('sepa_debit');
当然,你应该查阅Stripe 支付方式文档,了解如何在自己的应用程序中使用哪些支付方式。
新的支付页面
Cashier 附带的托管支付页面已得到极大改进,以支持更多支付方式。当支付失败或需要额外确认来验证支付时,将显示此页面。
新的支付页面现在支持以下支付方式
- 信用卡
- 支付宝
- Bancontact
- BECS 直接借记
- EPS
- Giropay
- iDEAL
- SEPA 直接借记
此外,该页面现在支持在 Stripe 中保存客户的支付方式,以便将来付款时使用。
同步客户数据
为了让应用程序更轻松地将客户详细信息与其相同详细信息的 Stripe 副本同步,Cashier 引入了 syncStripeCustomerDetails
方法。例如,你可以选择将此方法作为事件侦听器添加到可计费模型的 updated
事件,以自动将客户的姓名、电子邮件地址、电话号码和地址与 Stripe 同步
/**
* The "booted" method of the model.
*
* @return void
*/
protected static function booted()
{
static::updated(queueable(function ($customer) {
$customer->syncStripeCustomerDetails();
}));
}
你甚至可以通过覆盖相应的 Stripe 方法来自定义用于向 Stripe 提供此数据的属性
/**
* Get the customer name that should be synced to Stripe.
*
* @return string|null
*/
public function stripeName()
{
return $this->company_name;
}
检查产品标识符
为了适应 Stripe 的新“产品”概念,我们在 subscription_items
表上引入了新的 stripe_product
列。这将允许 Cashier 检查客户是否订阅了特定产品
if ($user->subscribedToProduct('prod_premium', 'default')) {
//
}
使用此功能,你可以组织属于特定“层级”的特定价格,并将其归入单个产品。然后,你可以轻松地为给定层级引入新价格,而无需更改任何代码。
你还可以检查客户是否订阅了多个产品
if ($user->subscribedToProduct(['product_basic', 'prod_premium'], 'default')) {
//
}
收据上的多项折扣
收银员的可下载收据现在将正确显示多个折扣。这些折扣将像在 Stripe 自身收据上显示的那样显示
预览发票
您现在可以通过 previewInvoice
方法预览任何价格变更的发票
$previewInvoice = $subscription->previewInvoice('price_to_swap');
此外,如果您有多个订阅,您现在还可以专门检查特定订阅即将到来的发票
$upcomingInvoice = $user->subscription('default')->upcomingInvoice();
收据上的更多数据
收银员收据现在包含更多信息。这些信息大部分与 Stripe 自身收据上显示的信息相同,以及收据的所有增值税相关信息。以下是这些更改的前后对比
结论
除了上面讨论的新功能外,Cashier v13 还包括额外的内部重构、错误修复和改进。
要升级到此最新版本的 Cashier,请查看 完整变更日志 和 升级指南。
我们希望您喜欢这个新的 Cashier Stripe 版本!