@derijopil

Как получить JSON в яндекс.Кассах?

Читаем документацию яндекс кассы.

Отправьте Яндекс.Кассе запрос и передайте в нем данные для создания платежа, данные для аутентификации (идентификатор магазина и секретный ключ) и ключ идемпотентности (подойдет любое случайное значение).

use YandexCheckout\Client;

    $client = new Client();
    $client->setAuth('<Идентификатор магазина>', '<Секретный ключ>');
    $payment = $client->createPayment(
        array(
            'amount' => array(
                'value' => 100.0,
                'currency' => 'RUB',
            ),
            'confirmation' => array(
                'type' => 'redirect',
                'return_url' => 'https://www.merchant-website.com/return_url',
            ),
            'capture' => true,
            'description' => 'Заказ №1',
        ),
        uniqid('', true)
    );

ОК, все сделано.
Далее в документации написано, что будут получены данные в виде JSON.
{
  "id": "23d93cac-000f-5000-8000-126628f15141",
  "status": "pending",
  "paid": false,
  "amount": {
    "value": "100.00",
    "currency": "RUB"
  },
  "confirmation": {
    "type": "redirect",
    "confirmation_url": "https://money.yandex.ru/api-pages/v2/payment-confirm/epl?orderId=23d93cac-000f-5000-8000-126628f15141"
  },
  "created_at": "2019-01-22T14:30:45.129Z",
  "description": "Заказ №1",
  "metadata": {},
  "recipient": {
    "account_id": "100001",
    "gateway_id": "1000001"
  },
  "test": false
}

Но при этом не написано как именно следует получать эти данные.
Пробовал получать этот JSON таким способом:
print_r(json_encode($payment), true);
Не работает.
Таким тоже пробовал
print_r(json_encode($payment,JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));

не работает.
В какой бубен надо постучать чтобы этот JSON получить?
  • Вопрос задан
  • 546 просмотров
Решения вопроса 1
@derijopil Автор вопроса
Короче проблема решена. ОКАЗЫВАЕТСЯ вот так можно было получить нужный мне параметр. Но в документации об этом, конечно же, ни слова не написали.
print_r($payment['confirmation']['confirmation_url']);
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Konata69lol
@Konata69lol
backend developer (php/go)
print_r(json_encode($payment), true);

Зачем вы полученный ответ кодируете в json?

Ответ, скорее всего приходит в виде json строки и вам нужен json_decode
Ответ написан
@stunoff
$Kassa->getPaymentInfo($Order->getPaymentId());
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект