#javascript #php #stripe-payments
#javascript #php #stripe-платежи
Вопрос:
Я пытаюсь извлечь paymentintent, чтобы я мог подтвердить, что он успешен, при извлечении я всегда получаю ошибку «нет такого намерения платежа».
Некоторый соответствующий PHP-код;
//setting api key
StripeStripe::setApiKey('sk_test_xxxxx');
//creating payment intent on pageload
$intent = StripePaymentIntent::create([
'amount' => 1099,
'currency' => 'USD',
'payment_method_types' => ['card'],
'application_fee_amount' => '500',
], [
'stripe_account' => 'acct_xxxx'
]);
//now on redirect(after coming back from 3DS with a $_GET that contains a intent id i'm retrieving paymentintent and confirming payment status.
$intent = StripePaymentIntent::retrieve($_GET['intentID'], array("stripe_account" => 'acct_xxxx'));
Соответствующий JS-код на странице
var stripe = Stripe('pk_test_xxxxx', {
stripeAccount: 'acct_xxxx'
});
stripe.handleCardPayment(clientSecret, {
payment_method_data: {
billing_details: {
name: cardHolder.value
},
card: {
"token": tokenResult["token"]["id"]
}
}
}).
//and more code which processes the redirect for 3ds.
var_dumping $intent покажет, что моя ошибка выглядит следующим образом;
"error": {
"code": "resource_missing",
"doc_url": "https://stripe.com/docs/error-codes/resource-missing",
"message": "No such payment_intent: 'pi_xxxxx'",
"param": "intent",
"type": "invalid_request_error"
}
Комментарии:
1. Вероятно, у вас несоответствие идентификаторов учетных записей. Я бы начал с того, что убедился, что идентификатор учетной записи, который вы передаете при создании PaymentIntent, совпадает с тем, который вы передаете при получении PaymentIntent.
2. Сеанс оплаты лучше во всех отношениях. Вы должны попробовать. Клиенты доверяют больше, чем заполнению реквизитов карты на ненадежных сайтах.