システムインターフェイス(IF)
システムIF
インターフェイス方式 | HTTP(S) |
---|---|
伝送方式 | POST |
タイムアウト時間 | 75秒(※1) |
データタイプ | JSON |
文字コード | UTF-8 |
No | インターフェースコード | <インターフェース名> | インターフェース説明 | インターフェース種類 | リクエスト元 | リクエスト先 | 備考 |
---|---|---|---|---|---|---|---|
01 | SBPS-IF-OPEN-01 | 決済要求 | 決済処理を行うIF | 同期/非同期 | 加盟店 | SBPS(CT) | (※1) |
02 | SBPS-IF-OPEN-02 | 決済履歴検索 | 指定した決済トランザクション履歴(ステータス)を確認するIF(本検索で返金履歴は含まれていない) | 同期 | 加盟店 | SBPS(CT) | (※1) |
※返金トランザクションは別API(SBPS-IF-OPEN-03) | |||||||
03 | SBPS-IF-OPEN-03 | 返金要求 | 返金要求 | 同期/非同期 | 加盟店 | SBPS(CT) | (※1) |
04 | SBPS-IF-OPEN-04 | 返金履歴検索 | 指定した返金トランザクション履歴(ステータス)を確認するIF | 同期 | 加盟店 | SBPS(CT) | (※1) |
05 | SBPS-IF-OPEN-05 | 決済取消 | 決済タイムアウトが発生する際に、決済取消の電文を送信することで、 決済ステータス状態の不一致を解消するIF | 同期/非同期 | 加盟店 | SBPS(CT) | (※1) |
06 | SBPS-IF-OPEN-06 | 結果通知 | “決済要求”のpayType=“02”、且つ「returnUrl」が有効なhttpアドレスの場合、 OPRALは決済成功応答を受信した後、「returnUrl」に「http/https」の結果通知を行う。 | 非同期 | SBPS(CT) | 加盟店 | (※1) |
07 | SBPS-IF-OPEN-07 | 通関要求 | オンライン決済が完了したら通関要求IFを呼び出し、 通関要求状態が「2-申告」の場合、通関修正要求を実施することができる。 | 同期 | 加盟店 | SBPS(CT) | (※1) |
08 | SBPS-IF-OPEN-08 | 通関履歴検索 | 通関要求の結果検索IF | 同期 | 加盟店 | SBPS(CT) | (※1) |
09 | SBPS-IF-OPEN-09 | 通関再要求 | 通関要求状態が「2-申告」の場合、再度要求することができる。 | 同期 | 加盟店 | SBPS(CT) | (※1) |
決済GWからの通知電文受取ない場合、クライアント側各自にて取引ステータスを確認した上、後続処理(業務継続、または取消・返金・再度業務要求など)を行うことをお勧めするため、各システム処理シーケンスの異常系にて参照。
01.決済要求
インターフェイス名 | 決済要求 | |||||||
---|---|---|---|---|---|---|---|---|
リクエストタイプ | POST | |||||||
URL | 試験環境URL:https://{stg-url}/api/pay/pay/openCreate 本番環境URL:https://{prod-url}/api/pay/pay/openCreate | |||||||
インタフェース用途 | 決済処理を行うIF | |||||||
パラメータ | カラム名(英語)(level1) | カラム名(英語)(level2) | カラム名(英語)(level3) | カラム名 | パラメータタイプ | 文字 | 必須(Y:必須、N:任意、C:条件付き必須) | 備考 |
1 | clientOrderNo | 端末処理通番 | String | 32 | Y | 加盟店側で生成する処理通番、 SBPS(CT)GW側にてユニークチェックを行う。 | ||
2 | orderPrice | 決済金額 | Int | 11 | Y | 1円以上で、必ず整数である。 | ||
3 | orderSubject | 決済タイトル | String | 50 | Y | “Purchased Item”固定 | ||
4 | payType | 読取方式 | String | 2 | Y | 02:WEB型(PC決済) 04:ミニプログラム型 05:InAPP型 06:WEB型 (スマホ決済) | ||
5 | brandType | 決済機関 | String | 2 | Y | 02:WeChat Pay | ||
6 | returnUrl | 結果通知URL | String | 128 | C | payType=”02″、”04″、”05″のとき、決済要求結果を加盟店APPへ通知するときに使用する | ||
7 | openId | EUユーザラベル | String | 128 | C | payType=”04″、”05″のとき必須 | ||
8 | subAppId | 特約先口座ID | String | 128 | C | payType=”04″、”05″のとき必須 | ||
9 | redirectUrl | リダイレクトURL | String | 256 | N | payType=”06″のときのオプション項目 | ||
10 | expireTime | 失効時間(単位:秒) | int | 5 | N | 有効値[60~7200]、デフォルト7200秒 | ||
11 | logisticsType | 物流通関申告タイプ | String | 2 | N | 00:clientOrderNo申告タイプ (クライアント側がclientOrderNo一意を厳密に保証し、本決済GWはclientOrderNoを使用して通関申告を行う) 01:gwOrderNo申告タイプ (本決済GWは一意保証するgwOrderNoを使用して通関申告を行う) デフォルト値:00:clientOrderNo申告タイプ | ||
リクエスト例 | ||||||||
{ “clientOrderNo”: “12345678901234567890”, “orderPrice”:100, “orderSubject”:”Purchased Item”, “payType”:”02″, “brandType”:”02″, “returnUrl”:”https://www.test.com/” } | ||||||||
レスポンスBODY | カラム名(英語)(level1) | カラム名(英語)(level2) | カラム名(英語)(level3) | カラム名 | パラメータタイプ | 文字 | 必須(Y:必須、N:任意、C:条件付き必須) | 説明 |
1 | result | 決済要求結果 構造体 | String | – | N | resultType=”SUCCESS”の場合は、全カラムが返却されます | ||
2 | clientOrderNo | 端末処理通番 | String | 32 | N | 加盟店側で生成した処理通番 | ||
3 | gwOrderNo | GW処理通番 | String | 32 | N | GWで生成される処理通番 | ||
4 | brandOrderNo | 決済機関番号 | String | 50 | N | 決済機関側で生成される決済番号 | ||
5 | customerId | 顧客ID | String | 30 | N | エンドユーザ個人を示す番号 ※WeChatの場合は「openid」に相当 | ||
6 | orderSubject | 決済タイトル | String | 50 | N | “Purchased Item”固定 | ||
7 | currencyType | 決済通貨 | String | 10 | N | “JPY”固定” | ||
8 | orderPrice | 決済金額 | Int | 11 | N | |||
9 | orderStatus | 決済状態 | Int | 4 | N | 0:支払待ち 1:決済成功 2:決済中 3:決済失敗 4:決済取消 7:エンドユーザ支払い中 | ||
10 | brandType | 決済機関 | String | 2 | N | 02:WeChatPay | ||
11 | codeUrl | ペイメントURL | String | 128 | N | payType=”02″のときに応答される | ||
12 | partnerId | 加盟店識別番号 | String | 128 | N | 決済機関側で管理する加盟店番号。(subMerchantId) payType=”05″の場合のみ応答されます。 | ||
13 | prepayId | プリペイドID | String | 30 | N | プリペイド成功コードは支払機関側で応答し、payType=「04:ミニプログラム型」、「05:InAPP型決済」の場合に該当フィールドが存在します。 | ||
14 | orderStartTime | 決済開始時間 | String | 20 | N | datetimeフォーマット ”YYYY-MM-DD HH:MI:SS” | ||
15 | orderFinishTime | 決済完了時間 | String | 20 | N | datetimeフォーマット ”YYYY-MM-DD HH:MI:SS” | ||
16 | resultCode | 処理結果コード | String | 64 | Y | |||
17 | resultMessage | 処理結果MSG | String | 1024 | Y | |||
18 | resultType | 処理結果タイプ | String | 15 | Y | この結果は決済要求を処理した結果で、決済状態とは違う。 正常に決済要求を作成して、正常に決済機関の通信インターフェイスを呼び出した時は、SUCCESSになる。 以下の場合では戻り値がFAILEDとなる。 1.取引番号がすでに存在している時 2.決済機関側インターフェイス呼び出し失敗時 3.システム内部異常時 | ||
レスポンス例(カラム順不同のため、ご了承ください) | ||||||||
{ “result”:{ “clientOrderNo”:”samplecode”, “gwOrderNo”:”samplecode”, “brandOrderNo”:”samplecode”, “orderSubject”:”Purchased Item”, “currencyType”:”JPY”, “orderPrice”:100, “prepayId”:”Sample prepayID” “codeUrl”:”sample URI”, “orderStatus”:0, “brandType”:”02″ “orderStartTime”:”2018-01-01 00:00:01″ }, “resultCode”:”0000″, “resultMessage”:”null”, “resultType”:”SUCCESS” } |
02.決済履歴検索
インターフェイス名 | 決済履歴検索 | |||||||
---|---|---|---|---|---|---|---|---|
リクエストタイプ | POST | |||||||
URL | 試験環境URL: https://{stg-url}/api/pay/orderInfo/openGet 本番環境URL:https://{prod-url}/api/pay/orderInfo/openGet | |||||||
インタフェース用途 | 指定した決済トランザクション履歴(ステータス)を確認するIF(本検索で返金履歴は含まれていない) | |||||||
パラメータ | カラム名(英語)(level1) | カラム名(英語)(level2) | カラム名(英語)(level3) | カラム名 | パラメータタイプ | 文字 | 必須(Y:必須、N:任意) | 備考 |
1 | clientOrderNo | 端末処理通番 | String | 32 | Y(/ N) | 左記、端末処理通番/ GW決済機関番号/ 決済機関番号のいずれかをセット | ||
2 | gwOrderNo | GW決済機関番号 | String | 32 | Y(/ N) | 左記、端末処理通番/ GW決済機関番号/ 決済機関番号のいずれかをセット | ||
3 | brandOrderNo | 決済機関番号 | String | 50 | Y(/ N) | 左記、端末処理通番/ GW決済機関番号/ 決済機関番号のいずれかをセット | ||
リクエスト例 | ||||||||
{ “clientOrderNo”: “12345678901234567890” } | ||||||||
レスポンスBODY | カラム名(英語)(level1) | カラム名(英語)(level2) | カラム名(英語)(level3) | カラム名 | パラメータタイプ | 文字 | 必須(Y:必須、N:任意) | 説明 |
1 | result | 決済要求結果 構造体 | String | – | N | resultType=”SUCCESS”の場合は、 全カラムが返却されます | ||
2 | clientOrderNo | 端末処理通番 | String | 32 | N | 加盟店側で生成した処理通番 | ||
3 | gwOrderNo | GW処理通番 | String | 32 | N | GWで生成される処理通番 | ||
4 | brandOrderNo | 決済機関番号 | String | 50 | N | 決済機関側で生成される決済番号 | ||
5 | customerId | 顧客ID | String | 30 | N | エンドユーザ個人を示す番号 ※WeChatの場合は「openid」に相当 | ||
6 | orderSubject | 決済タイトル | String | 50 | N | “Purchased Item”固定 | ||
7 | currencyType | 決済通貨 | String | 10 | N | “JPY”固定 | ||
8 | orderPrice | 決済金額 | Int | 11 | N | |||
9 | exchangeRate | 為替レート | tring | 16 | N | 例:0.056236 | ||
10 | actualPrice | 現地通貨決済金額 | Int | 11 | N | 現地通貨の最小単位 | ||
11 | brandType | 決済機関 | String | 2 | N | 02:WeChatPay | ||
12 | orderStatus | 決済状態 | Int | 4 | N | 0:支払待ち 1:決済成功 2:決済中 3:決済失敗 4:決済取消 7:エンドユーザ支払い中 | ||
13 | codeUrl | ペイメントURL | String | 128 | N | payType=”02,”04″の場合、「codeUrl」が応答されます。 | ||
14 | prepayId | プリペイドID | String | 30 | N | プリペイド成功コードは支払機関側で応答し、 payType=「04:ミニプログラム型」、「05:InAPP型決済」の場合に該当フィールドが存在します。 | ||
15 | orderStartTime | 決済開始時間 | String | 20 | N | datetimeフォーマット ”YYYY-MM-DD HH:MI:SS” | ||
16 | orderFinishTime | 決済完了時間 | String | 20 | N | datetimeフォーマット ”YYYY-MM-DD HH:MI:SS” | ||
17 | resultCode | 処理結果コード | String | 64 | Y | |||
18 | resultMessage | 処理結果MSG | String | 1024 | Y | |||
19 | resultType | 処理結果タイプ | String | 15 | Y | この結果は決済要求を処理した結果で、決済状態とは違う。 正常に決済要求を作成して、 正常に決済機関の通信インターフェイスを呼び出した時はSUCCESSになる。 以下の場合では戻り値がFAILEDとなる。 1.取引番号がすでに存在している時 2.決済機関側インターフェイス呼び出し失敗時 3.システム内部異常時 | ||
レスポンス例(カラム順不同のため、ご了承ください) | ||||||||
{ “result”:{ “clientOrderNo”:”samplecode”, “gwOrderNo”:”samplecode”, “brandOrderNo”:”samplecode”, “orderSubject”:”Purchased Item”, “currencyType”:”JPY”, “orderPrice”:100, “prepayId”:”Sample prepayID” “codeUrl”:”sample URI”, “orderStatus”:0, “brandType”:”02″ “orderStartTime”:”2018-01-01 00:00:01″ }, “resultCode”:”0000″, “resultMessage”:”null”, “resultType”:”SUCCESS” } |
03.返金要求
インターフェイス名 | 返金要求 | |||||||
---|---|---|---|---|---|---|---|---|
リクエストタイプ | POST | |||||||
URL | 試験環境URL: https://{stg-url}/api/pay/refund/openCreate 本番環境URL:https://{prod-url}/api/pay/refund/openCreate | |||||||
インタフェース用途 | 返金処理を行うIF | |||||||
パラメータ | カラム名(英語)(level1) | カラム名(英語)(level2) | カラム名(英語)(level3) | カラム名 | パラメータタイプ | 文字 | 必須(Y:必須、N:任意) | 備考 |
1 | clientOrderNo | 端末処理通番 | String | 32 | Y | 決済要求時の端末処理通番をセット | ||
2 | gwOrderNo | GW処理通番 | String | 32 | Y | 決済要求時のGW処理通番 | ||
3 | clientRefundNo | 端末返金処理通番 | String | 32 | Y | 加盟店側で生成する返金処理通番、 GW側にてユニークチェックを行う。 | ||
4 | refundPrice | 返金金額 | Int | 11 | Y | 返金金額の最小単位かつ整数であること、 決済金額より返金金額が少ないことも前提条件 | ||
リクエスト例 | ||||||||
{ “clientOrderNo”: “12345678901234567890” } | ||||||||
レスポンスBODY | カラム名(英語)(level1) | カラム名(英語)(level2) | カラム名(英語)(level3) | カラム名 | パラメータタイプ | 文字 | 必須(Y:必須、N:任意、C:条件付き必須) | 説明 |
1 | result | 返金要求結果 構造体 | String | – | N | resultType=”SUCCESS”の場合は、 全カラムが返却されます | ||
2 | clientRefundNo | 端末返金処理通番 | String | 32 | N | 加盟店側で生成した処理通番 | ||
3 | gwRefundNo | GW返金処理通番 | String | 32 | N | GWで生成される返金処理通番 | ||
4 | brandRefundNo | 決済機関返金番号 | String | 50 | N | 決済機関側で生成される決済機関返金番号 | ||
5 | clientOrderNo | 端末処理通番 | String | 32 | N | 決済要求時の端末処理通番 | ||
6 | gwOrderNo | GW処理通番 | String | 32 | N | 決済要求時のGW処理通番 | ||
7 | brandOrderNo | 決済機関番号 | String | 50 | N | 決済要求時の決済機関番号 | ||
8 | orderPrice | 決済金額 | Int | 11 | N | 決済要求時の決済金額 | ||
9 | refundStartTime | 返金開始時間 | String | 20 | N | datetimeフォーマット ”YYYY-MM-DD HH:MI:SS” | ||
10 | refundFinishTime | 返金完了時間 | String | 20 | N | datetimeフォーマット ”YYYY-MM-DD HH:MI:SS” | ||
11 | currencyType | 決済通貨 | String | 10 | N | “JPY”固定 | ||
12 | refundPrice | 返金金額 | Int | 11 | N | <=決済要求時の決済金額 | ||
13 | exchangeRate | 為替レート | String | 16 | N | 例:0.056236 | ||
14 | actualPrice | 現地通貨決済金額 | Int | 11 | N | 現地通貨の最小単位 | ||
15 | refundStatus | 返金状態 | Int | 4 | N | 1:返金成功 3:返金失败 | ||
16 | resultCode | 処理結果コード | String | 64 | Y | |||
17 | resultMessage | 処理結果MSG | String | 1024 | Y | |||
18 | resultType | 処理結果タイプ | String | 15 | Y | この結果は決済要求を処理した結果で、決済状態とは違う。 正常に決済要求を作成して、 正常に決済機関の通信インターフェイスを呼び出した時は、SUCCESSになる。 以下の場合では戻り値がFAILEDとなる。 1.取引番号がすでに存在している時 2.決済機関側インターフェイス呼び出し失敗時 3.システム内部異常時 | ||
レスポンス例(カラム順不同のため、ご了承ください) | ||||||||
{ “result”:{ “clientRefundNo”:”samplecode”, “gwRefundNo”:”samplecode”, “brandRefundNo”:”2008012001201706261093075024″, “clientOrderNo”:”samplecode”, “gwOrderNo”:”samplecode”, “brandOrderNo”:”2008012001201706261093075024″, “orderPrice”:100, “refundStartTime”:”2017-06-26 12:23:31″, “refundFinishTime”:”2017-06-26 12:23:33″, “currencyType”:”JPY”, “refundPrice”:100, “refundStatus”:1 }, “resultCode”:”0000″, “resultMessage”:”null”, “resultType”:”SUCCESS” } |
04.返金履歴検索
インターフェイス名 | 返金履歴検索 | |||||||
---|---|---|---|---|---|---|---|---|
リクエストタイプ | POST | |||||||
URL | 試験環境URL:https://{stg-url}/api/pay/refundInfo/openGet 本番環境URL:https://{prod-url}/api/pay/refundInfo/openGet | |||||||
インタフェース用途 | 指定した返金トランザクション履歴(ステータス)を確認するIF | |||||||
パラメータ | カラム名(英語)(level1) | カラム名(英語)(level2) | カラム名(英語)(level3) | カラム名 | パラメータタイプ | 文字 | 必須(Y:必須、N:任意) | 備考 |
1 | clientRefundNo | 端末返金処理通番 | String | 32 | Y(/N) | 左記、端末返金処理通番/GW返金処理通番/決済機関返金番号のいずれかをセット | ||
2 | gwRefundNo | GW返金処理通番 | String | 32 | Y(/N) | 左記、端末返金処理通番/GW返金処理通番/決済機関返金番号のいずれかをセット | ||
3 | brandRefundNo | 決済機関返金番号 | String | 50 | Y(/N) | 左記、端末返金処理通番/GW返金処理通番/決済機関返金番号のいずれかをセット | ||
リクエスト例 | ||||||||
{ “client_refund_no”: “samplecode” } | ||||||||
レスポンスBODY | カラム名(英語)(level1) | カラム名(英語)(level2) | カラム名(英語)(level3) | カラム名 | パラメータタイプ | 文字 | 必須(Y:必須、N:任意) | 説明 |
1 | result | 返金検索結果 構造体 | String | – | N | resultType =“SUCCESS”の場合、全カラムが返却されます。 「brandRefundNo」は中華系決済機関のみ返却されます。 | ||
2 | clientRefundNo | 端末返金処理通番 | String | 32 | N | 加盟店側で生成した処理通番 | ||
3 | gwRefundNo | GW返金処理通番 | String | 32 | N | GWで生成される返金処理通番 | ||
4 | brandRefundNo | 決済機関返金番号 | String | 50 | N | 決済機関側で生成される決済機関返金番号 | ||
5 | clientOrderNo | 端末処理通番 | String | 32 | N | 決済要求時の端末処理通番 | ||
6 | gwOrderNo | GW処理通番 | String | 32 | N | 決済要求時のGW処理通番 | ||
7 | brandOrderNo | 決済機関番号 | String | 50 | N | 決済要求時の決済機関番号 | ||
8 | orderPrice | 決済金額 | Int | 11 | N | 決済要求時の決済金額 | ||
9 | refundStartTime | 返金開始時間 | String | 20 | N | datetimeフォーマット ”YYYY-MM-DD HH:MI:SS” | ||
10 | refundFinishTime | 返金完了時間 | String | 20 | N | datetimeフォーマット ”YYYY-MM-DD HH:MI:SS” | ||
11 | currencyType | 決済通貨 | String | 10 | N | “JPY”固定 | ||
12 | refundPrice | 返金金額 | Int | 11 | N | 決済要求時の決済金額 | ||
13 | exchangeRate | 為替レート | String | 16 | N | 例:0.056236 | ||
14 | actualPrice | 現地通貨決済金額 | Int | 11 | N | 現地通貨の最小単位 | ||
13 | refundStatus | 返金状態 | Int | 4 | N | 1:返金成功 3:返金失败 | ||
14 | resultCode | 処理結果コード | String | 64 | Y | |||
15 | resultMessage | 処理結果MSG | String | 1024 | Y | |||
16 | resultType | 処理結果タイプ | String | 15 | Y | この結果は決済要求を処理した結果で、決済状態とは違う。 正常に決済要求を作成して、 正常に決済機関の通信インターフェイスを呼び出した時は、SUCCESSになる。 以下の場合では戻り値がFAILEDとなる。 1.システム内部異常時 | ||
レスポンス例(カラム順不同のため、ご了承ください) | ||||||||
{ “result”:{ “clientRefundNo”:”samplecode”, “gwRefundNo”:”samplecode”, “brandRefundNo”:”2008012001201706261093075024″, “clientOrderNo”:”samplecode”, “gwOrderNo”:”samplecode”, “brandOrderNo”:”2008012001201706261093075024″, “orderPrice”:100, “refundStartTime”:”2017-06-26 12:23:31″, “refundFinishTime”:”2017-06-26 12:23:33″, “currencyType”:”JPY”, “refundPrice”:100, “refundStatus”:1 }, ”resultCode”:”0000″, “resultMessage”:”null”, “resultType”:”SUCCESS” } |
05.決済取消
インターフェイス名 | 決済取消 | ||||||||
---|---|---|---|---|---|---|---|---|---|
リクエストタイプ | POST | ||||||||
URL | 試験環境URL: https://{stg-url}/api/pay/pay/openClose 本番環境URL:https://{prod-url}/api/pay/pay/openClose | ||||||||
インタフェース用途 | 決済タイムアウトが発生する際に、決済取消の電文を送信することで、決済ステータス状態の不一致を解消するIF | ||||||||
パラメータ | カラム名(英語)(level1) | カラム名(英語)(level2) | カラム名(英語)(level3) | カラム名 | パラメータタイプ | 文字 | 必須(Y:必須、N:任意) | 備考 | |
1 | clientOrderNo | 端末処理通番 | String | 32 | Y | ||||
2 | gwOrderNo | GW決済機関番号 | String | 32 | N | ||||
リクエスト例 | |||||||||
{ “clientOrderNo”: “4a5076b8d82d4e16a9d83ae6a2a40b94”, “gwOrderNo”: “4a5076b8d82d4e16a9d83ae6a2a40b94” } | |||||||||
レスポンスBODY | カラム名(英語)(level1) | カラム名(英語)(level2) | カラム名(英語)(level3) | カラム名 | パラメータタイプ | 文字 | 必須(Y:必須、N:任意) | 説明 | |
1 | result | 決済取消結果 構造体 | String | – | N | resultType=”SUCCESS”の場合は、 全カラムが返却されます | |||
2 | clientOrderNo | 端末処理通番 | String | 32 | N | 加盟店側で生成した処理通番 | |||
3 | gwOrderNo | GW処理通番 | String | 32 | N | GWで生成される処理通番 | |||
4 | orderSubject | 決済タイトル | String | 50 | N | “Purchased Item”固定 | |||
5 | currencyType | 決済通貨 | String | 10 | N | “JPY”固定 | |||
6 | orderPrice | 決済金額 | Int | 11 | N | ||||
7 | orderStatus | 決済状態 | Int | 4 | N | 1:決済成功 3:決済失敗 4:決済取消 | |||
8 | brandType | 決済機関 | String | 2 | N | 02:WeChatPay | |||
9 | orderStartTime | 決済開始時間 | String | 20 | N | datetimeフォーマット ”YYYY-MM-DD HH:MI:SS” | |||
10 | resultCode | 処理結果コード | String | 64 | Y | ||||
11 | resultMessage | 処理結果MSG | String | 1024 | Y | ||||
12 | resultType | 処理結果タイプ | String | 15 | Y | この結果は決済要求を処理した結果で、決済状態とは違う。 正常に決済要求を作成して、正常に決済機関の通信インターフェイスを呼び出した時は、 SUCCESSになる。 以下の場合では戻り値がFAILEDとなる。 1.取引番号がすでに存在している時 2.決済機関側インターフェイス呼び出し失敗時 3.システム内部異常時 | |||
レスポンス例(カラム順不同のため、ご了承ください) | |||||||||
{ “result”:{ “clientOrderNo”:”samplecode”, “gwOrderNo”:”samplecode”, “orderSubject”:”Purchased Item”, “currencyType”:”JPY”, “orderPrice”:100, “orderStatus”:4, “brandType”:”02″, “orderStartTime”:”2018-01-01 00:00:01″ }, ”resultCode”:”0000″, “resultMessage”:”null”, “resultType”:”SUCCESS” } |
06.結果通知
インターフェイス名 | 結果通知 | ||||||
---|---|---|---|---|---|---|---|
リクエストタイプ | POST | ||||||
URL | https://XXXX 01.決済要求内 returnUrl 結果通知URL | ||||||
インタフェース用途 | “決済要求”のpayType=“02”、且つ「returnUrl」が有効なhttpアドレスの場合、OPRALは決済成功応答を受信した後、「returnUrl」に「http/https」の結果通知を行う。 | ||||||
Https Headers | Accept-Charset UTF-8 User-Agent OPREAL/v1 Accept-Language jp | ||||||
パラメータ | カラム名(英語)(level1) | カラム名 | パラメータタイプ | 文字 | 必須(Y:必須、N:任意) | 備考 | |
1 | clientOrderNo | 端末処理通番 | String | 32 | N | 加盟店側で生成した処理通番 | |
2 | gwOrderNo | GW処理通番 | String | 32 | N | GWで生成される処理通番 | |
3 | brandOrderNo | 決済機関番号 | String | 50 | N | 決済機関側で生成される決済番号 | |
4 | customerId | 顧客ID | String | 30 | N | エンドユーザ個人を示す番号 ※WeChatの場合は「openid」に相当、 Alipayの場合は 「alipay_login_id」に相当 | |
5 | orderSubject | 決済タイトル | String | 50 | N | ||
6 | currencyType | 決済通貨 | String | 10 | N | “Purchased Item”固定 | |
7 | orderPrice | 決済金額 | int | 11 | N | “JPY”固定 | |
8 | exchangeRate | 為替レート | String | 16 | N | 例:0.056236 | |
9 | actualPrice | 現地通貨決済金額 | Int | 11 | N | 現地通貨の最小単位 | |
10 | brandType | 決済機関 | String | 2 | N | 02:WeChatPay | |
11 | orderStatus | 決済状態 | int | 4 | N | 0:支払待ち 1:決済成功 2:決済中 3:決済失敗 4:決済取消 7:エンドユーザ支払い中 | |
12 | orderStartTime | 決済開始時間 | String | 20 | N | datetimeフォーマット ”YYYY-MM-DD HH:MI:SS” | |
13 | orderFinishTime | 決済完了時間 | String | 20 | N | datetimeフォーマット ”YYYY-MM-DD HH:MI:SS” | |
レスポンス例(カラム順不同のため、ご了承ください) | |||||||
{ “clientOrderNo”:”samplecode”, “gwOrderNo”:”samplecode”, “brandOrderNo”:”samplecode”, “customerId”:”asd8uy1j2e890sud89″, “orderSubject”:”Purchased Item”, “currencyType”:”JPY”, “orderPrice”:100, “brandType”:”02″, “orderStatus”:1, “orderStartTime”:”2018-01-01 00:00:01″, “orderFinishTime”:”2018-01-01 00:00:02″ } | |||||||
レスポンスBODY | カラム名(英語)(level1) | カラム名 | パラメータタイプ | 文字 | 必須(Y:必須、N:任意) | 備考 | |
任意で、httpcodeは200を保持すればいいです。 { } |
07.通関要求
インターフェイス名 | 通関要求 | ||||||||
---|---|---|---|---|---|---|---|---|---|
リクエストタイプ | POST | ||||||||
URL | 試験環境URL: https://{stg-url}/api/pay/customsDeclare/declare 本番環境URL:https://{prod-url}/api/pay/customsDeclare/declare | ||||||||
インタフェース用途 | オンライン決済が完了したら通関要求IFを呼び出し、通関要求状態が「2-申告」の場合、通関修正要求を実施することができる。 | ||||||||
パラメータ | カラム名(英語)(level1) | カラム名(英語)(level2) | カラム名(英語)(level3) | カラム名 | パラメータタイプ | 文字 | 必須(Y:必須、N:任意) | 備考 | |
1 | clientDeclareNo | 端末通関通番 | String | 32 | Y | 加盟店側で生成する端末通関通番、 GW側にてユニークチェックを行う。 | |||
2 | clientOrderNo | 端末処理通番 | String | 32 | Y | 加盟店側で生成する端末処理通番、 GW側にてユニークチェックを行う。 | |||
3 | subClientOrderNo | サブ端末処理通番 | String | 32 | C | 加盟店側で生成するサブ端末処理通番、 GW側にてユニークチェックを行う。(決済分解時必須) | |||
4 | customs | 税関コード | String | 32 | Y | GUANGZHOU_ZS 広州(総署版) HANGZHOU_ZS 杭州(総署版) NINGBO 寧波 ZHENGZHOU_BS 郑州(保税物流センター) CHONGQING 重慶 SHANGHAI_ZS 上海(総署版) SHENZHEN 深圳 ZHENGZHOU_ZH_ZS 郑州総保(総署版) TIANJIN 天津(注文書を天津税関に送る必要がある場合、 取引先の管理舞台裏に天津税関の登録情報と天津国の検査記録情報を配置する必要があります。 通関インターフェースを呼び出すときは、天津税関を押すだけで、 通関インターフェースを要求する。) | |||
5 | mchCustomsNo | 取引先税関届出番号 | String | 50 | Y | 取引先が税関に登録した届出番号 | |||
6 | duty | 関税 | int | 11 | N | 通貨種別:CNY,最小単位は分 | |||
7 | isAdd | 追加フラグ | String | 2 | N | 追加フラグ 0:いいえ 1:はいデフォルト値: 1:はい | |||
8 | transportFee | サブオーダー物流費用 | int | 11 | C | 通貨種別:CNY,最小単位は分です。 subClientOrderNoがNULL以外時必須 | |||
9 | productFee | サブオーダー貨物費 | int | 11 | C | 通貨種別:CNY,最小単位は分です。 subClientOrderNoがNULL以外時必須 | |||
10 | certId | 身分証ID | String | 64 | N | 身分証番号 | |||
11 | name | 名称 | String | 64 | N | ユーザ名称 | |||
請求示例 | |||||||||
{ “clientOrderNo”:”samplecode”, “clientDeclareNo”:”samplecode”, “customs”:”SHENZHEN”, “mchCustomsNo”:”samplecode” } | |||||||||
レスポンスBODY | カラム名(英語)(level1) | カラム名(英語)(level2) | カラム名(英語)(level3) | カラム名 | パラメータタイプ | 文字 | 必須(Y:必須、N:任意) | 説明 | |
1 | result | 通関要求結果 構造体 | String | – | N | resultType=”SUCCESS”の場合は、 全カラムが返却されます | |||
2 | clientDeclareNo | 端末通関通番 | String | 32 | N | ||||
3 | gwDeclareNo | GW通関処理通番 | String | 32 | N | ||||
4 | brandDeclareNo | 決済機関通関番号 | String | 80 | N | ||||
5 | clientOrderNo | 端末処理通番 | String | 32 | N | ||||
6 | subClientOrderNo | サブ端末処理通番 | String | 32 | N | ||||
7 | subGwOrderNo | GWサブ通関処理通番 | String | 32 | N | ||||
8 | subBrandOrderNo | サブ決済機関通関番号 | String | 50 | N | ||||
9 | gwOrderNo | GW通関処理通番 | String | 32 | N | ||||
10 | brandOrderNo | 決済機関通関番号 | String | 50 | N | ||||
11 | verifyDepartment | 検証機関 | String | 16 | N | ||||
12 | verifyDepartmentTr adeId | 検証機関のトランザクションシリアル番号 | String | 80 | N | ||||
13 | brandType | 決済機関 | String | 2 | N | 02:WeChatPay | |||
14 | declareState | 税関の状態 | int | 1 | N | 0:未申告 1:申告成功 2:申告提出済 3:申告失敗 4:申告エラー 7:申告中 | |||
15 | certCheckResult | 認証状態 | int | 1 | N | 0:UNCHECKED 取引先は注文者の身分情報をアップロードしていません。 1:SAME 取引先からアップロードされた注文者の身分情報は支払人の身分情報と一致しています。 2:DIFFERENT 取引先からアップロードされた注文者の身分情報と支払人の身分情報は一致しません。 | |||
16 | declareStartTime | 税関申告開始時間 | String | 20 | N | datetimeフォーマット ”YYYY-MM-DD HH:MI:SS” | |||
17 | declareUpdateTime | 税関申告最終修正時間 | String | 20 | N | datetimeフォーマット ”YYYY-MM-DD HH:MI:SS” | |||
18 | declareFinishTime | 通関完了時間 | String | 20 | N | datetimeフォーマット ”YYYY-MM-DD HH:MI:SS” | |||
19 | resultCode | 処理結果コード | String | 64 | N | ||||
20 | resultMessage | 処理結果MSG | String | 1024 | Y | ||||
21 | resultType | 処理結果タイプ | String | 15 | Y | この結果は決済要求を処理した結果で、通関ステータスとは違います。 正常に通関要求を作成して、 正常に通関インターフェイスを呼び出した時は、SUCCESSになる。 以下の場合では戻り値がFAILEDとなる。 1.端末通関通番がすでに存在している時 2.通関インターフェイス呼び出し失敗時 3.システム内部異常時 | |||
レスポンス例(カラム順不同のため、ご了承ください) | |||||||||
{ “result”:{ “clientOrderNo”:”samplecode”, “gwOrderNo”:”samplecode”, “brandOrderNo”:”samplecode”, “clientDeclareNo”:”samplecode”, “gwDeclareNo”:”samplecode”, “brandDeclareNo”:”samplecode”, “verifyDepartment”:”samplecode”, “verifyDepartmentTradeId”:”samplecode”, “certCheckResult”:”0″, “certCheckResult”:”0″, “declareState”:2, “brandType”:”02″ “declareStartTime”:”2018-01-01 00:00:01″, “declareUpdateTime”:”2018-01-01 00:00:01″ }, ”resultCode”:”0000″, “resultMessage”:”null”, “resultType”:”SUCCESS” } |
08.通関履歴検索
インターフェイス名 | 通関履歴検索 | ||||||||
---|---|---|---|---|---|---|---|---|---|
リクエストタイプ | POST | ||||||||
URL | 試験環境URL: https://{stg-url}/api/pay/customsDeclare/query 本番環境URL:https://{prod-url}/api/pay/customsDeclare/query | ||||||||
インタフェース用途 | 通関要求の結果検索IF | ||||||||
パラメータ | カラム名(英語)(level1) | カラム名(英語)(level2) | カラム名(英語)(level3) | カラム名 | パラメータタイプ | 文字 | 必須(Y:必須、N:任意) | 備考 | |
1 | clientDeclareNo | 端末通関通番 | String | 32 | Y | 加盟店側で生成する端末通関通番、 GW側にてユニークチェックを行う。 | |||
2 | gwDeclareNo | GW通関処理通番 | String | 32 | Y | 加盟店側で生成する通関処理通番、 GW側にてユニークチェックを行う。 | |||
リクエスト例 | |||||||||
{ “clientDeclareNo”:”samplecode”, “gwDeclareNo”:”samplecode” } | |||||||||
レスポンスBODY | カラム名(英語)(level1) | カラム名(英語)(level2) | カラム名(英語)(level3) | カラム名 | パラメータタイプ | 文字 | 必須(Y:必須、N:任意) | 説明 | |
1 | result | 通関履歴検索結果 構造体 | String | – | N | resultType=”SUCCESS”の場合は、全カラムが返却されます | |||
2 | clientDeclareNo | 端末通関通番 | String | 32 | N | ||||
3 | gwDeclareNo | GW通関処理通番 | String | 32 | N | ||||
4 | brandDeclareNo | 決済機関通関番号 | String | 80 | N | ||||
5 | clientOrderNo | 端末処理通番 | String | 32 | N | ||||
6 | subClientOrderNo | サブ端末処理通番 | String | 32 | N | ||||
7 | subGwOrderNo | GWサブ通関処理通番 | String | 32 | N | ||||
8 | subBrandOrderNo | サブ決済機関通関番号 | String | 50 | N | ||||
9 | gwOrderNo | GW通関処理通番 | String | 32 | N | ||||
10 | brandOrderNo | 決済機関通関番号 | String | 50 | N | ||||
11 | verifyDepartment | 検証機関 | String | 16 | N | ||||
12 | verifyDepartmentTr adeId | 検証機関のトランザクションシリアル番号 | String | 80 | N | ||||
13 | brandType | 決済機関 | String | 2 | N | 02:WeChatPay | |||
14 | declareState | 税関の状態 | int | 1 | N | 0:未申告 1:申告成功 2:申告提出済 3:申告失敗 4:申告エラー 7:申告中 | |||
15 | certCheckResult | 認証状態 | int | 1 | N | 0:UNCHECKED 取引先は注文者の身分情報をアップロードしていません。 1:SAME 取引先からアップロードされた注文者の身分情報は支払人の身分情報と一致しています。 2:DIFFERENT 取引先からアップロードされた注文者の身分情報と支払人の身分情報は一致しません。 | |||
16 | declareStartTime | 税関申告開始時間 | String | 20 | N | datetimeフォーマット ”YYYY-MM-DD HH:MI:SS” | |||
17 | declareUpdateTime | 税関申告最終修正時間 | String | 20 | N | datetimeフォーマット ”YYYY-MM-DD HH:MI:SS” | |||
18 | declareFinishTime | 通関完了時間 | String | 20 | N | datetimeフォーマット ”YYYY-MM-DD HH:MI:SS” | |||
19 | resultCode | 処理結果コード | String | 64 | N | ||||
20 | resultMessage | 処理結果MSG | String | 1024 | Y | ||||
21 | resultType | 処理結果タイプ | String | 15 | Y | この結果は決済要求を処理した結果で、通関ステータスとは違います。 正常に通関要求を作成して、 正常に通関インターフェイスを呼び出した時は、SUCCESSになる。 以下の場合では戻り値がFAILEDとなる。 1.端末通関通番がすでに存在している時 2.通関インターフェイス呼び出し失敗時 3.システム内部異常時 | |||
レスポンス例(カラム順不同のため、ご了承ください) | |||||||||
{ “result”:{ “clientOrderNo”:”samplecode”, “gwOrderNo”:”samplecode”, “brandOrderNo”:”samplecode”, “clientDeclareNo”:”samplecode”, “gwDeclareNo”:”samplecode”, “brandDeclareNo”:”samplecode”, “verifyDepartment”:”samplecode”, “verifyDepartmentTradeId”:”samplecode”, “certCheckResult”:”0″, “certCheckResult”:”0″, “declareState”:2, “brandType”:”02″ “declareStartTime”:”2018-01-01 00:00:01″, “declareUpdateTime”:”2018-01-01 00:00:01″ }, ”resultCode”:”0000″, “resultMessage”:”null”, “resultType”:”SUCCESS” } |
09.通関再要求
インターフェイス名 | 通関再要求 | ||||||||
---|---|---|---|---|---|---|---|---|---|
リクエストタイプ | POST | ||||||||
URL | 試験環境URL:https://{stg-url}/api/pay/customsDeclare/redeclare 本番環境URL:https://{prod-url}/api/pay/customsDeclare/redeclare | ||||||||
インタフェース用途 | 通関要求状態が「2-申告」の場合、再度要求することができる。 | ||||||||
パラメータ | カラム名(英語) (level1) | カラム名(英語) (level2) | カラム名(英語) (level3) | カラム名 | パラメータタイプ | 文字 | 必須(Y:必須、N:任意) | 備考 | |
1 | clientDeclareNo | 端末通関通番 | String | 32 | Y | 加盟店側で生成する端末通関通番、 GW側にてユニークチェックを行う。 | |||
2 | gwDeclareNo | GW通関処理通番 | String | 32 | Y | 加盟店側で生成する通関処理通番、 GW側にてユニークチェックを行う。 | |||
リクエスト例 | |||||||||
{ “clientDeclareNo”:”samplecode”, “gwDeclareNo”:”samplecode” } | |||||||||
レスポンスBODY | カラム名(英語) (level1) | カラム名(英語) (level2) | カラム名(英語)(level3) | カラム名 | パラメータタイプ | 文字 | 必須(Y:必須、N:任意) | 説明 | |
1 | result | 通関再要求結果 構造体 | String | – | N | resultType=”SUCCESS”の場合は、 全カラムが返却されます | |||
2 | clientDeclareNo | 端末通関通番 | String | 32 | N | ||||
3 | gwDeclareNo | GW通関処理通番 | String | 32 | N | ||||
4 | brandDeclareNo | 決済機関通関番号 | String | 80 | N | ||||
5 | clientOrderNo | 端末処理通番 | String | 32 | N | ||||
6 | subClientOrderNo | サブ端末処理通番 | String | 32 | N | ||||
7 | subGwOrderNo | GWサブ通関処理通番 | String | 32 | N | ||||
8 | subBrandOrderNo | サブ決済機関通関番号 | String | 50 | N | ||||
9 | gwOrderNo | GW通関処理通番 | String | 32 | N | ||||
10 | brandOrderNo | 決済機関通関番号 | String | 50 | N | ||||
11 | verifyDepartment | 検証機関 | String | 16 | N | ||||
12 | verifyDepartmentTr adeId | 検証機関のトランザクションシリアル番号 | String | 80 | N | ||||
13 | brandType | 決済機関 | String | 2 | N | 02:WeChatPay | |||
14 | declareState | 税関の状態 | int | 1 | N | 0:未申告 1:申告成功 2:申告提出済 3:申告失敗 4:申告エラー 7:申告中 | |||
15 | certCheckResult | 認証状態 | int | 1 | N | 0:UNCHECKED 取引先は注文者の身分情報をアップロードしていません。 1:SAME 取引先からアップロードされた注文者の身分情報は支払人の身分情報と一致しています。 2:DIFFERENT 取引先からアップロードされた注文者の身分情報と支払人の身分情報は一致しません。 | |||
16 | declareStartTime | 税関申告開始時間 | String | 20 | N | datetimeフォーマット ”YYYY-MM-DD HH:MI:SS” | |||
17 | declareUpdateTime | 税関申告最終修正時間 | String | 20 | N | datetimeフォーマット ”YYYY-MM-DD HH:MI:SS” | |||
18 | declareFinishTime | 通関完了時間 | String | 20 | N | datetimeフォーマット ”YYYY-MM-DD HH:MI:SS” | |||
19 | explanation | 通関説明 | String | 128 | N | ||||
20 | resultCode | 処理結果コード | String | 64 | N | ||||
21 | resultMessage | 処理結果MSG | String | 1024 | Y | ||||
22 | resultType | 処理結果タイプ | String | 15 | Y | この結果は決済要求を処理した結果で、通関ステータスとは違います。 正常に通関要求を作成して、 正常に通関インターフェイスを呼び出した時は、SUCCESSになる。 以下の場合では戻り値がFAILEDとなる。 1.端末通関通番がすでに存在している時 2.通関インターフェイス呼び出し失敗時 3.システム内部異常時 | |||
レスポンス例(カラム順不同のため、ご了承ください) | |||||||||
{ “result”:{ “clientOrderNo”:”samplecode”, “gwOrderNo”:”samplecode”, “brandOrderNo”:”samplecode”, “clientDeclareNo”:”samplecode”, “gwDeclareNo”:”samplecode”, “brandDeclareNo”:”samplecode”, “verifyDepartment”:”samplecode”, “verifyDepartmentTradeId”:”samplecode”, “certCheckResult”:”0″, “certCheckResult”:”0″, “declareState”:2, “brandType”:”02″ “declareStartTime”:”2018-01-01 00:00:01″, “declareUpdateTime”:”2018-01-01 00:00:01″ }, ”resultCode”:”0000″, “resultMessage”:”null”, “resultType”:”SUCCESS” } |
システム処理シーケンス
WEB型(PC決済)
「決済要求 シーケンス」※WeChat Pay
決済要求時「returnUrl」カラムに設定された通知先アドレスに、Http/Https結果通知を「加盟店サーバー」側へ送信します。
「returnUrl」値設定次第で都度通知先を変更できます。
異常系
「結果通知受信不可 シーケンス(推奨)」※WeChat Pay
「決済要求レスポンス受信不可 シーケンス(推奨)」※WeChat Pay
WEB型(スマホ決済)
「売上 シーケンス」※WeChat Pay
※エンドユーザ端末はスマートフォン、ブラウザーはWeChatブラウザーではない
決済要求時「returnUrl」カラムに設定された通知先アドレスに、Http/Https結果通知を「加盟店サーバー」側へ送信します。
「returnUrl」値設定次第で都度通知先を変更できます。
異常系
「結果通知受信不可 シーケンス(推奨)」※WeChat Pay
※エンドユーザ端末はスマートフォン、ブラウザーはWeChatブラウザーではない
「決済要求レスポンス受信不可 シーケンス(推奨)」※WeChat Pay
InAPP型
「売上 シーケンス」※WeChat Pay
決済要求時「returnUrl」カラムに設定された通知先アドレスに、Http/Https結果通知を「加盟店サーバー」側へ送信します。
「returnUrl」値設定次第で都度通知先を変更できます。
異常系
「結果通知受信不可 シーケンス(推奨)」※WeChat Pay
「決済要求レスポンス受信不可 シーケンス(推奨)」※WeChat Pay
ミニプログラム型
「売上 シーケンス」※WeChat Pay
決済要求時「returnUrl」カラムに設定された通知先アドレスに、Http/Https結果通知を「加盟店サーバー」側へ送信します。
「returnUrl」値設定次第で都度通知先を変更できます。
異常系
「結果通知受信不可 シーケンス(推奨)」※WeChat Pay
「結果通知受信不可 シーケンス(推奨)」※WeChat Pay
通関請求
「通関要求シーケンス」※WeChat Pay
「通関再要求シークエンス」※WeChat Pay
「通関要求再送シークエンス」※WeChat Pay
決済取消、返金、検索
「決済取消」、「返金要求」、「決済履歴検索」、「返金履歴検索」シーケンスはWEB型(PC、スマホ)、InApp型、ミニプログラム型共通となります。
決済取消
決済取消後、再度決済要求する場合、新し端末処理通番でリクエストしてください。同じ端末処理通番でリクエストする場合、エラーが発生します。
決済成功の取引に対して取消はできません、返金は可能です。
返金要求
決済履歴検索
返金履歴検索
HTTP Header
No | NAME | KEY | Value | 説明 | |
---|---|---|---|---|---|
1 | ACCESS_TOKEN | X-OPREAL-AccessToken | 「AccessTokenについて」をご参照ください | 必須項目 | |
2 | CHECK_SIGNATURE | X-OPREAL-Signature | 「サイン仕様」をご参照ください | 必須項目 | |
3 | User-Agent | User-Agent | 必須項目 | ||
4 | Remote_IP | X-OPREAL-RemoteIP | 選擇項目*WEB型(スマホ決済)必要 | ||
5 | content_type | application/json; charset=UTF-8 | 必須項目 |
例 |
---|
HTTPs Request:[Url:http://{$stg-url}/api/history/orderInfo/openGet] Http Headers:{ “X-OPREAL-Signature”: [ “09860BC70F8254474EFA4CDA88ED63F2” ], “X-OPREAL-AccessToken”: [ “1ouiyasdijasid” ], “User-Agent”:[ “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36” ], “content-type”: [ ”application/json; charset=UTF-8″ |
AccessTokenについて
※Access tokenは必須となる。
※Access tokenについては加盟店ごとに生成し管理する。
Access tokenをHeaderの「X-OPREAL-AccessToken」にて埋める必要がある。
※Headerの埋め方は、【HTTP Header】をご参照してください。
Access tokenの連携について
Access tokenについては、加盟店審査通過後、SBPS加盟店サポートより、「接続情報のご案内(PDF)」を、ご担当者様へメールでご案内させていただきます。
公開鍵
外部端末プラットフォーム公開鍵について
外部端末プラットフォームは、自主的なRSA公開鍵を生成する(RSA2フォーマットの使用を推奨します。後に「外部公開鍵」と「外部秘密鍵」とします。)ことにより、公開鍵をOLGWプラットフォームにアップロードしてOLGWプラットフォームの公開鍵(後に「OLGW公開鍵」とします)を取得する。
※外部秘密鍵は、アクセスプラットフォームによって自主的に保存され、
損失が発生したら、再自主的に生成し、OLGWにアップロードされる。
※外部プラットフォームは、公私鍵が自己対であることを確認しなければならない。
不一致が発生したら、直接決済が失敗します。
WeChat Pay SDK
1. IOS/Androidプロジェクト設定
https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/pay/In-AppPay/chapter6_2.shtml
2. signatureアルゴリズム
https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/pay/chapter2_2.shtml#menu1
サイン仕様
サイン値生成仕様
- POSTボディーにある各パラメータを昇順(A-Z)で並べ替える
- キーとバリューを「=」で繋ぐ
- キーバリューペア間では、「&」で繋ぐ
- ネストがある場合は、ネストのカンマ(“,”)はリンクを「&」で置換。
- バリューがNULLの時に、サイン対象外とする
- サインはプラットフォームの秘密鍵で「SHA 256 WithRSA」方式のRSAでサインする。
結果コード一覧
■決済成功時のresultCode
resultCode | resultMessage |
---|---|
0000 | ※成功となりますが、「resultMessage」の返却値はございません |
■GWから返却されるresultCode
resultCode | resultMessage |
---|---|
param.access_token.invalid | 無効なAccess Token |
param.invalid | 無効なパラメータ[{0}] |
param.signature.invalid | 無効なSignature[{0}] |
param.signature.isnull | [Signature]が空です、値を入れてください |
param.access_token.isnull | [Access Token]が空です、値を入れてください |
param.http_request_body.format.error | HttpRequest bodyフォーマットエラー |
param.format.error | [{0}]パラメータフォーマットエラー |
param.format.overlength.error | [{0}]フィールドが長すぎます |
param.isnull.error | [{0}]が空です、値を入れてください |
param.format.over_maximum | [{0}]最大値を超える{1} |
order_info.not_same_company | 該当会社コードが存在しません |
order_info.not_exist | 該当決済は存在しません |
order_info.not_pay_ok | 該当決済は正しく完了していません |
order_info.client_order_no.duplicate | 端末処理通番は重複しています |
refund_info.refund_price.incorrect | 返金金額が正しくありません,返金金額{0} |
refund_info.refund_price.exceed_possible | 返金金額は上限金額を超過しています |
refund_info.refund_no.duplicate | 該当返金処理通番がすでに存在しています |
order_info.pay_brand.invalid | 決済ブランドが決められません. |
order_info.return_url.illegal | 決済URLが不正 |
order_info.expired | 決済の有効期限は切れました |
refund_info.begin_processed_by_others | 他の者が該当決済を返金処理中です |
order_info.pay_type.incorrect | [{0}]の値は正しくありません |
order_info.pay_type.building | 該当決済ブランドは準備できていません |
order_info.brand_type.building | 該当決済ブランドは準備できていません |
order_info.brand_type.incorrect | [{0}]の値は正しくありません |
order_info.order_no.invalid | 端末処理通番/GW処理通番/決済機関番号をセットしてください |
refund_info.refund_no.invalid | 端末返金処理通番/GW返金処理通番/決済機関返金番号をセットしてください |
order_info.order_status.invalid | [{0}]の値は正しくありません |
order_info.has_refund.invalid | [{0}]の値は正しくありません |
refund_info.refund_status.invalid | [{0}]の値は正しくありません |
order_info.not_belong_to_this_open_account | 決済は該当アカウントに属していません |
refund_info.not_belong_to_this_open_account | 返金は該当アカウントに属していません |
org_order_info.not_belong_to_this_open_account | 元決済は該当アカウントに属していません |
refund_info.not_exist | 該当返金は存在しません |
weixin.sub_mch_id.invalid | 無効なSubMchID |
weixin.pay_config.invalid | Wechat接続用パラメータは正しくありません{0} |
order_info.sub_brand.invalid | 決済サブブランドが決められません. |
order_info.branch_unit.pay_brand.invalid | 支店決済ブランドが決められません. |
order_info.trade_not_support | 該当取引はオーソリ決済をサポートしない |
order_info.order_price.exceed_possible | 決済金額はオーソリ金額を超えました |
declare_order_info.not_belong_to_this_open_account | 通関の情報は該当アカウントに属していません |
declare_order_info.not_exist | 該当通関の情報は存在しません |
declare_order_info.declare_order_no.invalid | 税関番号/プラットホーム税関番号任一をセットしてください |
declare_order_info.client_declare_no.duplicate | 税関番号は重複しています |
declare_order_info.amount.incorrect | [{0}]金額が正しくありません,金額:{1} |
order_info.branch.invalid | 決済店铺を取得できませんでした |
branch_unit.pay_type.invalid | この支店は{0}のお支払いはできません. |
order_info.has_been.paid | 該当決済既に成立したため取消できません |
order_info.has_been.refunded | 該当取引は全額返金済みです |
fail | 操作及び処理がタイムアウトしました |
結果コード一覧
■決済機関(WeChat Pay)から返却されるresultCode
resultCode | resultMessage |
---|---|
SYSTEMERROR | システムエラー |
PARAM_ERROR | パラメータが正しく書かれていない |
ORDERPAID | 該当決済がすでに支払われた |
NOAUTH | 該当APIを呼出す権限がありません。 |
AUTHCODEEXPIRE | ユーザーのコードが期限切れ |
NOTENOUGH | ユーザーのバランスが不足 |
NOTSUPORTCARD | ユーザーのカードがこの支払方式にサポートしない |
ORDERCLOSED | 該当決済がクローズされた |
ORDERREVERSED | 該当決済がキャンセルされた |
BANKERROR | 銀行側システムエラー |
USERPAYING | ユーザーが支払パスワードの入力が必要 |
AUTH_CODE_ERROR | リクエストパラメータが正しく書かれていない |
AUTH_CODE_INVALID | スキャンしたコードがWeChat Payのコードではない |
XML_FORMAT_ERROR | XMLフォーマットエラー |
REQUIRE_POST_METHOD | POST方式でパラメータを送っていない |
SIGNERROR | サインが間違っている |
LACK_PARAMS | リクエストパラメータが不足 |
NOT_UTF8 | コーディングフォーマットが間違っている |
BUYER_MISMATCH | 支払アカウントが変更された |
APPID_NOT_EXIST | パラメータにAPPIDが存在しない |
MCHID_NOT_EXIST | パラメータにMCHIDが存在しない |
OUT_TRADE_NO_USED | マーチャント決済番号が重複 |
APPID_MCHID_NOT_MATCH | appidとmch_idはマッチしない |
INVALID_REQUEST | 無効なリクエスト |
POST_DATA_EMPTY | リクエストパラメータ―が不足 |
ORDERNOTEXIST | 該当決済が存在しない |
BIZERR_NEED_RETRY | 内部エラー |
TRADE_OVERDUE | 返金可能期限が超過している |
ERROR | その他エラー |
USER_ACCOUNT_ABNORMAL | ユーザーアカウント異常 |
INVALID_REQ_TOO_MUCH | 無効なリクエスト数が上限に達した |
INVALID_TRANSACTIONID | 無効なトランザクションID |
REFUNDNOTEXIST | 該当の返金が存在しない |
ACCOUNTERROR | 使用不可のアカウント |
RULELIMIT | 支払限度額を超過している |
132011004 | パラメータエラー |
132021028 | 貨幣の種類が一致しない |
MCHID_NOT_SET | 商店番号は設定されていません |
MCHID_INVALID_LENGTH | 無効な商号の長さ |
CUSTOMSCONFIG_NOT_SET | 税関配置未設定 |
FEETYPE_NOT_SET | 貨幣の種類は未設定です |
OUTTRADENO_NOT_SET | 取引先注文番号は設定されていません |
TRANSACTION_ID_NOT_SET | WeChat Payオーダー番号は設定されていません |
INVALID_TRANSACTION_ID | 無効なWeChat Payオーダー番号の長さ |
CUSTOMS_NOT_SET | 税関情報が設定されていません |
CHCUSTOMSNO_NOT_SET | 税関届出番号は設定されていません |
INVALID_MCHCUSTOMSNO | 無効な税関届出番号の長さ |
PAYFEE_NOT_MATCH | 金額が合わない |
INVALID_SUBORDER_NO | 無効なサブオーダーの長さ |
AUTHORITY_NOT_FOUND | 自動通関機能が開通していません |
NO_AUTH | 権限なし |
ORDER_REFUNDED | 該当取引は全額返金済みです。 |
ORDER_NEED_DECLARE | 該当取引のステータスは税関未申告です。 |
FAILED | 決済センターへお問い合わせください |