紹介
このドキュメントには、FasaPay XML APIのすべての関数と特定の関数の説明が含まれています。 XML APIを使用すると、支払いの送受信を自動的に処理できます。トランザクション情報と実行されたトランザクションの履歴を取得します。 これらのサービスは、支払いオプションの1つとしてFasaPayを使用することを希望するすべてのWebサイト、 およびFasaPayアカウント間の自動トランザクションを使用する必要があるビジネスに必要です。
これらのドキュメントが必要なユーザー
このドキュメントは、FasaPayをWebサイトに統合するためのプログラミングインターフェイスに取り組んでいるすべての開発者に必要です。 成功するには、開発者は次の経験が必要です。
- Web サーバーへの要求の準備と送信
- Webサーバーから受信した情報の受信と分析
- HTTPS プロトコルの操作
- XMLの知識があり、HASH操作の使用方法を知っている。
XML API に関する基本情報
XML APIは、FasaPayと他のWebサイトとの間の仲介役として使用されるコマンドのコレクションです。 XML API の形式とデータ構造は、標準の XML-1.0 から開発されました。
仕組み
XML APIは、情報要求を送受信するシステムです。このシステムは、注文に従って要求を処理し、レポートデータを結合して送信者の要求に送り返します。
E非常にリクエストは、APIによって統合され、サーバーにそれらの指示に従うように命じた特定のコマンドで構成されています。
すべての命令が実行された後、サーバーは命令の結果またはエラーが発生した理由を説明するエラーメッセージで応答します。
各要求と応答は、特定のデータを確立し、XML API で読み取ることができるように、指定された形式で配置されます。
一部の要求では、複数のコマンドや複数の応答が返されます。XML APIをスムーズに実行できるようにするためのいくつかの手順。
- 要求データの収集と準備
- 正しい XML 形式の作成
- 準備された XML に基づいて HTTP GET または POST 要求を作成する
- HTTPSプロトコルを介してファサペイサーバーにHTTP GETまたはPOSTリクエストを送信する
- サーバーからの応答を待つ
- サーバーFasaPayによって送信された応答データの分析と処理
準備
XML API を使用する前に、次の手順を実行する必要があります。
- あなたはFasaPayでAPI_KEYを作成する必要があります:
- FasaPayにログイン
- in <<MEMBER AREA>> アカウントへのアクセス (API) > アカウント API を選択します。
- [API の追加] をクリックします。
- API 名と API シークレットワードを入力し、[API の作成] をクリックします。
-
このAPI_KEYは XML API 要求を識別するために使用され、API_KEYを受け取ります。
Secretword は、認証プロセスのトークン作成の一部として使用されます。
XML API オペレーション
XML API では、次の操作がサポートされています。
- Transfer. ある口座から別の口座に資金を送金できるようにします。このコマンドを使用すると、 FasaPayがサポートする利用可能な通貨のいずれかを転送できます。この機能を使用すると、複数の (一括) 転送を実行することもできます。
- History. FasaPayアカウントの履歴トランザクションを受け取ることができます。このコマンドには、 日付範囲、通貨、トランザクションの種類、アカウントターゲットなどの応答をフィルタリングするための多くの追加パラメーターがあります。
- Detail. 特定のトランザクションの詳細情報を受け取ることができます。1 つの要求に複数のこのコマンドを含めることができます。
- Balance. FasaPayアカウントの残高を確認できます。
- Account. 特定のFasaPayアカウントをチェックして、登録されているかどうかを示すことができます。
認証
XML ドキュメントには、ユーザーからの認証情報が含まれている必要があります。この情報は、ユーザーを識別するために使用されます。 XML-API サーバーへのすべての要求には、次の情報が含まれている必要があります。
-
API_KEY,API の作成後にapi_keyを受け取ります。
これらのapi_keyは、ユーザーを識別するために使用されます。 - TOKEN, トークンは、api_secretword、api_key、UTCの日付からのHASHです。
認証TOKENの作成
これがTOKENを作成する方法です
- 以下のデータを連結して取得する
API_KEY:API_SECRETWORD:YYYYMMDDHH の日付 UTC
YYYY = 4 桁の年
MM = 2 桁の月
DD = 2 桁の日
HH = 2 桁の時間
- 次に、SHA256を使用してHASHします
例:
- api_key = 11123548cd3a5e5613325132112becf
- api_secretword = kata rahasia
- date = 20 July 2011, 15:30
作成します
11123548cd3a5e5613325132112becf:kata rahasia:2011072015Aハッシュした後(これはあなたのtokenです)
e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b
要求と応答の識別
XML APIには、各リクエストとレスポンスを正確に一致させることができる識別の追加パラメータが必要です。これにより、特定の要求に対して正しい応答が受信され、
システムが誤った要求や誤った要求に対する応答を送信するのを防ぐことができます。 ID文字列は識別パラメータの役割を果たします。XMLリクエストの本文に存在し、
プログラムまたはWebサイトによって設定され、アカウントに対して一意である必要があります.サーバーからのすべての応答には、本文の応答に取得したidパラメーターが含まれます。
応答が明らかになったら、ユーザーのAPIの終了は、応答のリクエストのID文字列を分析して確認する必要があります。id文字列が一致しない場合-誤った応答を受け取ったか、
システム内に誤動作がありました。idパラメータは、APIを介した偶発的な重複支払いを防ぐためにも使用されます。
転送要求が送信されると、サーバーは、この API エントリを介してこのアカウントによって最近送信された同じ ID を持つ要求を検索します。
一致が見つかった場合、要求はサーバーによって中止されます。サーバーは、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_keyや間違ったトークンのように |
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_keyを再確認し、FasaPayアカウントで作成したapi_keyと照合します。 |
40102 | WRONG API_SECRET | 間違ったAPI_SECRET | api_secretを再確認し、FasaPayアカウントで作成したapi_secretと照合します。 |
40103 | WRONG TOKEN | 間違った TOKEN |
tokenとHashを再確認します。SHA256 を使用し、正しい文字列を使用していることを確認します。 |
40104 | WRONG API_SECRETWORD | 間違った API_SECRETWORD | api_secret_wordを再確認し、FasaPayアカウントで作成したapi_secretと照合します. |
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 | バランスが操作を続行するのに十分ではありません | バランスを増やします。TOPUPを使うのが好き |
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> 無効な値がないか確認してください。許可されている値の 1 つであることを確認してください。 |
40805 | INVALID ORDER_BY VALUE | 無効な <order_by> value | <order_by> 無効な値がないか確認してください。許可されている値の 1 つであることを確認してください。 |
40806 | INVALID ORDER VALUE | 無効な <order> 値 | <order> 無効な値がないか確認してください。許可されている値の 1 つであることを確認してください。 |
40807 | INVALID PAGE VALUE | 無効な <page> 値 | <page> 無効な値がないか確認してください。許可されている値の 1 つであることを確認してください。 |
40808 | INVALID PAGE_SIZE VALUE | 無効な <page_size> 値 | <page_size> 無効な値がないか確認してください。許可されている値の 1 つであることを確認してください。 |
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 | 無効なアカウント番号または要求されたアカウント番号がまだ登録されていないか、管理者によって無効にされています |
XML API オペレーション
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>
エラーはエラーが発生した操作のみをキャンセルするため、1つのリクエスト内に複数の操作があった場合は、エラーが発生した操作のみをキャンセルし、他の操作を実行していることに注意してください。
-
TRANSFER REQUEST
REQUEST URL :
https://api.fasapay.com/?req=requestbody
または
https://www.fasapay.com/xml?req=requestbody
ある口座から別の口座に資金を送金する場合に使用する送金をリクエストする
この操作に必要なデータは次のとおりです
-
必要な to、FasaPayアカウントのターゲットです
形式 : FPnnnnn
例 : FP123456 -
必要な amountは、振替された資金の金額です。小数点記号としてポイント (.) を使用
形式 : float
例 : 100000.10 -
必要な currencyは、転送に使用される通貨です
形式 : string (IDR | USD)
例 : IDR -
オプションの fee_modeは、転送で使用される手数料モードです。デフォルトは FiR です。
形式 : string (FiR | FiS)
例 : FiR -
オプションの noteは、転送のメモです
形式 : string max 255 character
例 : Refund Transaction A -
オプションの id、転送をマークするためのID転送
形式 : string max 50 character
例 : TR1111 -
オプションの 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>
EXAMPLE OF VALID TRANSFER REQUEST FORMAT
<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>
EXAMPLE OF VALID BATCH TRANSFER REQUEST FORMAT
<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>
EXAMPLE OF TRANSFER 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>
EXAMPLE OF ERROR 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>
-
必要な to、FasaPayアカウントのターゲットです
-
HISTORY REQUEST
REQUEST URL :
https://api.fasapay.com/?req=requestbody
または
https://www.fasapay.com/xml?req=requestbody
履歴リクエストは、FasaPayアカウントの最新の取引履歴を取得するために使用されます。
要求履歴は、10 件の遅延トランザクションを取得するためのパラメーターを必要としません
しかし、それは特定の取引履歴を取得するために次のパラメータを持っています- オプションの start_date, 開始日を指定します。
形式 : YYYY-mm-dd
例 : 2011-03-01 - オプションの end_date, 終了日を指定します。
形式 : YYYY-mm-dd
例 : 2011-03-05 2011-03-30 - オプションの type, 取引タイプを指定します。
形式 : string transfer|topup|redeem|exchange|receive
例 : transfer - オプションの order_by, 特定のパラメータで並べ替え/順序を指定する (Sort)
形式 : string date|amount|to|from|currency|bank
例 : date - オプションの order, 注文タイプを指定
形式 : string ASC|DESC
例 : asc - オプションの page, 複数のページを持つ履歴トランザクションから特定のページを取得するため
形式 : integer
例 : 1 - オプションの page_size, ページあたりのトランザクション量を指定する
形式 : integer, max 20
例 : 20
履歴リクエストの基本的な xml 形式は次のとおりです。
<history>
... parameters ...
</history>EXAMPLE OF VALID BASIC HISTORY REQUEST
<fasa_request id="1234567">
<auth><!-- authentication tag. required on every request -->
<api_key>11123548cd3a5e5613325132112becf</api_key>
<token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
</auth>
<history>
</history>
</fasa_request>EXAMPLE OF VALID HISTORY REQUEST WITH PARAMETERS
<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>
EXAMPLE OF HISTORY RESPONSE
<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>
- オプションの start_date, 開始日を指定します。
-
DETAIL REQUEST
REQUEST URL :https://api.fasapay.com/?req=requestbody
または
https://www.fasapay.com/xml?req=requestbody
詳細要求は、詳細なトランザクション情報を取得するために使用されます。
詳細要求に必要なのは、表示するトランザクションのBATCHNUMBERだけです。Detail-Request では、このパラメータを使用して特定のトランザクションを検索することもできます。
- ref, SCIを使用したトランザクション中にFasaPayによって保存された特定のfp_merchant_ref文字列を検索するために使用されるREFパラメータ
- note, Noteトランザクション中にFasaPayによって保存された特定のノート文字列を検索するために使用されるパラメータ。
詳細要求の基本的なXML形式は次のとおりです。
<detail>TR2012092712345</detail>
<detail><ref>BL12345</ref></detail>
<detail><note>Pembayaran</note></detail>
EXAMPLE OF VALID DETAIL REQUEST FORMAT
<fasa_request id="1234567">
<auth>
<api_key>11123548cd3a5e5613325132112becf</api_key>
<token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
</auth>
<detail>TR2012092712345</detail>
</fasa_request>
EXAMPLE OF VALID BATCH DETAIL REQUEST FORMAT
<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>
EXAMPLE OF DETAIL 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>
EXAMPLE OF ERROR 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>
EXAMPLE OF VALID BALANCE REQUEST FORMAT
<fasa_request id="1234567">
<auth>
<api_key>11123548cd3a5e5613325132112becf</api_key>
<token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
</auth>
<balance>IDR</balance>
</fasa_request>
EXAMPLE OF VALID BATCH BALANCE REQUEST FORMAT
<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>
EXAMPLE OF BALANCE 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>
EXAMPLE OF ERROR 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>
EXAMPLE OF VALID ACCOUNT REQUEST FORMAT
<fasa_request id="1234567">
<auth>
<api_key>11123548cd3a5e5613325132112becf</api_key>
<token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
</auth>
<account>FP00001</account>
</fasa_request>
EXAMPLE OF VALID BATCH ACCOUNT REQUEST FORMAT
<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>
EXAMPLE OF ACCOUNT 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>
EXAMPLE OF ERROR 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>
XML API PHP 関数スニペット
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); }
ビルド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; }
ビルド 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; }
ビルド 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
この関数は、CURL を使用して FasaPay XML API Server にリクエスト xml を送信するために使用されます。 この関数は、FasaPay XML API Server からの応答を返します。
/**
* 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;
}