Описание процедуры использования библиотеки «Оплата в один клик»
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:
Пример формирования параметров 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:
Пример формирования параметров 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. Последующие оплаты клиента - платежи с использованием токена.