ЗНАКОМСТВО
Этот документ содержит описание всех и особенности функций FasaPay XML API. XML API позволяет обрабатывать отправку и получение платежа в автоматическом режиме. Получение информации о транзакциях и истории выполненных транзакций. Эти услуги необходимы для всех веб-сайтов, которые хотят использовать FasaPay в качестве одного из способов оплаты, а также для предприятий, которые должны использовать автоматические транзакции между счетами FasaPay.
КОМУ НУЖНЫ ЭТИ ДОКУМЕНТЫ
Эти документы необходимы всем разработчикам, работающим над программным интерфейсом для интеграции FasaPay на свой веб-сайт. Чтобы добиться успеха, разработчикам потребуется опыт в следующем:
- Подготовка и отправка запросов на веб-сервер
- Получение и анализ информации, полученной от веб-сервера
- Работа с протоколом HTTPS
- Иметь знания XML и знать, как использовать операции HASH.
ОСНОВНЫЕ СВЕДЕНИЯ ОБ API XML
XML API представляет собой набор команд, которые используются в качестве посредников между FasaPay и другими веб-сайтами. Формат и структура данных XML API были разработаны на основе стандарта XML-1.0
КАК ЭТО РАБОТАЕТ
XML API - это система, которая получает и отправляет информационные запросы.
Эта система обработает запрос в соответствии с заказом, затем объединит данные
отчета и отправит их обратно в запрос отправителя.
Каждый запрос состоит из определенной команды, которая затем интерпретируется API, а затем сервер
приказывает следовать этим инструкциям. После выполнения каждой инструкции сервер будет отвечать
результатом инструкции или сообщением об ошибке, объясняющим, почему произошла ошибка.
Каждый запрос и ответ упорядочены в указанном формате, так что он устанавливает определенные данные
и может быть прочитан XML API. Некоторые запросы приведут к получению более одной команды и/или более
одного ответа. Ниже приведено несколько шагов для бесперебойной работы XML API.
- Сбор и подготовка данных запроса
- Создание правильного формата XML
- Создание HTTP GET или POST Request на основе подготовленного XML
- Отправка HTTP GET или POST запроса на сервер FasaPay по протоколу HTTPS
- Дождитесь ответа от сервера
- Анализ и обработка ответных данных, отправленных сервером FasaPay
ПОДГОТОВКА
Прежде чем использовать XML API, необходимо выполнить следующие действия:
- Вы должны создать API_KEY в FasaPay:
- Вход в FasaPay
- в <<MEMBER AREA>> выберите в меню Доступ к учетной записи (API) > API аккаунта
- Щелчок Add API
- Введите имя API и секретное слово API, затем нажмите Create API
- Вы получите API_KEY, этот API_KEY будет использоваться для идентификации запросов XML API.
Secretword будет использоваться как часть создания токенов для процесса аутентификации.
ОПЕРАЦИИ XML API
XML API поддерживает следующие операции:
- Transfer. Позволяют переводить средства с одного счета на другой. С помощью этой команды вы можете перевести любую из доступных валют, которые поддерживает FasaPay. Эта функция также позволяет выполнять несколько (массовых) переводов.
- History. Разрешить вам получать историю транзакций вашего счета FasaPay. Эта команда имеет множество дополнительных параметров для фильтрации ответа, таких как диапазон дат, валюты, тип транзакции, цель счета и т. д.
- Detail. Позволяют получать подробную информацию о конкретных транзакциях. В один запрос можно включить несколько из этих команд.
- Balance. Позволяет вам проверить баланс вашего счета FasaPay.
- Account. Позволяет вам проверить конкретную учетную запись FasaPay, чтобы указать, зарегистрирована она или нет.
АУТЕНТИФИКАЦИЯ
XML-документ должен содержать сведения о проверке подлинности пользователя. Эта информация используется для идентификации пользователей. Каждый запрос к серверу XML-API должен содержать эту информацию.
-
API_KEY вы получите api_key после создания API.
Эти api_key будут использоваться для идентификации пользователя. - TOKEN, токен - это ХЕШ от api_secretword, api_key и UTC даты.
СОЗДАНИЕ МАРКЕРА ПРОВЕРКИ ПОДЛИННОСТИ
Вот как вы создаете ТОКЕN
- Получение путем конкатенации следующих данных
API_KEY:API_SECRETWORD:DATE UTC в YYYYMMDDHH
YYYY = 4-значный год
MM = 2-значный месяц
DD = 2-значный день
HH = 2-значный час
- Затем копируйте его с помощью SHA256
example:
- api_key = 11123548cd3a5e5613325132112becf
- api_secretword = kata rahasia
- date = 20 July 2011, 15:30
Will create
11123548cd3a5e5613325132112becf:kata rahasia:2011072015А после хеширования (это ваш токен)
e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b
ИДЕНТИФИКАЦИЯ ЗАПРОСА И ОТВЕТА
XML API нуждается в дополнительных параметрах идентификации, которые позволяют точно сопоставить
каждый запрос с ответом. Это обеспечивает получение правильного ответа на конкретный запрос и
предотвращает отправку системой ответов на неправильные или ошибочные запросы. Строка идентификатора
играет роль идентификационного параметра. Он должен быть представлен в теле XML-запроса,
заданного программой или веб-сайтом и быть уникальным для учетной записи. Каждый ответ от сервера
будет включать полученный параметр id в телеответ. После получения ответа конечный API пользователя
должен проанализировать и подтвердить строку запросов идентификатора ответа. Если строки id не совпадают -
вы либо получили некорректный ответ, либо произошел сбой в системе. id также используется для предотвращения
случайных дубликатов платежей через API.
После отправки запроса на передачу сервер выполняет поиск запросов с идентичным идентификатором,
недавно отправленных этой учетной записью, через эту запись API. Если совпадения будут найдены,
запрос будет прерван сервером. и сервер отправит пользователю следующий ответ как указание на ошибку в системе XML-API.
<fasa_response id="1107210001" date_time="2011-08-01T14:15:00+07:00">
<errors id="tr-td-1" mode="transfer" code="40109">
<data>
<attribute>duplication_detected</attribute>
<message>DUPLICATION DATA DETECTED</message>
</data>
</errors>
</fasa_response>
ФОРМАТЫ ДАННЫХ
В этой таблице перечислены типы и формат данных, используемых FasaPay XML API
ТИП ДАННЫХ |
ФОРМАТ |
ПРИМЕР |
---|---|---|
ID |
Строка текста длиной до 20 символов (varchar(20)) |
id1234567890, 20110720, abcdefg |
API_KEY |
32 символа |
1d719cf2f0888c8fbfe41933f884c955 |
TOKEN |
64 символа |
e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b |
Amount |
Дробь до 4 цифр в знаменателе, точка (.) в качестве разделителя |
10000 |
Currency |
3 символа в формате валюты |
IDR, USD |
Date_time |
Формат даты ISO 8601 |
2011-08-01T14:15:00+07:00 |
|
|
|
КОД ОШИБКИ
Основной код ошибки
КОД ОШИБКИ | СООБЩЕНИЕ | ДЕТАЛИ | ИСПРАВИТЬ |
---|---|---|---|
40000 | NOT VALID XML REQUEST | Отправленный XML недействителен, поврежден или имеет неправильный формат | Перепроверьте XML, есть ли незакрытый тег XML, неправильный специальный символ и т. д. |
40100 | UNAUTHORIZED | Авторизация не удалась. |
ошибка в теге авторизации. как неправильный ключ API или неправильный токен |
40600 | NOT ACCEPTABLE TRANSFER | Произошла ошибка в операции передачи | в операции передачи произошла ошибка. например, недостаточный баланс, слишком большая сумма, неверная целевая учетная запись и т. д. |
40700 | DETAIL REQUEST ERROR | Ошибка в операции детализации | вы ввели неверный или несуществующий номер партии. |
40800 | HISTORY REQUEST ERROR | Произошла ошибка в операции истории | проверьте свой код на недопустимое значение. например, неверный формат даты, неверное значение страницы и т. д. |
40900 | BALANCE REQUEST ERROR | Произошла ошибка в работе баланса | вы ввели неверный, несуществующий или отключенный код валюты. |
41000 | ACCOUNT REQUEST ERROR | Ошибка в работе аккаунта | вы ввели не действительный, несуществующий или отключенный номер счета FasaPay. |
Вторичный код ошибки
КОД ОШИБКИ | СООБЩЕНИЕ | ДЕТАЛИ | ИСПРАВИТЬ |
---|---|---|---|
40101 | WRONG API_KEY | API_KEY не нашел базу данных | Перепроверьте свой ключ API и сопоставьте его с ключом API, который вы создали в своей учетной записи FasaPay. |
40102 | WRONG API_SECRET | неверный API_SECRET | Перепроверьте свой api_secret и сопоставьте его с api_secret, который вы создали в своей учетной записи FasaPay. |
40103 | WRONG TOKEN | неправильный ТОКЕН | Перепроверьте свой токен и хеш. Убедитесь, что вы использовали SHA256 и правильную строку. |
40104 | WRONG API_SECRETWORD | неправильный API_SECRETWORD | Перепроверьте свое api_secret_word и сопоставьте его с api_secret, который вы создали в своей учетной записи FasaPay. |
40105 | UNAUTHORIZED IP | Ваш IP занесен в черный список или не указан в белом списке. | Проверьте настройки черного/белого списка API. |
40106 | UNAUTHORIZED TIME | Вы используете IP во время черного списка или не во время белого списка. | Проверьте настройку черного/белого списка API, чтобы узнать правильное время использования. |
40107 | UNAUTHORIZED COMMAND | Команда Operation занесена в черный список или отсутствует в белом списке. | Проверьте настройки черного/белого списка API. |
40108 | UNAUTHORIZED METHOD | Метод, используемый для доступа к API, занесен в черный список или отсутствует в белом списке. | Проверьте настройки черного/белого списка API. |
40601 | INVALID OR NON EXISTENCE DESTINATION ACCOUNT | Целевая учетная запись FasaPay не существует или неверна | Перепроверьте свой <to></to> в теге <transfer> и убедитесь, что он указывает на правильную учетную запись FasaPay. |
40602 | NOT ENOUGH BALANCE | Баланс недостаточно продолжить операцию | Увеличьте свой баланс. нравится использовать ПОПОЛНИТЬ |
40603 | AMOUNT TO LARGE | Сумма больше, чем разрешенный от FasaPay | Уменьшите сумму перевода |
40604 | AMOUNT TO SMALL | Сумма меньше, чем разрешенный от FasaPay | Увеличьте сумму перевода |
40605 | INVALID OR NON EXISTENCE SOURCE CURRENCY | Валюта либо не активирован или неверное значение | Проверьте тег <currency> на недопустимый формат валюты. или проверьте свой аккаунт на наличие отключенной валюты |
40701 | TRANSACTION NOT FOUND | Номер партии введено нет в базе данных FasaPay | Убедись, что ты введено действительный номер партии |
40801 | WRONG OR INACTIVE CURRENCY | Валюта либо не активирован или неверное значение | Проверьте тег <currency> на недопустимый формат валюты. или проверьте свой аккаунт на наличие отключенной валюты |
40802 | INVALID DATE FORMAT (yyyy-mm-dd) | Неверный <start_date> Формат | Проверьте свой <start_date> на недопустимый формат даты |
40803 | INVALID DATE FORMAT (yyyy-mm-dd) | Неверный <end_date> Формат | Проверьте свой <end_date> на недопустимый формат даты |
40804 | INVALID TYPE VALUE | Неверный <type> значение | Проверьте свой <type> на недопустимое значение. убеждаться это один из разрешенных ценности. |
40805 | INVALID ORDER_BY VALUE | Неверный <order_by> значение | Проверьте свой <order_by> на недопустимое значение. убеждаться это один из разрешенных ценности. |
40806 | INVALID ORDER VALUE | Неверный <order> значение | Проверьте свой <order> на недопустимое значение. убеждаться это один из разрешенных ценности. |
40807 | INVALID PAGE VALUE | Неверный <page> значение | Проверьте свой <page> на недопустимое значение. убеждаться это один из разрешенных ценности. |
40808 | INVALID PAGE_SIZE VALUE | Неверный <page_size> значение | Проверьте свой <page_size> на недопустимое значение. убеждаться это один из разрешенных ценности. |
40910 | REACH MAXIMUM ALLOWED BALANCE REQUEST BATCH COUNT | Достигнуто максимально допустимое количество пакетных запросов. | уменьшить количество партии Запросы. |
40901 | WRONG OR INACTIVE CURRENCY | Валюта либо не активирован или неверное значение | неверный формат валюты или проверьте свой аккаунт на наличие отключенной валюты |
41010 | REACH MAXIMUM ALLOWED ACCOUNT REQUEST BATCH COUNT | Достигнуто максимально допустимое количество пакетных запросов. | уменьшить количество партии Запросы. |
41001 | ACCOUNT NOT FOUND | Неверный номер учетной записи или запрошенный номер учетной записи еще не зарегистрирован или отключен администратором |
Операции API XML
URL XML API
Каждый запрос XML API отправляется на этот URL-адрес:
https://api.fasapay.com/
или
https://www.fasapay.com/xml
Общая структура запроса
Ниже приведен основной шаблон XML-запроса.
Каждая операция имеет одинаковую структуру.
Начните с тега fasa_request, затем блока авторизации, а затем блока запроса
<fasa_request id="idrequest">
<auth>
<api_key>API KEY</api_key>
<token>AUTHENTICATION TOKEN</token>
</auth>
<operation name> <!-- operation No.1 -->
... operation data ...
</operation name>
...
<operation name> <!-- operation No.N -->
... operation data ...
</operation name>
</fasa_request>
Общая структура ответа
Ниже приведен основной шаблон XML-ответа.
Начните с fasa_response
<fasa_response id="idrequest">
<operation name> <!-- operation No.1 -->
... status operation data ...
</operation name>
...
<operation name> <!-- operation No.N -->
... status operation data ...
</operation name>
</fasa_response>
Если во время выполнения операции возникает ошибка, создается ответ об ошибке следующего формата.
<errors id="if-operation-has-id" mode="operation name" code="primary-error-code">
<data><!—error data No.1 -->
<code>secondary-error-code</code>
<attribute>affected attribute (attribute which has invalid data)</attribute>
<message>error-message</message>
</data>
....
<data>><!—error data No.N-->
<code>secondary-error-code</code>
<attribute>affected attribute (attribute which has invalid data)</attribute>
<message>error-message</message>
</data>
</errors>
Обратите внимание, что ошибки отменяют только операцию, в которой произошла ошибка, поэтому, если в одном запросе
было более одной операции, он отменит только операцию, в которой произошла ошибка, и все равно выполнит другую операцию.
-
TRANSFER REQUEST
REQUEST URL :
https://api.fasapay.com/?req=requestbody
или
https://www.fasapay.com/xml?req=requestbody
Запрос на перевод используется, если вы хотите перевести средства с одного счета на другой.
Вот необходимые данные для этой операции:
-
required to, чтобы является целевым счетом FasaPay
формат : FPnnnnn
Пример : FP123456 -
required amount, является суммой передаваемого средства. с точкой (.) в качестве десятичного разделителя
формат : float
Пример : 100000.10 -
required currency, валюта, используемая при переводе
формат : string (IDR | USD)
Пример : IDR -
optional fee_mode, это режим комиссии, используемый при переводе. по умолчанию FiR
формат : string (FiR | FiS)
Пример : FiR -
optional note, является примечанием о переводе
формат : string max 255 character
Пример : Refund Transaction A -
optional id, id перевод для маркировки передачи
формат : string max 50 character
Пример : TR1111 -
optional ref, справочный код, который можно использовать для отслеживания транзакций
формат : string max 50 character
Пример : ORDER12345
Ниже приведен xml-формат запроса на передачу:
<transfer id="abc">
<to>TARGET ACCOUNT</to>
<amount>AMOUNT TO TRANSFER</amount>
<currency>CURRENCY USED</currency>
<fee_mode>FiS</fee_mode>
<note>TRANSFER NOTE</note>
</transfer>
ПРИМЕР КОРРЕКТНОГО ФОРМАТА ЗАПРОСА НА ПЕРЕВОД
<fasa_request id="1234567">
<auth>
<api_key>11123548cd3a5e5613325132112becf</api_key>
<token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
</auth>
<transfer id="tid">
<to>FP89680</to>
<amount>1000.0</amount>
<currency>idr</currency>
<note>standart operation</note>
</transfer>
</fasa_request>
ПРИМЕР ДОПУСТИМОГО ФОРМАТА ЗАПРОСА НА ПАКЕТНУЮ ПЕРЕДАЧУ
<fasa_request id="1234567">
<auth><!-- authentication tag. required on every request -->
<api_key>11123548cd3a5e5613325132112becf</api_key>
<token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
</auth>
<transfer id="tid-1"> <!-- transfer tag dan ididentifier -->
<to>FP00001</to> <!-- akun tujuan-->
<amount>1000.0</amount> <!-- jumlah yang ditransfer -->
<currency>idr</currency> <!-- kurensi yang digunakan -->
<note>note note</note> <!-- catatan -->
</transfer>
<transfer id="tid-2">
<to>FP00002</to>
<amount>1000.0</amount>
<currency>idr</currency>
<note>no note</note>
</transfer>
<transfer id="tid-3">
<to>FP00003</to>
<amount>1000.0</amount>
<currency>idr</currency>
<note></note>
</transfer>
</fasa_request>
ОШИБКА И РЕАКЦИЯ
FasaPay ответит <fasa_response> тегом
ПРИМЕР ОТВЕТА НА ПЕРЕВОД
<fasa_response id="1311059195" date_time="2011-07-19T14:06:35+07:00">
<transfer mode="transfer" code="203">
<batchnumber>TR2011071917277</batchnumber>
<date>2011-07-19</date>
<time>14:06:35</time>
<from>FP12049</from>
<to>FP89680</to>
<amount>1000.0</amount>
<fee>100</fee>
<total>1100.0</total>
<fee_mode>FiS</fee_mode>
<currency>IDR</currency>
<note>standart operation</note>
<status>FINISH</status>
<type>Keluar</type>
<balance>2815832.00</balance>
<method>xml_api</method>
</transfer>
</fasa_response>
ПРИМЕР ОТВЕТА НА ОШИБКУ
<fasa_response id="1311059195" date_time="2011-07-19T14:06:35+07:00">
<errors id="tid3" mode="transfer" code="40600">
<data>
<code>40605</code>
<attribute>id_kurensi</attribute>
<message>Kurensi tidak boleh kosong.</message>
</data>
<data>
<code>40601</code>
<attribute>to</attribute>
<message>Tidak ada User dengan Nomor Akun FP89681</message>
</data>
<data>
<code>40602</code>
<attribute>jumlah</attribute>
<message>Jumlah melebihi batas yg diijinkan.</message>
</data>
</errors>
</fasa_response>
-
required to, чтобы является целевым счетом FasaPay
-
HISTORY REQUEST
REQUEST URL :
https://api.fasapay.com/?req=requestbody
или
https://www.fasapay.com/xml?req=requestbody
Запросы на историю используются для получения последней истории транзакций в вашей учетной записи FasaPay.
История запросов не нуждается в каком-либо параметре, чтобы получить 10 последних транзакций.
Но у него есть следующий параметр для получения конкретной истории транзакций :- optional start_date, для указания даты начала.
формат : YYYY-mm-dd
Пример : 2011-03-01 - optional end_date, для указания даты окончания.
формат : YYYY-mm-dd
Пример : 2011-03-05 2011-03-30 - optional type, для указания типа транзакции.
формат : string transfer|topup|redeem|exchange|receive
Пример : transfer - optional order_by, для указания порядка/сортировки по определенным параметрам (сортировка)
формат : string date|amount|to|from|currency|bank
Пример : date - optional order, укажите тип заказа
формат : string ASC|DESC
Пример : asc - optional page, для получения определенной страницы из истории транзакции, которая имеет более одной страницы
формат : integer
Пример : 1 - optional page_size, для указания количества транзакций на странице
формат : integer, max 20
Пример : 20
Ниже приведен базовый формат xml для запроса истории:
<history>
... parameters ...
</history>ПРИМЕР КОРРЕКТНОГО ЗАПРОСА БАЗОВОЙ ИСТОРИИ
<fasa_request id="1234567">
<auth><!-- authentication tag. required on every request -->
<api_key>11123548cd3a5e5613325132112becf</api_key>
<token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
</auth>
<history>
</history>
</fasa_request>ПРИМЕР КОРРЕКТНОГО ЗАПРОСА ИСТОРИИ С ПАРАМЕТРАМИ
<fasa_request id="1234567">
<auth><!-- authentication tag. required on every request -->
<api_key>11123548cd3a5e5613325132112becf</api_key>
<token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
</auth>
<history>
<start_date>2011-07-01</start_date>
<end_date>2011-07-09</end_date>
<type>transfer</type>
<order_by>date</order_by>
<order>DESC</order>
<page>3</page>
<page_size>5</page_size>
</history>
</fasa_request>
ПРИМЕР ОТВЕТА ИСТОРИИ
<fasa_response id="1312342474" date_time="2011-08-03T10:34:34+07:00">
<history>
<page>
<total_item>579</total_item>
<page_count>58</page_count>
<current_page>0</current_page>
</page>
<detail>
<batchnumber>TR2011072685119</batchnumber>
<datetime>2011-07-26 15:44:35</datetime>
<type>Keluar</type>
<to>FP10500</to>
<from>FP12049</from>
<amount>11160.000</amount>
<note>Pembayaran untuk pembelian Liberty Reserve</note>
<status>FINISH</status>
</detail>
<detail>
<batchnumber>TR2011072521135</batchnumber>
<datetime>2011-07-25 11:38:43</datetime>
<type>Keluar</type>
<to>FP89680</to>
<from>FP12049</from>
<amount>1000.000</amount>
<note>standart operation</note>
<status>FINISH</status>
</detail>
</history>
</fasa_response>
- optional start_date, для указания даты начала.
-
DETAIL REQUEST
REQUEST URL :https://api.fasapay.com/?req=requestbody
или
https://www.fasapay.com/xml?req=requestbody
Detail-Request используется для получения подробной информации о транзакции.
Detail-Request требуется только пакетное количество транзакций, которые вы хотите видеть.Detail-Request также может использовать этот параметр для поиска конкретной транзакции:
- ref, REF используемый для поиска определенной строки fp_merchant_ref, которая была сохранена FasaPay во время транзакции с использованием SCI
- note, NOTE параметр, используемый для поиска определенной строки примечания, которая была сохранена FasaPay во время транзакции.
Ниже приведен базовый формат xml для подробного запроса:
<detail>TR2012092712345</detail>
<detail><ref>BL12345</ref></detail>
<detail><note>Pembayaran</note></detail>
ПРИМЕР КОРРЕКТНОГО ФОРМАТА ЗАПРОСА СВЕДЕНИЙ
<fasa_request id="1234567">
<auth>
<api_key>11123548cd3a5e5613325132112becf</api_key>
<token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
</auth>
<detail>TR2012092712345</detail>
</fasa_request>
ПРИМЕР КОРРЕКТНОГО ФОРМАТА ЗАПРОСА СВЕДЕНИЙ О ПАКЕТЕ
<fasa_request id="1234567">
<auth><!-- authentication tag. required on every request -->
<api_key>11123548cd3a5e5613325132112becf</api_key>
<token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
</auth>
<detail>TU2012092712345</detail>
<detail>TR2012100265432</detail>
<detail>TR2012092791234</detail>
<detail><ref>BL12345</ref></detail>
<detail><note>Pembayaran</note></detail>
</fasa_request>
ОШИБКА И РЕАКЦИЯ
FasaPay ответит <fasa_response> тегом
ПРИМЕР ПОДРОБНОГО ОТВЕТА
<fasa_response id="1234567" date_time="2013-01-01T10:58:43+07:00">
<detail mode="detail" code="210">
<batchnumber>TR2012092791234</batchnumber>
<date>2012-10-20</date>
<time>10:09:36</time>
<from>FP00001</from>
<to>FP00002</to>
<amount>1000.000</amount>
<total>1100</total>
<currency>IDR</currency>
<note>Payment for something</note>
<status>FINISH</status>
<fee>100.000</fee>
<type>Transfer Out</type>
<method>api_xml</method>
<fee_mod>FiS</fee_mod>
</detail>
</fasa_response>
ПРИМЕР ОТВЕТА НА ОШИБКУ
<fasa_response id="1234567" date_time="2013-01-01T10:58:43+07:00"> <errors mode="detail" code="40701"> <data> <message>TRANSACTION NOT FOUND</message> <detail>BATCHNUMBER TR2012100291308 NOT FOUND</detail> </data> </errors> </fasa_response>
-
BALANCE REQUEST
REQUEST URL :
https://api.fasapay.com/?req=requestbody
или
https://www.fasapay.com/xml?req=requestbody
Запрос баланса используется для получения суммы баланса на вашем счете.
Для запроса баланса требуется только код валюты, которую вы хотите увидеть. (IDR, USD)
Ниже приведен базовый формат xml для запроса баланса:
<balance>IDR</balance>
ПРИМЕР КОРРЕКТНОГО ФОРМАТА ЗАПРОСА БАЛАНСА
<fasa_request id="1234567">
<auth>
<api_key>11123548cd3a5e5613325132112becf</api_key>
<token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
</auth>
<balance>IDR</balance>
</fasa_request>
ПРИМЕР ДОПУСТИМОГО ФОРМАТА ЗАПРОСА ПАКЕТНОГО БАЛАНСА
<fasa_request id="1234567">
<auth><!-- authentication tag. required on every request -->
<api_key>11123548cd3a5e5613325132112becf</api_key>
<token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
</auth>
<balance>IDR</balance>
<balance>USD</balance> </fasa_request>
ОШИБКА И РЕАКЦИЯ
FasaPay ответит <fasa_response> тегом
ПРИМЕР РЕАКЦИИ РАВНОВЕСИЯ
<fasa_response id="1234567" date_time="2013-01-01T10:58:43+07:00">
<balance>
<IDR>19092587.45</IDR>
<USD>3987.31</USD>
</balance>
</fasa_response>
ПРИМЕР ОТВЕТА НА ОШИБКУ
<fasa_response id="1234567" date_time="2013-01-01T10:58:43+07:00">
<errors mode="balance" code="40901">
<data>
<message>WRONG OR INACTIVE CURRENCY</message>
<detail>WRONG OR INACTIVE CURRENCY CHY</detail>
</data>
</errors>
</fasa_response> -
ACCOUNT REQUEST
REQUEST URL :
https://api.fasapay.com/?req=requestbody
или
https://www.fasapay.com/xml?req=requestbody
Запрос учетной записи используется для получения информации определенных пользователей FasaPay по номеру их счета.
Для запроса учетной записи требуется только номер счета FasaPay, который вы хотите видеть.
Ниже приведен базовый формат xml для запроса учетной записи:
<account>FP00001</account>
ПРИМЕР ДОПУСТИМОГО ФОРМАТА ЗАПРОСА УЧЕТНОЙ ЗАПИСИ
<fasa_request id="1234567">
<auth>
<api_key>11123548cd3a5e5613325132112becf</api_key>
<token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
</auth>
<account>FP00001</account>
</fasa_request>
ПРИМЕР ДОПУСТИМОГО ФОРМАТА ЗАПРОСА ПАКЕТНОЙ УЧЕТНОЙ ЗАПИСИ
<fasa_request id="1234567">
<auth><!-- authentication tag. required on every request -->
<api_key>11123548cd3a5e5613325132112becf</api_key>
<token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
</auth>
<account>FP00001</account>
<account>FP00002</account> </fasa_request>
ОШИБКА И РЕАКЦИЯ
FasaPay ответит <fasa_response> тегом
ПРИМЕР ОТВЕТА АККАУНТА
<fasa_response id="1234567" date_time="2013-01-01T10:58:43+07:00">
<account>
<fullname>Budiman</fullname>
<account>FP00001</account>
<status>Store</status>
</account>
<account>
<fullname>Ani Permata</fullname>
<account>FP00002</account>
<status>Standard</status>
</account>
</fasa_response>
ПРИМЕР ОТВЕТА НА ОШИБКУ
<fasa_response id="1234567" date_time="2013-01-01T10:58:43+07:00">
<errors mode="account" code="41001">
<data>
<message>ACCOUNT NOT FOUND</message> <detail>FP ACCOUNT FP12345 NOT FOUND</detail>
</data>
</errors>
</fasa_response>
Фрагмент функции PHP XML API
CREATE TOKEN
Эта функция используется для создания токена
/** * For creating token used to authenticate xml api request * * @param string $api_key 32 character of api_key * @param string $api_secretword secret word used to created xml api * @return string sha256 hashed token **/ function createToken($api_key, $api_secretword){ $str = $api_key.":".$api_secretword.":".gmdate("YmdH"); return hash('sha256',$str); }
BUILD AUTH
Эта функция используется для создания тега аутентификации
/** * for building xml auth xml tag * * @param string $api_key 32 character of api_key * @param string $token token which has created using createToken function * @return string auth xml tag **/ function buildAuth($api_key, $token){ $str = '<auth> <api_key>'.$api_key.'</api_key> <token>'.$token.'</token> </auth>'; return $str; }
BUILD TRANSFER
Эта функция используется для создания xml-тега запроса на передачу
/** * for building xml transfer tag * * @param string $id transfer identification string * @param string $to destination FasaPay account (FP12345) * @param float $amount amount of money to transfer * @param string $currency 3 character of currency used (IDR|USD|JPY) * @param string $note transfer note * @return string xml formated transfer request **/ function buildTransfer($id, $to, $amount, $currency="IDR", $note=""){ $str = '<transfer id="'.$id.'"> <to>'.$to.'</to> <amount>'.$amount.'</amount> <currency>'.$currency.'</currency> <note>'.$note.'</note> </transfer> '; return $str; }
BUILD XML
Эти функции используются для создания xml запроса документа
/** * for building xml request document * * @param string $id request identification string * @param string $auth xml formated auth tag (created with buildAuth) * @param string/array $request xml formated request body (created with buildTransfer,buildHistory,buildDetail,etc) * @return string xml formated request xml document **/ public function buildXml($id, $auth, $request){ $str = ''; $str .= $auth; if(is_array($request)){ foreach($request as $value){ $str .= $value; } } else { $str .= $request; } $str .= ' '; return $str; }
GET RESPONSE
Эта функция используется для отправки xml-запроса с помощью CURL на сервер FasaPay XML API. Эта функция вернет ответ от сервера API XML FasaPay.
/**
* sending request xml through curl and returning xml response from xml api
* @param string $xml xml request created using buildXml (or manualy)
* @return string xml formated fasa response
**/
function getResponse($xml)
{
$url = "https://www.fasapay.com/xml/";
$handler = curl_init($url);
curl_setopt($handler, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($handler, 115, 1);
// Sending request through post
curl_setopt($handler, CURLOPT_POST, true);
curl_setopt($handler, CURLOPT_POSTFIELDS, 'req='.urlencode($xml));
// Some optimization :)
curl_setopt($handler, CURLOPT_RETURNTRANSFER, true);
$content = curl_exec($handler);
curl_close($handler);
return $content;
}