收银员 Stripe v13 发布

2021 年 6 月 8 日#版本 #收银员

我们很高兴地宣布 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 附带的托管支付页面已得到极大改进,以支持更多支付方式。当支付失败或需要额外确认来验证支付时,将显示此页面。

image

新的支付页面现在支持以下支付方式

此外,该页面现在支持在 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 自身收据上显示的那样显示

image

预览发票

您现在可以通过 previewInvoice 方法预览任何价格变更的发票

$previewInvoice = $subscription->previewInvoice('price_to_swap');

此外,如果您有多个订阅,您现在还可以专门检查特定订阅即将到来的发票

$upcomingInvoice = $user->subscription('default')->upcomingInvoice();

收据上的更多数据

收银员收据现在包含更多信息。这些信息大部分与 Stripe 自身收据上显示的信息相同,以及收据的所有增值税相关信息。以下是这些更改的前后对比

image

结论

除了上面讨论的新功能外,Cashier v13 还包括额外的内部重构、错误修复和改进。

要升级到此最新版本的 Cashier,请查看 完整变更日志升级指南

我们希望您喜欢这个新的 Cashier Stripe 版本!

作者 Dries Vints

Laravel 担任开发人员,致力于第一方开源库。在 TwitterGitHub我的网站 上找到我。

关注 RSS Feed