Использование Stripe для заказа продуктов с их API заказа и изменяемой доставкой - PullRequest
0 голосов
/ 24 августа 2018

Я пытался внедрить Stripe, и не нужно беспокоиться о стоимости доставки, это очень просто, у меня был этот код, который работал нормально:

<form action="payment.php" method="POST">
    <script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
            data-key="xxxxxxxxxxxxxxxxxxxxxxxxxxx"
            data-amount="2500"
            data-name="some name"
            data-description="some description"
            data-label="{{ order.button_name|e }}"
            data-locale="auto"
            data-zip-code="true"
            data-billing-address="true"
            data-shipping-address="true"
            data-currency="aud">
    </script>
</form>

Теперь, насколько я понимаю, мне нужно решить / или получить стоимость доставки от Stripe до . Я заполняю этот код (или динамически обновляю его), чтобы можно было учитывать доставку.

Я читал об API заказов , и, похоже, вам необходимо создать позицию заказа , чтобы: получить налоговые и транспортные расходы от Stripe

Таким образом, с учетом этого, похоже, что это нужно сделать до того, как пользователь нажмет кнопку оплаты, чтобы у вас были правильные транспортные расходы, чтобы добавить к сумме их списания - но я запутался, не стоит " заказ "будет создан только после они на самом деле заказали предмет; но похоже, что это просто вопрос терминологии из того, как читают документы.

Во-вторых, для того, чтобы рассчитать стоимость доставки, мне нужно было бы получить с пользователей адрес доставки, прежде чем разрешить им запускать способ оплаты, так что это означает, что я не буду просить об этом в способе оплаты - однако в таком случае как Stripe узнает информацию об их адресе, если они не вводят ее в способ оплаты?

Звучит так, как будто я передал бы идентификатор заказа , возвращенный из Order API , чтобы каким-то образом пройти через кассу?

Так что, в основном, я просто запутался в том, как это меняет вещи при использовании Order API в сочетании с Checkout.

Что происходит после получения объекта заказа и как он отличается от текущего кода, с которым я работаю выше, и отличается ли код на стороне сервера от стандартного Checkout? Кажется, стандартная проверка "создание заряда", например:

// Set your secret key: remember to change this to your live secret key in production
// See your keys here: https://dashboard.stripe.com/account/apikeys
\Stripe\Stripe::setApiKey("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");

// Token is created using Checkout or Elements!
// Get the payment token ID submitted by the form:
$token = $_POST['stripeToken'];
$charge = \Stripe\Charge::create([
    'amount' => 999,
    'currency' => 'usd',
    'description' => 'Example charge',
    'source' => $token,
]);

... и используя API заказа, мы делаем что-то другое:

// Set your secret key: remember to change this to your live secret key in production
// See your keys here: https://dashboard.stripe.com/account/apikeys
\Stripe\Stripe::setApiKey("xxxxxxxxxxxxxxxxxxxxxxxxxxxx");

// Token is created using Checkout or Elements!
// Get the payment token ID submitted by the form:
$token = $_POST['stripeToken'];

$order = \Stripe\Order::retrieve('or_1D2jGkKFk4dvoSd9xVrShgsg');
$order->pay(['source' => $token]);

1 Ответ

0 голосов
/ 25 августа 2018

К сожалению, нет полной интеграции между Оформлением заказа и Заказами. Здесь вы захотите создать заказ, когда откроете страницу «Оформить заказ» на своем сайте. Вы добавите в заказ товары, которые пользователь собирается приобрести, а также адрес доставки, чтобы получить точную информацию о доставке и налогах для отображения. Нет способа получить информацию о доставке из Stripe Checkout и передать ее обратно в объект Order, поэтому вам нужно забрать ее заранее. Затем, когда ваш пользователь выберет способ доставки, вы будете использовать его, чтобы настроить Stripe Checkout для правильного отображения итогов.

Может быть проще реализовать логику доставки и налогообложения по отдельности и просто создать сбор на общую сумму, что и делают такие программы, как WooCommerce, при интеграции с Stripe (вместо использования Orders).

...