6.8 KiB
Работа со способами оплаты
Только для тех, кто использует привязку на нулевую сумму для сохранения банковских карт.
Способ оплаты — данные платежного средства пользователя. Например, данные банковской карты.
С помощью SDK вы можете создать способ оплаты — сохранить платежные данные в ЮKassa с привязкой к вашему магазину. Также через SDK вы можете получить актуальную информацию о созданном способе оплаты.
- Запрос на создание способа оплаты
- Запрос на создание способа оплаты через билдер
- Получить информацию о способе оплаты
Запрос на создание способа оплаты
Создание способа оплаты в документации
Объект способа оплаты SavePaymentMethod содержит всю информацию о платежном средстве пользователя, актуальную на текущий момент времени. Он формируется при создании способа оплаты и приходит в ответ на любой запрос, связанный со способами оплаты.
Набор возвращаемых параметров зависит от статуса объекта (значение параметра status) и того, какие параметры вы передали в запросе на создание способа оплаты.
В ответ на запрос придет объект способа оплаты - SavePaymentMethod в актуальном статусе.
require_once 'vendor/autoload.php';
$client = new \YooKassa\Client();
$client->setAuth('xxxxxx', 'test_XXXXXXX');
try {
$response = $client->createPaymentMethod(
[
'confirmation' => [
'enforce' => true,
'type' => 'redirect',
'return_url' => 'https://www.example.com/return_url',
'locale' => 'ru_RU'
],
'type' => 'bank_card',
'card' => [
'number' => '4100000000000002',
'expiry_year' => '2025',
'expiry_month' => '12',
'cardholder' => 'Inna Ivanovna',
'csc' => '123'
],
'holder' => [
'gateway_id' => '123456'
],
'client_ip' => '127.0.0.1',
],
uniqid('', true)
);
if ($response->getStatus() === SavePaymentMethodStatus::PENDING) {
echo $response->getConfirmation()->getConfirmationUrl(); // Получаем ссылку на URL, на который необходимо перенаправить пользователя для подтверждения привязки
}
} catch (\Exception $e) {
var_dump($response);
}
Запрос на создание способа оплаты через билдер
Создание способа оплаты в документации
Билдер позволяет создать объект запроса на создание способа оплаты — CreatePaymentMethodRequestBuilder программным способом, через объекты.
require_once 'vendor/autoload.php';
$client = new \YooKassa\Client();
$client->setAuth('xxxxxx', 'test_XXXXXXX');
try {
$paymentMethodBuilder = \YooKassa\Request\PaymentMethods\CreatePaymentMethodRequest::builder();
$paymentMethodBuilder
->setType(\YooKassa\Model\SavePaymentMethod\SavePaymentMethodType::BANK_CARD)
->setCard(new \YooKassa\Request\PaymentMethods\PaymentMethodCard([
'number' => '4100000000000002',
'expiry_year' => '2025',
'expiry_month' => '12',
'cardholder' => 'Ivan Ivanov',
'csc' => '123',
]))
->setClientIp('127.0.0.1')
;
// Создаем объект запроса
$request = $paymentMethodBuilder->build();
// Можно изменить данные, если нужно
$request->setClientIp('127.0.0.2');
$idempotenceKey = uniqid('', true);
$response = $client->createPaymentMethod($request, $idempotenceKey);
if ($response->getStatus() === SavePaymentMethodStatus::PENDING) {
echo $response->getConfirmation()->getConfirmationUrl(); // Получаем ссылку на URL, на который необходимо перенаправить пользователя для подтверждения привязки
}
} catch (Exception $e) {
var_dump($e);
}
Получить информацию о способе оплаты
Информация о способе оплаты в документации
Запрос позволяет получить информацию о текущем состоянии способа оплаты по его уникальному идентификатору.
В ответ на запрос придет объект способа оплаты — PaymentMethodResponse — в актуальном статусе.
require_once 'vendor/autoload.php';
$client = new \YooKassa\Client();
$client->setAuth('xxxxxx', 'test_XXXXXXX');
try {
$paymentMethodId = '285c0ab7-0003-5000-9000-0e1166498fda';
$response = $client->getPaymentMethodInfo($paymentMethodId);
print_r($response->toArray());
if ($response->getStatus() === SavePaymentMethodStatus::PENDING) {
echo $response->getConfirmation()->getConfirmationUrl(); // Получаем ссылку на URL, на который необходимо перенаправить пользователя для подтверждения привязки
}
} catch (Exception $e) {
var_dump($e);
}