2016-06-10 3 views
3

Я хочу протестировать веб-крючок invoice_payment.failed в полосе. Я установил конечную точку веб-крючка и попытался отправить тестовые данные из полосы, но это не работает, потому что идентификатор события не существует. Есть несколько решений, упомянутых в руководствах по полоскам. Вот ссылка, которую я видел.Тест на событие invoice_payment.failed в полосе

https://support.stripe.com/questions/test-failed-invoice-payment

Это говорит мне, чтобы создать план и подписаться клиентом с периодом trial_end установлен на 1-2 минуты и использовать определенный номер кредитной карты для создания объекта клиента. Я установил период trial_end «сейчас» и получил только плату. Исправлено с использованием номера кредитной карты, но не события invoice_payment.failed. Я новичок в stripe и хотел бы знать, как установить период trial_end в течение 1-2 минут, и как точно проверить событие invoice_payment.failed. Я работаю на php. Любая помощь будет оценена по достоинству.

ответ

5

Когда creating a subscription, вы можете установить пробный период с параметром trial_end.

Для того, чтобы проверить invoice.payment_failed события, вы можете сделать что-то вроде этого:

  1. Первого, create a customer с маркером карты (от Checkout или Stripe.js), созданных с помощью специальной testing number4000 0000 0000 0341:

    $customer = \Stripe\Customer::create(array(
        "source" => $token, 
        "description" => "Test customer" 
    )); 
    
  2. Затем создайте подписку на план с коротким пробным периодом:

    $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(); 
+0

Сначала мой план создается, а затем я пытаюсь подписаться на план клиента. Будет ли это работать, если я попытаюсь установить период trial_end на strtotime («+ 2 минуты») при создании клиента? Я еще не попробовал. – jai

+0

Я готов ждать 1 час, и я использую api для выполнения всего – jai

+0

Да, вы можете создать клиента и подписку в одном вызове API, включив параметр «plan» и «trial_end» в запрос на создание клиента , – Ywain

0

Если вы просто хотите проверить и обработать invoice.payment_failed событие и другие, которые вы можете и не может создать, тогда вы должны перейти на панель инструментов и в настройках webhooks отправить тестовое событие требуемого типа.