我想测试stripe中的invoice_payment.failed事件Web钩子。我已经设置了一个Web钩子端点,并试图从条带发送测试数据,但这不起作用,因为事件ID不存在。条带指南中提到了一些解决方案。这是我看到的链接。
https://support.stripe.com/questions/test-failed-invoice-payment
它告诉我创建一个计划并订阅一个客户,其trial_end期限设置为1-2分钟,并使用某个信用卡号创建客户对象。我将trial_end期间设置为“now”并且仅使用给定的信用卡号而不是invoice_payment.failed事件获得charge.failed。我是条纹新手,想知道如何将trial_end时间段设置为1-2分钟,以及如何测试invoice_payment.failed事件。我在php工作。任何帮助将不胜感激。
答案 0 :(得分:10)
creating a subscription时,您可以使用trial_end
参数设置试用期。
为了测试invoice.payment_failed
事件,您可以执行以下操作:
首先,create a customer使用特殊Checkout 4000 0000 0000 0341
创建的卡片令牌(来自Stripe.js或testing number):
$customer = \Stripe\Customer::create(array(
"source" => $token,
"description" => "Test customer"
));
然后,使用较短的试用期创建计划订阅:
$subscription = \Stripe\Subscription::create(array(
"customer" => $customer->id,
"plan" => $plan,
"trial_end" => strtotime("+1 minute")
));
这将创建一分钟试用期的订阅。一分钟后,将创建发票,大约一小时后,将尝试支付发票。
如果您不想等一个小时,可以在创建retrieve the invoice之后手动trigger the payment attempt:
$invoice = \Stripe\Invoice::retrieve($invoice_id);
$invoice->pay();
答案 1 :(得分:2)
如果您只想测试和处理invoice.payment_failed事件以及您可以创建和不能创建的其他事件,那么您应该转到条带仪表板并在webhooks设置下发送所需类型的测试事件。