Публикация на тему
Внедряем Checkout на сайты PHP и Laravel
Анотация
Платформа Checkout.com предназначена для ускорения роста бизнеса, изучения более полных и подробных данных и доступа к новым продуктам. В данной публикации я покажу как использовать данную систему для проведения платежей с сайтов, написанных на PHP и Laravel
The Checkout.com platform is designed to accelerate business growth, explore richer, more detailed data, and access new products. In this publication I will show how to use this system to make payments from sites written in PHP and Laravel
Автор
Михалькевич Александр Викторович
Наименование Платёжка Checkout
Автор А.В.Михалькевич
Специальность Внедряем Checkout на сайты PHP и Laravel,
Анотация
Платформа Checkout.com предназначена для ускорения роста бизнеса, изучения более полных и подробных данных и доступа к новым продуктам. В данной публикации я покажу как использовать данную систему для проведения платежей с сайтов, написанных на PHP и Laravel
Anotation in English
The Checkout.com platform is designed to accelerate business growth, explore richer, more detailed data, and access new products. In this publication I will show how to use this system to make payments from sites written in PHP and Laravel
Ключевые слова checkout, php, laravel
Количество символов 9522
Checkout.com предлагает глобальную платформу, прозрачное ценообразование и решения в области платежей.
После установки или обновления данной платформы, мы получаем доступ к подробной финансовой отчётности и широкому спектру инструментов бизнес-аналитики, в том числе:
- API-интерфейсы отчетов и финансовых действий - Reports and Financial actions APIs;
- Статистика, которая поможет анализировать производительность - Dashboard.
Особенности платформы Checkout.com
- обновленный набор webhook-ов, которые позволяют отслеживать события на протяжении всего жизненного цикла платежа - webhooks.
- полная видимость комиссий, взимаемых каждый месяц, с помощью единого счета в формате PDF для каждой валюты - invoice.
- отчет о балансе, чтобы понять притоки и оттоки валюты - balance report.
С помощью конфигурации на уровне клиента вы можете обновить определенные настройки для всей учетной записи:
- добавлять, обновлять или отзывать доступ пользователей ко всем вашим объектам одновременно - user access;
- блокировать обнаружение мошенничества (риск) и изменять правила для всей учетной записи без необходимости настраивать это для каждого направления бизнеса - Fraud Detection.
Прежде чем приступать к разработке и подключению подключению платёжной системы, лучше создать тестовый аккаунт и протестировать оплату.
Зарегистрировать тестовый аккаунт можно по ссылке - https://www.checkout.com/get-test-account (регистрация для жителей России и Беларуси доступна)
После регистрации тестового или реального (live) аккаунта переходим по ссылке https://dashboard.checkout.com
Для входа вводим указанный при регистрации email, потом пароль. После авторизации происходит перенаправление на страницу https://dashboard.sandbox.checkout.com. Далее переходим по ссылке Developers (https://dashboard.sandbox.checkout.com/developers/get-started). На этой странице после генерации ключей и получения токена, получим тестовый номер карты Visa и пример request-запроса оплаты.
Итак, после того, как получим public_key, secret_key, token и данные по Visa, система сгенерирует Request payment. Пример запроса:
curl -i -X POST \ https://api.sandbox.checkout.com/payments \ -H 'Authorization: Bearer Значение_Bearer' \ -H 'Content-Type: application/json' \ -d '{ "source": { "type": "token", "token": "Значение_token" }, "amount": 6540, "currency": "USD", "processing_channel_id": "pc_значение_pc", "reference": "get started guide", "description": "Set of 3 masks", "capture": true, "customer": { "email": "brucewayne@gmail.com", "name": "Bruce Wayne", "phone": { "country_code": "+1", "number": "415 555 2671" } }, "shipping": { "address": { "address_line1": "Checkout.com", "address_line2": "90 Tottenham Court Road", "city": "London", "state": "London", "zip": "W1T 4TJ", "country": "GB" }, "phone": { "country_code": "+1", "number": "415 555 2671" } }, "3ds": { "enabled": false, }, "success_url": "http://example.com/payments/success", "failure_url": "http://example.com/payments/fail", "payment_ip": "значение_ip", "metadata": { "coupon_code": "NY2018", "partner_id": 123989 } }'
Если вы используете Laravel, то в экшне оплаты, для отправки запроса можем использовать фасад Http. Пример:
$response = Http::withHeaders([ 'authorization' => $this->credentials['secret_key'], ])->post('https://api.checkout.com/hosted-payments', [ 'amount' => (float) $amount * 100, 'currency' => 'USD', 'reference' => $transactionNumber, 'description' => 'Subscription To receive services of ' . config('app.url'), 'billing' => [ 'address' => [ 'country' =>strtoupper(optional(auth()->user())->country) ?? 'UA', ], ], 'customer' => [ 'name' => auth()->user()->name, 'email' => auth()->user()->email, ], 'success_url' => url('/dashboard'), 'failure_url' => url('/price'), 'cancel_url' => url('/price'), ]); $responseData = $response->json(); dd($responseData);
Помимо маршрута оплаты также необходимо реализовать еще 2 маршрута: success_url (при успешной оплате происходит перенаправление на этот url) и failure_url (для перехвата ошибок)