Сначала я подумал, что неправильно упомянул способ оплаты в виде правильной записи.
Однако похоже, это не так.
Я создал класс-оболочку, который загружает все файлы API полосы и обрабатывает все необходимые мне вызовы.
Вот почему такой макет кода.
Когда я выполняю свой скрипт, я получаю следующую ошибку:
Неустранимая ошибка : Uncaught (Состояние 400) (Запрос req_AQbkjKFB4mo31Z) Вы
не можете подтвердить это PaymentIntent, поскольку в нем отсутствует метод
платежа. Вы можете либо обновить PaymentIntent, указав метод оплаты
, а затем подтвердить его еще раз, либо подтвердить его еще раз напрямую, указав метод оплаты
. добавлен
/var/www/vhosts/example.com/httpdocs/stripe/stripe/lib/Exception/ApiErrorException.php
в строке 38
Я уже обращался в службу поддержки Stripe, однако они продолжают отсылать меня к своему руководству, но это тоже не помогает.
Способ оплаты iDeal включен в их приборной панели. Так что это не причина неудачи.
Это МОЖЕТ быть связано с тем, как я настраиваю платеж. Но, насколько я понимаю, я не правильно установил способ оплаты. Но, насколько я понимаю, это было сделано в соответствии с их руководством.
Кроме того, я не могу найти никакой подтверждающей документации об использовании вызова извлечения. Должен ли я это сделать? Или это просто двойное и ненужное действие.
Код: Выделить всё
public function create_payment($amount, $order_id, $method = 'ideal', $return_url = NULL, $currency = 'eur'){
///######## CHECK IF CURRENCY IS ALLOWED
if(!$this->currency_supported($currency)) exit('[b]error[/b], stripe currency not supported : '.$currency);
///######## SETUP PAYMENT
$result = $this->obj->paymentIntents->create(
array(
'amount' => $amount,
'currency' => $currency,
'payment_method_types' => array($method)
)
);
///######## IF ERROR
if(!is_object($result) || !isset($result->id)) exit('[b]error[/b], something went wrong during stripe payment intend creation');
///######## SETUP PAYMENT ID
$payment_id = $result->id;
///######## RETRIEVE PAYMENT INTEND DETAILS
$result = $this->obj->paymentIntents->retrieve($payment_id, []);
///######## SET AN ORDER ID
$result = $this->obj->paymentIntents->update($payment_id, array(
'metadata' => array(
'order_id' => $order_id,
),
'payment_method_types' => array($method),
));
///######## SETUP PARAMETRES
$params = array('payment_method_types' => array($method));
///######## IF THE RETURN URL HAS BEEN SET
if($return_url) $params['return_url'] = $return_url;
///######## CONFIRM A PAYMENT INTEND
$result = $this->obj->paymentIntents->confirm($payment_id, $params);
exit(print_r($result));
}
Подробнее здесь: https://stackoverflow.com/questions/648 ... ssing-a-pa