Stripe Checkout не определена ошибка ссылки - PullRequest
0 голосов
/ 04 ноября 2019

Я пытаюсь разместить Stripe на своей веб-странице для приема платежей. Но всякий раз, когда я загружаю страницу, я получаю сообщение о том, что stripeCheckout не определен. Я знаю, что это связано с библиотекой, импортированной в один из моих тегов скрипта, но я не уверен, почему она отображается как неопределенная. Импортированная библиотека, я думаю, была правильной. Вот мой код:

    <!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">





    <!-- CSS Link -->
    <link rel="stylesheet" href="styles.css">

    <title>Store</title>

    <script src="https://checkout.stripe.com/checkout.js" defer></script>
<script>
    var stripePublicKey = '<%= stripePublicKey %>'
</script>
<script src="store.js" defer></script>
</head>

и это в моем файле store.js

const stripeHandler = stripeCheckout.configure({
    key: stripePublicKey,
    locale: 'auto',
    token: function(token){

    }
})

// Removes cart items after they are purchased
const purchaseItems = () => {
    // let cartItems = document.getElementsByClassName('cart-items')[0]
    // while(cartItems.hasChildNodes()){
    //     cartItems.removeChild(cartItems.firstChild)
    // }
    // updateCartTotal()

    let priceElement = document.getElementsByClassName('cart-total-price')[0]
    let price = parseFloat(priceElement.innerText.replace('$', '')) * 100
    stripeHandler.open({
        amount: price
    })
}

1 Ответ

1 голос
/ 04 ноября 2019

Я полагаю, что этот конкретный API оформления Stripe (и скрипт) теперь устарел.

Вот ссылка на документы для новых API: https://stripe.com/docs/payments/checkout/migration#client-products

Пример из документации:

// client.html
<script src="https://js.stripe.com/v3"></script>
<button id="checkout-button">Pay</button>

// client.js
var stripe = Stripe('YOUR_API_KEY');

var checkoutButton = document.querySelector('#checkout-button');
checkoutButton.addEventListener('click', function () {
  stripe.redirectToCheckout({
    items: [{
      // Define the product and SKU in the Dashboard first, and use the SKU
      // ID in your client-side code.
      sku: 'sku_123',
      quantity: 1
    }],
    successUrl: 'https://www.example.com/success',
    cancelUrl: 'https://www.example.com/cancel'
  });
});
...