Во время использования PayPal Checkout я сталкиваюсь с проблемой, которая в результате приводит к тому же платежу даже для двух разных пользователей.
Это происходит во время потока создания платежа.
Моя настройка оформления PayPal:
$.ajaxSetup({ cache: false });
paypal.Button.render({
env: 'production',
locale: 'en_US',
style: {
color: 'silver',
size: 'medium',
label: 'checkout',
shape: 'rect',
layout: 'vertical',
},
payment: (data, actions) => {
return new Promise((resolve, reject) => {
$.ajax({
url: '/p/create-payment/',
dataType: 'json',
data: {
body: body
},
method: 'POST',
headers: { 'X-CSRF-Token': '{{csrfToken}}' }
})
.done(( data ) => {
resolve(data.id)
reject("")
})
})
},
onAuthorize: (data, actions) => {
return new Promise((resolve, reject) => {
$.ajax({
url: '/p/execute-payment/',
dataType: 'json',
data: {
paymentID: data.paymentID,
payerID: data.payerID,
body: body,
},
method: 'POST',
headers: { 'X-CSRF-Token': '{{csrfToken}}' }
})
.done(( data ) => {
if(data.status === 'success') {
resolve(window.open('success',"_self"))
}else if(data.status === 'pending'){
resolve(window.open('pending, "_self"))
} else reject(window.open('failure', "_self"))
})
})
},
onError: (err) => {
window.open('paymentFailure', "_self");
console.error(err)
}
}, '#paypal-button');
Первая попытка: я захожу на мою страницу и открываю проверку PayPal, лицо, которое должно получить платеж, является corrent, суммой и всем остальным, сам запрос занимает около 3-4 секунд
Вторая попытка: при повторном открытии страницы я нажимаю кнопку «Оформить заказ», и на этот раз запрос занимает 0,2–0,4 секунды, и данные точно такие же, как и в первом созданном платеже, даже идентификатор PAY из PayPalтот же
Я могу регистрировать данные, возвращенные из запроса ajax, в / p / create-payment, создавая платеж в первый раз, работает нормально, как сказано выше, но во втором я вижу точно такие же данные, как в первый раз.
Я хотел бы отметить, что у меня есть журналы на моем сервере, и они не отображаются во время второго платежа
Вот скриншоты запроса:
Я также пытался очистить кеш / куки моего браузера, но это не решило проблему.Пользователи могут находиться на двух разных устройствах, и эта проблема все еще возникает