Описание процедуры использования библиотеки «Оплата в один клик»
1. Инициализация проводится из UIViewController:

LiqpayMob * libObject = [[LiqpayMob alloc] initLiqPayWithDelegate:self];
					

2. Работа с WebView:

В случае WebView библиотека создает новый UIWindow, на котором UIWebView находится.

2.1. Создание кастомного запроса с path:
/**
 *
 * @param path       Request path (example: status)
 * @param params     Parameters to generate base64Data
 * @param privateKey is privat key your store
 *                   it is recommended to store the private key on your server
 * @param delegate   Callback will be invoked when the response from the server
 * is recived or when error
 */

- (void)api:(NSString *)path
     params:(NSDictionary *)params
 privateKey:(NSString *)privateKey
   delegate:(id<LiqPayCallBack>)delegate;

/**
 *
 * @param path       request path (example: status)
 * @param base64Data is besa64 encode result from JSON string
 * @param signature  is base64 encode result from sha1 binary hash from
 * concatenate string ${PRIVATE_KEY}${DATA}${PRIVATE_KEY}
 * @param delegate   Callback will be invoked when the response from the server
 * is recived or when error .
 */
- (void)api:(NSString *)path
    paramsBase64:(NSString *)paramsBase64
       signature:(NSString *)signature
        delegate:(id<LiqPayCallBack>)delegate;
				

2.2. Получение платежа на персональном чекауте Liqpay client->server:
*
 * @param context    Context of the application
 * @param params     parameters to generate base64Data
 * @param privateKey is privat key your store
 *   it is recommended to store the private key on your server
 * @param callBack   Callback will be invoked when the response from the server
 * is recieved or when error
 */
- (void)checkout:(NSDictionary *)params
      privateKey:(NSString *)privateKey
        delegate:(id<LiqPayCallBack>)delegate;
				

2.3. Получение платежа на персональном чекауте Liqpay client->server (recommended):
 *
 * @param context    Context of the application
 * @param base64Data is besa64 encode result from JSON string
 * @param signature  is base64 encode result from sha1 binary hash from
 * concatenate string ${PRIVATE_KEY}${DATA}${PRIVATE_KEY}
 * @param callBack   Callback will be invoked when the response from the server
 * is recived or when error .
 */
- (void)checkoutWithParamsBase64:(NSString *)paramsBase64
                       signature:(NSString *)signature
                        delegate:(id<LiqPayCallBack>)delegate;
				

Параметры data и signature компания формирует на сервере.
Пример формирования параметров data и signature:


- PHP

data - result of function base64_encode( $json_string )
signature - result of function base64_encode( sha1( $private_key . $data . $private_key, 1 ) )
				

- BASH

#!/bin/bash
PUBLIC_KEY='your_public_key'
PRIVATE_KEY='your_private_key'
JSON="{ 
\"version\" : 3,
\"public_key\" : \"${PUBLIC_KEY}\", 
\"action\" : \"pay\", 
\"amount\" : 1, 
\"currency\" : \"USD\",
\"description\" : \"description text\",
\"order_id\" : \"order_id_1\"
}"
# DATA is besa64 encode result from JSON string
DATA=$(echo -n ${JSON} | base64)
# SIGNATURE is base64 encode result from sha1 binary hash from concatenate string ${PRIVATE_KEY}${DATA}${PRIVATE_KEY}
SIGNATURE=$(echo -n "${PRIVATE_KEY}${DATA}${PRIVATE_KEY}" | openssl dgst -binary -sha1 | base64)
echo "data: ${DATA}"
echo "signature: ${SIGNATURE}"

# DATA in this example
# eyAidmVyc2lvbiIgOiAzLCAicHVibGljX2tleSIgOiAieW91cl9wdWJsaWNfa2V5IiwgImFjdGlv
# biIgOiAicGF5IiwgImFtb3VudCIgOiAxLCAiY3VycmVuY3kiIDogIlVTRCIsICJkZXNjcmlwdGlv
# biIgOiAiZGVzY3JpcHRpb24gdGV4dCIsICJvcmRlcl9pZCIgOiAib3JkZXJfaWRfMSIgfQ==

# SIGNATURE in this example
# QvJD5u9Fg55PCx/Hdz6lzWtYwcI=
				

2.4. Card auth (рекомендуемый):

Параметры data и signature компания формирует на сервере.
Пример формирования параметров data и signature:

[self.libObject api:@"auth"
                    paramsBase64:params
                       signature:signature
                        delegate:self];
				

Параметры запроса инициализации:

# parameter value
1 context context приложения
2 params параметры запроса
3 privateKey shop private key в LiqPay. Не рекомендуется хранить ключи в коде приложения, тк ключи могут быть дискредитированы во время декомпеляции приложения
4 version версия API. текущая версия - 3
5 public_key public key - id магазина in LiqPay
6 action тип платежа. Значение auth - верификация карты
7 amount сумма платежа. Пример: 5, 7.34
8 currency валюта платежа. Значение: USD, EUR, RUB, UAH
9 card номер карты клиента
10 card_exp_month Месяц срока действия карты плательщика. Например: 08
11 card_exp_year Год срока действия карты плательщика.Например: 19
12 card_exp_cvv CVV/CVV2
13 description назначение платежа
14 order_id уникальный идентификатор платежа в Вашей системе
15 language язык клиента: ru, en, uk

2.5. Card auth.

[self.libObject api:@"auth"
                          params:params
                      privateKey:privateKey
                        delegate:self];
				

Параметры запроса такие же как в п.2.4.2.4. Card auth (рекомендуемый).

Пример механики оплаты клиентом
Схемы работы с библиотекой
1. Первая оплата клиента - метод checkout.


2. Последующие оплаты клиента - платежи с использованием токена.