Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Current »

Требования

  • В личном кабинете следует включить способ "Apple Pay" у магазина, на сайте которого планируется разместить кнопку Apple Pay
  • Ваш сайт должен работать только по схеме HTTPS и поддерживать протокол TLS версии не ниже 1.2

Верификация домена

Ваш домен должен пройти верификацию для возможности проведения платежей через Apple Pay. Запросите у Вашего персонального менеджера верификационный файл для Вашего сайта и разместите его по адресу:

https://<your domain>/.well-known/apple-developer-merchantid-domain-association.txt

Получение js-кода для отображения кнопки Apple Pay

Javascript код для отображения кнопки Apple Pay следует запросить через API, отправив POST-запрос на следующий адрес URL:

https://api.intellectmoney.ru/merchant/latest/applepay/getbuttoncode

В запросе необходимо передать следующие параметры: 

Название

Имя параметра

Обязательный

Описание

ID магазина

eshopId

Да

Номер магазина в системе IntellectMoney, на который пользователь (покупатель) должен совершить платеж. Можно увидеть на странице   https://intellectmoney.ru/ru/enter/ps_organization_shop/   в столбце "ID"

Номер СКО

invoiceId

Да

Счёт К Оплате - уникальный номер в системе IntellectMoney, с помощью которого идентифицируется любой платеж. Для получения воспользуйтесь операцией “ Запрос выставления счета 

Подпись для преданных данных

hash

Да

Контрольная подпись запроса, которая используется для проверки целостности полученной от магазина информации и однозначной идентификации отправителя.

Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности:
Пример формирования строки

eshopId::invoiceId

Далее, к этой строке применяется алгоритм криптографии из пункта   ФОРМИРОВАНИЕ КОНТРОЛЬНОЙ ПОДПИСИ

Пример запроса
Post /merchant/latest/applepay/getbuttoncode
HTTP/1.1 Host: api.intellectmoney.ru
Content-Type: application/x-www-form-urlencoded; charset=utf-8

invoiceId = 3496318551
Пример ответа
Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<OperationState> 
		<Code>0</Code> 
		<Desc>Успешно обработана</Desc> 
	</OperationState> 
	<OperationId>b294b231-9a77-427a-9866-f111e4c88515</OperationId> 
	<EshopId>0</EshopId> 
	<Result> 
		<State> 
			<Code>0</Code> 
			<Desc>Успешно обработан.</Desc> 
		</State>
		<ScriptSource> 
			<Код для размещения Apple Pay на сайте>
		</ScriptSource>
	</Result>
</Response> 

Полученный код разместите на странице Вашего сайта

Обработка результата проведения платежа

Разместите js-код обработчика на Вашем сайте

if (window.ApplePaySession && ApplePaySession.canMakePayments()) {
	window.onIntellectMoneyApplePayCallBack = function (sessionStatus, operationId) {
		if (sessionStatus === ApplePaySession.STATUS_SUCCESS) {
			//check Payment state by operationId
		} else if (sessionStatus === ApplePaySession.STATUS_FAILURE) {
			//failed Payment state
		} else {
			//some other Payment state
		}
	};
}

Дополнительно на Вашем сайте разместить обработчик запросов (пример на языке PHP):

<?php
// Запрос к API  с добавлением переданного метода
$url = 'https://api.intellectmoney.ru/merchant/latest' . $_REQUEST['method'];

// Параметры запроса при запросе валидации
$data['validationUrl'] = $_REQUEST['validationURL'];
$data['hostName'] = $_REQUEST['hostname'];

// Параметры запроса при проведении оплаты
$data['invoiceId'] = $_REQUEST['invoiceId'];
$data['returnUrl'] = $_REQUEST['returnUrl'];
$data['paymentTokenDataJson'] = $_REQUEST['paymentTokenDataJson'];

// Вывод результата
echo json_encode(simplexml_load_string(curlRequest($url, $data), 'SimpleXMLElement', LIBXML_NOCDATA));

// Функция запроса
function curlRequest($url, $data) {
    $queryString = http_build_query($data);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $queryString);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

При успешной отправке платежа на обработку будет получен статус ApplePaySession.STATUS_SUCCESS. Используйте идентификатор операции operationId для отслеживания статуса обработки платежа. Получение статуса платежа реализуется через метод getBankCardPaymentState Merchant API.

Получение статуса ApplePaySession.STATUS_FAILURE свидетельствует об ошибке отправки платежа в обработку.

  • No labels