Публикации - Платёжка Checkout

Тестовый аккаунт и запросы оплаты

Прежде чем приступать к разработке и подключению подключению платёжной системы, лучше создать тестовый аккаунт и протестировать оплату.

Зарегистрировать тестовый аккаунт можно по ссылке - 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 (для перехвата ошибок)

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться