Всем привет.
Тестировал кассу, всё работало отлично.
Алгоритм следующий: создаю платёжку
-> отправляю по ссылке пользователя
-> заполняет все необходимые формы, платёж успешно выполнен
-> возвращается на страницу указанную в '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
);
}