API

API интеграция с PayHub.

1. Регистрация нового пользователя

2. Авторизация

3. Добавления платежного аккаунта, в котором привязываются необходимые платежные методы. Важно! Валюта работы системы происходит в Долларах США, по-этому основная валюта Вашего сервиса должна быть Доллар США.

4. После создания аккаунта в настройках - генерируются для него
client_id и client_secret

5. Для отправки покупателя на страницу PayHub (PrMoney) с выбором способов оплаты вначале будет необходимо получить access_token. Токен выдается через OAuth2 протокол при grant_type=client_credentials.

Для этого на адрес http://prmoney.com/oauth/token необходимо отправить POST запрос содержащий следующие переменные
client_id=ваш client_id
client_secret=ваш client_secret
grant_type=client_credentials

В зависимости от заголовка запроса Accept ответ придет или в xml или в json формате.

Для получения json необходим заголовок Accept: application/json.

Пример кода получения token (предполагается, что в массиве $config должны быть выданные client_id и client_secret, а также url PayHub:

function curl_post($url, array $post = NULL, array $options = array())
{
    $defaults = array(
        CURLOPT_POST => 1,
        CURLOPT_URL => $url,
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_TIMEOUT => 4,
        CURLOPT_POSTFIELDS => http_build_query($post)
    );
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json'));
    curl_setopt_array($ch, ($options + $defaults));
    if( ! $result = curl_exec($ch))
    {
        trigger_error(curl_error($ch));
    }
    curl_close($ch);
    return $result;
}
$url = $config['apiUrl'].'/oauth/token';
$vars = [
    'client_id'=>$config['client_id'],
    'client_secret'=>$config['client_secret'],
    'grant_type'=>'client_credentials'
];
$result = curl_post($url, $vars);
$response = json_decode($result);
$token = $response->access_token;

6. Располагая token происходит отправка запроса на PayHub для отображения страницы с доступными методами оплаты.

Для этого необходимо отправить GET запрос на адрес:

http://prmoney.com/payment/method/index/

Запрос обязательно должен содержать переменные access_token (который получили на предыдущем шаге) и amount - сумма для оплаты (для отделения десятых и сотых служит - точка, к примеру amount=8.44).

Также запрос может содержать следующие переменные:
order_id - целое число - идентификатор заказа в магазине
user_id - целое число - идентификатор пользователя в магазине
description - краткое описание назначения платежа (максимум 512 символов)
success_url - ссылка на страницу с успешной оплатой
fail_url - ссылка на страницу с безуспешной оплатой
currency - код валюты в стандарте ISO 4217, если код не передан по умолчанию будет считаться, что счет выставлен в Долларах.

Коды валют в ISO 4217 для российского Рубля - 643, для украинской Гривны - 980.

7. После успешного или проваленного платежа на прописанный вами Redirect URI будет отправлен POST запрос содержащий данные о платеже в виде json объекта. В объекте будут присутствовать следующие свойства

  • order_id - идентификатор заказа в вашей системе
  • status - статус платежа (success или fail)
  • amount - запрошенная вами сума платежа
  • amount_fee - к-во денег снятое системой за проведенный платеж
  • actual_amount - к-во денег поступившее на ваш баланс в системе
  • client_id - идентификатор вашего аккаунта