Ошибка подписки PHP на Stripe - у клиента нет прикрепленного источника оплаты - PullRequest
0 голосов
/ 29 мая 2018

Я использую Stripe Checkout на внешнем интерфейсе и собираю данные карты пользователя, а затем использую PHP-библиотеку Stripe на внутреннем интерфейсе, чтобы подписать пользователя на предварительно определенный план Stripe.Я получаю сообщение об ошибке

(1/1) InvalidRequest This customer has no attached payment source

и при проверке информационной панели Stripe показывает, что у пользователя (клиента Stripe) нет сведений о карте, даже если я передаю токен в вызов по подписке в соответствии с документами и т. Д.

Код переднего конца (шаблон Laravel):

<form action="{{url('subscribe')}}" method="POST" id="stripeform1" class="nodisplay">
{!! csrf_field() !!}
<input type="hidden" name="plan" value="individual">
    <script
        src="https://checkout.stripe.com/checkout.js" class="stripe-button"
        data-key="my_stripe_test_key"
        data-image="https://myapp.co/public/images/stripeicon.png"
        data-name="MyApp"
        data-zip-code="true"
        data-locale="auto"
        data-email="testemail@test.com"
        data-description="Subscription for Individual Plan"
        data-currency="gbp"
        data-amount="999"
        data-label="Subscribe!">
    </script>
</form>

и код заднего конца:

\Stripe\Stripe::setApiKey(env('STRIPE_SECRET'));

// Create customer that we can then create a subscription or one-off charges for:
$customer = \Stripe\Customer::create(['email' => $request->input['stripeEmail'], 'source'  => $request->input['stripeToken']]);

// Attach user (as Stripe customer) to existing subscription plan defined in Stripe:
if($request->input('plan') == 'individual') $planID = env('STRIPE_INDIVIDUAL_PLAN_ID');
else if($request->input('plan') == 'business') $planID = env('STRIPE_BUSINESS_PLAN_ID');
$subscription = \Stripe\Subscription::create(['customer' => $customer->id, 'items' => [['plan' => $planID]]]);

Не уверен, где я иду не так.Спасибо за любые предложения.

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Вы должны использовать приведенный ниже код для успешной подписки при создании подписок

$subscription = \Stripe\Subscription::create(['customer' => $customer->id,"trial_end" => null, 'items' => [['plan' => $planID]]]);

В вашем запросе пропущен параметр trial_end.

0 голосов
/ 29 мая 2018

Скорее всего $request->input['stripeToken'] пусто.Я регистрирую эту серверную часть и подтверждаю, что в ней что-то есть.

...