#javascript #stripe-payments
#javascript #stripe-платежи
Вопрос:
Мне нужно создать нового клиента на stripe, используя их JS-клиент.
Кажется, я не могу найти способ его создания,
вот мой код:
<script src="https://js.stripe.com/v3/"></script>
для загрузки скрипта на странице
затем в моем js-файле:
У меня есть:
const stripe = Stripe(App.Config.stripeKey);
function createCustomer(){
return Stripe.customers.create({email: $('#payment-form').data('email')}).then(function(result) {
if (result.error) {
const errorElement = document.getElementById('card-errors');
errorElement.textContent = result.error.message;
return new Promise((resolve, reject) => {
reject(result.error.message);
});
} else {
stripeCustomerTokenHandler(result.token);
return new Promise((resolve, reject) => {
resolve(result.token);
});
}
})
}
Я также пробовал stripe.customers.create({...}
(т. Е. Используя объект Stripe), но в обоих случаях я получаю Uncaught TypeError: Cannot read property 'create' of undefined
есть идеи?
Ответ №1:
Stripe.js имеет множество функций и функций, включая монтирование элементов карты и подтверждение платежей с использованием общедоступного ключа, но он не используется для прямого обращения к API.
Вызовы API для выполнения таких действий, как создание клиентов или PaymentIntents, должны выполняться из серверной части с помощью вашего секретного ключа. Ваш интерфейс может взаимодействовать с вашим внутренним сервером, используя вызовы RESTful, которые, в свою очередь, могут вызывать API для создания клиентов с сервера. Например, в node ваш серверный сервер может использовать этот вызов [1] .
const stripe = require('stripe')('sk_test_xxx');
const customer = await stripe.customers.create({
description: 'My First Test Customer (created for API docs)',
});
Пример интеграции, который иллюстрирует как использование внутреннего кода, так и Stripe.js подтвердить платеж можно здесь [2].
[1] https://stripe.com/docs/api/customers/create?lang=node
[2] https://stripe.com/docs/payments/accept-a-payment?integration=elements