При оформлении заказа с подключенным аккаунтом выдается ошибка «Недопустимый идентификатор страницы оплаты» - PullRequest
0 голосов
/ 10 мая 2019

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

Итак, прежде всего, я создаю сеанс:

$session = \Stripe\Checkout\Session::create([
    'customer_email' => $_SESSION["EMAIL"],
    'client_reference_id' => $_SESSION["USER_ID"],
    'payment_method_types' => ['card'],
    'line_items' => [[
        'name' => $listing["title"],
        'description' => $nb_days . " night(s) / " . $nb_guests . " guest(s) in " . $listing["title"],
        'images' => [URL . "img/logo.png"],
        'amount' => $total_stripe,
        'currency' => 'usd',
        'quantity' => 1,
    ]],
    'payment_intent_data' => [
        'application_fee_amount' => $total_fee,
        'transfer_data' => [
          'destination' => $owner_stripe_id,
        ],
    ],
    'success_url' => URL . 'order-success.php',
    'cancel_url' => URL . 'book-listing.php?action=order_error',
]); 

Затем в своем коде JS я предоставляю идентификатор, созданный в предыдущем сеансе, и ссылаюсь на подключенную учетную запись, которая будет получать деньги:

var stripe = Stripe(STRIPE_PK_KEY, {
    stripeAccount: STRIPE_CONNECT_ID,
});

$(".btn-confirm-pay").click(function(e) {

    stripe.redirectToCheckout({
        sessionId: STRIPE_SESSION_ID,
    }).then(function (result) {

    });

});

Но когда я нажимаю на кнопку .btn-confirm-pay, я перенаправлен на Stripe, который показывает ошибку «Что-то пошло не так», и когда я проверяю консоль, я вижу ошибку 404 от Stripe со следующим сообщением: Неверный идентификатор payment_page: cs_test_xxx ...

Я заметил, что эта ошибка не появляется, когда я использую метод «прямых сборов» вместо «сборов назначения», как описано здесь .

Можете ли вы помочь решить эту проблему?

1 Ответ

2 голосов
/ 10 мая 2019

Вы должны опустить stripeAccount в вашем Javascript.Это только в том случае, если вы используете Direct Charges, где объект Checkout Session создается на подключенной учетной записи.В вашем случае вы используете плату за назначение, поэтому объект Checkout Session находится в вашей учетной записи на платформе, поэтому вы не хотите использовать stripeAccount.Думаю, документы Стрипа могут быть ошибочными.

...