我目前正在使用Laravel Cashier(PHP)并使用保存在我的stripe_id
表格中的已退回users
以供将来付款。我没有使用Stripes或Laravel收银员订阅功能,因为我想要对它进行更多动态控制。
目前的工作方式是......
stripe_id
表格中返回并保存的users
,我继续使用自己的订阅功能。在错误处理等方面添加信用卡很好,因为我可以简单地使用条带提供的测试卡。
但是,一旦客户被添加到我的Stripe帐户,我无法测试该客户以便将来结算。
我尝试在条带信息中心中添加被拒绝的卡片,例如4000 0000 0000 0002,但没有任何反应,当我检查控制台时,我可以看到下面的错误。这是可以理解的,但我希望在测试模式下它可以让我添加它。
我知道我可以使用网络钩子,但对我来说这似乎是不切实际的。在我的本地机器上进行测试会很令人沮丧,我仍然需要能够将信用卡更改为失败的信用卡以发送正确的Web挂钩。我不想依赖Stripe web hook测试,因为它不会与我的进程同步,因为我无法控制customer_id等进行测试。
以下是我向客户收费的代码。如您所见,我使用stripe_id
收费。
其他错误有效,但我唯一想测试的是卡片,所以如果它过期或资金不足我的应用就会知道
$stripeID = $this->billing->getStripeID($userID);
try {
\Stripe\InvoiceItem::create( [
'customer' => $stripeID,
'amount' => $totalAmount,
'currency' => 'eur',
'description' => 'Test Charge'
] );
$invoice = \Stripe\Invoice::create( [
'customer' => $stripeID
] );
$invoice = \Stripe\Invoice::retrieve( $invoice->id );
$charge = $invoice->pay();
} catch(Card $e) {
// error handling
} catch (RateLimit $e) {
// error handling
} catch (InvalidRequest $e) {
// error handling
} catch (Authentication $e) {
// error handling
} catch (ApiConnection $e) {
// error handling
} catch (Base $e) {
// error handling
} catch (Exception $e) {
// error handling
}