Задать вопрос
Devilz_1
@Devilz_1
Frontend-Developer

Ошибка при подтверждении платежа Яндекс.Кассы, как исправить?

Всем привет.
Тестировал кассу, всё работало отлично.
Алгоритм следующий: создаю платёжку -> отправляю по ссылке пользователя -> заполняет все необходимые формы, платёж успешно выполнен -> возвращается на страницу указанную в 'return_url' -> происходит проверка по id платежа, если статус данного id 'waiting_for_capture', то подтверждаем платёж. Бинго!

Подключил 'боевую' версию кассы, меняю в коде shopid и пароль, проделываю точь в точь всё то же самое, создаю платёж, иду платить по ссылке, успешно оплачиваю, возвращаюсь на страницу, указанную в 'return_url', а там такая ошибка:

[YandexCheckout\Common\Exceptions\BadApiRequestException]
Payment can not be captured in current status..Error code: invalid_request.Parameter name: payment_id. (400)
/home/bitrix/www/lib/Client.php:775
#0: YandexCheckout\Client->handleError(object)
/home/bitrix/www/lib/Client.php:490
#1: YandexCheckout\Client->capturePayment(object, string)
/home/bitrix/www/youdo/stock/advertisers/preview/confirmation/payment/index.php:88

Статус платежа, как положено 'waiting_for_capture'
Вот код, который должен подтвердить платёж:

$client = new Client();
   $client->setAuth('shopid', 'password');
   $paymentResult = json_decode(json_encode($client->getPaymentInfo(id платежа)), true);
   $paymentId = $paymentResult["id"];

	if($paymentResult["status"] === "waiting_for_capture"){
		$response = $client->capturePayment(
		array(
			'amount' => array(
			 'value' => $paymentResult["amount"]["value"],
			 'currency' => 'RUB',
			          ),
			      ),
			      $paymentId
			  );
          }
  • Вопрос задан
  • 4826 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
YooMoneyHelp
@YooMoneyHelp
Приветствую, уточните, пожалуйста, номер заказа. Мы посмотрим, в чем дело.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы