Server APIs
Overview
我們的後台使用的是 REST 架構,所以每個請求皆是使用 HTTP POST 來進行傳輸
支付方式定義說明
為協助開發者理解各交易欄位的適用範圍,以下說明 TapPay 文件中「Direct Pay」、「電子支付」、「Token Pay」三種支付方式的定義與適用場景。
Direct Pay
定義:
Direct Pay 是指消費者直接於商戶前端頁面輸入信用卡資訊,透過 TapPay 金流閘道進行付款的交易。
電子支付
定義:
電子支付是指透過電子錢包帳戶完成的交易,包含以下支付業者:LINE Pay, 街口支付, 悠遊付等,完整的支付業者請參考 電子支付支援功能
API 欄位支援與格式依各電子支付業者而異,請參考詳細 API 規格說明。
Token Pay
定義:
Token Pay 僅指使用 行動支付服務(Apple Pay, Goole Pay, Samsung Pay)所產生的 Tokenized 信用卡號 (DPAN) 所完成的交易
Pay by Prime API
非3D交易流程
3D驗證交易流程
當您要進行3D驗證交易,請在Request欄位中的three_domain_secure帶入true,且在result_url的frontend_redirect_url與backend_notify_url分別帶入對應的值。
建議您在收到frontend redirect 後,於前端顯示交易結果頁面給消費者前,打 Record API(以 rec_trade_id 作為搜尋條件)進行反查確認交易狀態,以避免您因意外狀況未收到 Backend Notify 而發生交易狀態不一致問題。
- 利用前端所取得的 prime 字串進行交易
- 每個 prime 字串只可使用一次,因此每次呼叫此 API 前都必須重新取得一個 prime 字串
- 若將 remember 設為 true 記憶卡號,則會獲得 card_key 和 card_token,以後即可省去 createToken 這個步驟並改為呼叫 Pay by Card Token 來進行交易。亦可使用 card_key 和 card_token 來進行定期定額扣款,存下此兩個參數後,即可定期呼叫 Pay by Card Token 進行定期定額扣款,且呼叫的週期與金額可自行決定。Apple Pay、Google Pay、Samsung Pay、JKOPAY、悠遊付、Atome、Pi 錢包、全盈支付 不支援此功能
- 由於尖峰時段銀行方面可能會花較久時間處理,因此請將 timeout 時間設定為 30 秒以避免交易資訊不同步
名稱(* = 必填) | 類別(長度) | 內容 | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
prime* | String(71) | 信用卡號所換得的字串,由前端 SDK 呼叫 getPrime 成功時回傳 prime 的有效效時間為 90秒。 若您有開啟 Apple Pay 延後授權,請自行保管 Prime(預設 Prime 有效期限為 30 天)。 若您於 sandbox 環境想使用測試 prime 進行 API 串接,可參考 測試 prime |
||||||||||||||||||||||||||||||||||||
partner_key* | String(64) | 綁定 Portal 帳戶的驗證金鑰 | ||||||||||||||||||||||||||||||||||||
merchant_id* | String(50) | 於 Portal 登錄商家時所產生的識別碼 | ||||||||||||||||||||||||||||||||||||
merchant_group_id | String(50) | 於 Portal 設置的商家管理設置,交易時會依據 portal 的支付配置進行交易 不可與 merchant_id 同時使用 |
||||||||||||||||||||||||||||||||||||
amount* | int | 交易金額。目前支援台幣、港幣、馬幣、美金,台幣以外金額需乘以 100後帶入,各幣別交易金額上限,請參考 reference | ||||||||||||||||||||||||||||||||||||
merchandise_details | JSONObject | 不適用回饋之交易商品金額、點數。僅部分電子支付支援,請參考 電子支付支援功能 | ||||||||||||||||||||||||||||||||||||
currency | String(3) | 交易幣別。格式為 ISO 4217 字母代碼,例如:TWD。銀行支援幣別請參考 reference | ||||||||||||||||||||||||||||||||||||
order_number | String(50) | 您自定義的訂單編號,用於 TapPay 做訂單識別,可重複帶入 格式請參考 reference。若有帶入此欄位,則不能為空 |
||||||||||||||||||||||||||||||||||||
bank_transaction_id | String(40) | 銀行端的訂單編號 強烈建議商戶可在此自訂,但不能與之前的重複;若您沒有自訂則會自動幫您產生一組。 但若您沒自訂,當發生421 Gateway 操作逾時(發生機率低),則無法反查該筆交易 (格式規格請參考備註 reference) |
||||||||||||||||||||||||||||||||||||
details | String(100) | 交易品項內容,為符合 PCI 要求至少必須要有品項名稱,若收單有相關欄位可帶入則TapPay 會將此欄位送至收單端。 部分收單此欄位為必填,若未帶入會導致交易失敗,每個收單的格式要求皆不同,請務必參考 reference 說明 |
||||||||||||||||||||||||||||||||||||
cardholder* | JSONObject | 持卡人或購買人資訊,裡面應包含以下值。 以下資料將為「詐欺檢測器」,資料越詳細,可獲得越完整的保護 若此筆交易需身份驗證,請詳讀備註中各銀行需驗證的必填欄位,並在對應的參數欄位中帶入正確的值 若無此資料,則該對應的 Key 值,可以帶空字串,(如:zip_code: “”)
|
||||||||||||||||||||||||||||||||||||
cardholder_verify | JSONObject | 身份驗證欄位,請注意:若此筆交易需身份驗證,請詳讀備註中各銀行需驗證的必填欄位,若該欄位為 “true” ,則會將 cardholder 欄位對應之資訊送至收單機構進行身份驗證。 若要進行兩段式身份驗證,務必於 kyc_verification_merchant_id 填入您於Portal的商家管理 > KYC 驗證商家設置的merchant ID 如使用 AE 卡進行驗證,將會扣除 1 元,並於兩週內會退還。 您可以在 sandbox 環境中使用備註中的測試用身分證字號及電話號碼 支援: Direct Pay 有以下兩種使用情境
驗證欄位
|
||||||||||||||||||||||||||||||||||||
kyc_verification_merchant_id | String | 此欄位請填入僅供身份驗證,無授權功能的merchant ID。 支援產業:電支產業/ 產壽險業 |
||||||||||||||||||||||||||||||||||||
instalment | int(2) | 分期付款期數,預設為 0 目前支援: 台新銀行, 財團法人聯合信用卡處理中心, 藍新金流, 國泰世華銀行, 玉山銀行, 中國信託銀行, 環匯亞太, 聯邦銀行 只支援: Direct Pay |
||||||||||||||||||||||||||||||||||||
delay_capture_in_days | int | 定義交易授權後銀行要過多久才會請款,單位為天 此參數非必要,預設值為0(當天請款) 若您想要自行手動請款,可帶入 -1 表示暫時不請款 * 收單銀行皆設有請款期限,請向您的收單銀行確認。若您採取手動請款模式,請留意如果該筆交易的請款日超過銀行請款期限,可能會導致請款失敗。 |
||||||||||||||||||||||||||||||||||||
three_domain_secure | Boolean | 是否開啟 3D 驗證,預設為 false。此欄位僅應用於 Direct Pay,支援銀行請參考 Direct Pay 支援銀行 | ||||||||||||||||||||||||||||||||||||
result_url | JSONObject | 交易結果通知URL,電子支付及 Direct Pay 3D 交易必填 (three_domain_secure = true)。
|
||||||||||||||||||||||||||||||||||||
remember | boolean | 是否儲存此付款方式。若此欄位為 true,則 response 會回傳一組 card_secret (card_key, card_token),後續您可使用此組 Token 呼叫 Pay by token 進行交易。僅支援:Direct Pay 及部分支援綁定扣款之電子支付,請參考 電子支付支援功能 | ||||||||||||||||||||||||||||||||||||
redeem | boolean | 是否為紅利折抵。 目前支援: 財團法人聯合信用卡處理中心 只支援: Direct Pay |
||||||||||||||||||||||||||||||||||||
additional_data | JSONString(3000) | 資料會加密保存,並在其他客製化需求時才解密做使用 | ||||||||||||||||||||||||||||||||||||
event_code | String(50) | 與銀行或錢包合作之活動中,雙方協議的指定活動代碼。支援 : 悠遊付 | ||||||||||||||||||||||||||||||||||||
product_image_url | String(500) | 交易付款頁面上所顯示的商品或商家圖片。此欄位等同於line_pay_product_image_url, 若您於呼叫時同時帶入 product_image_url 與line_pay_product_image_url,TapPay 將以product_image_url 欄位的內容為主。格式規格請參考備註 reference | ||||||||||||||||||||||||||||||||||||
jko_pay_insurance_policy | StringArray | 街口支付產壽險交易,保單明細 支援: JKOPAY 當使用 JKOPAY 進行產壽險交易時,以下欄位皆為必填
|
||||||||||||||||||||||||||||||||||||
store_id | String(10) | 特店門市店號。若收單端有支援則會將此欄位送至收單,支援的收單及格式請參考 reference | ||||||||||||||||||||||||||||||||||||
store_name | String(50) | 特店門市名稱。若收單端有支援則會將此欄位送至收單,支援的收單及格式請參考 reference |
// *** 格式 ***
// 測試環境 URL: https://sandbox.tappaysdk.com/tpc/payment/pay-by-prime
// 正式環境 URL: https://prod.tappaysdk.com/tpc/payment/pay-by-prime
// Header:
// Content-Type: application/json
// x-api-key: YourPartnerKey
{
"prime": String,
"partner_key": String,
"merchant_id": "merchantA",
"details":"TapPay Test",
"amount": 100,
"cardholder": {
"phone_number": "+886923456789",
"name": "王小明",
"email": "LittleMing@Wang.com",
"zip_code": "100",
"address": "台北市天龍區芝麻街1號1樓",
"national_id": "A123456789"
},
"remember": true
}
Response
名稱 | 類別(長度) | 內容 | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
status | int | 交易代碼,成功的話為0 | ||||||||||||||||||||||||||||||||||||
msg | String | 錯誤訊息 | ||||||||||||||||||||||||||||||||||||
rec_trade_id | String(20) | 由 TapPay 伺服器產生的交易字串 將於退款時用到,請妥善保管 |
||||||||||||||||||||||||||||||||||||
bank_transaction_id | String(40) | 銀行端的訂單編號 強烈建議商戶可在此自訂,但不能與之前的重複;若您沒有自訂則會自動幫您產生一組。 但若您沒自訂,當發生421 Gateway 操作逾時(發生機率低),則無法反查該筆交易 格式規格請參考 reference |
||||||||||||||||||||||||||||||||||||
bank_order_number | String | 收單於授權時回傳的訂單編號,支援之收單及回傳之長度請參考 Reference | ||||||||||||||||||||||||||||||||||||
auth_code | String(6) | 銀行授權碼,僅支援 Direct Pay, Token Pay | ||||||||||||||||||||||||||||||||||||
card_secret | JSONObject | 卡片保管資訊。僅支援:Direct Pay 及部分支援綁定扣款之電子支付,請參考 電子支付支援功能
|
||||||||||||||||||||||||||||||||||||
amount | int | 交易金額,台幣以外金額需乘以 100,如港幣(HKD) 1元代表 100 | ||||||||||||||||||||||||||||||||||||
currency | String(3) | 交易幣別。格式為 ISO 4217 字母代碼,例如:TWD。銀行支援幣別請參考 reference | ||||||||||||||||||||||||||||||||||||
card_info | JSONObject | 卡片資訊,僅支援 Direct Pay, Token Pay
|
||||||||||||||||||||||||||||||||||||
order_number | String(50) | 您自定義的訂單編號,用於 TapPay 做訂單識別,可重複帶入 格式請參考 reference |
||||||||||||||||||||||||||||||||||||
acquirer | String | 收單銀行 / 金流處理器 | ||||||||||||||||||||||||||||||||||||
transaction_time_millis | long | 交易時間 | ||||||||||||||||||||||||||||||||||||
bank_transaction_time | JSONObject | 銀行處理時間 | ||||||||||||||||||||||||||||||||||||
bank_result_code | String(40) | 銀行回傳的交易結果代碼 | ||||||||||||||||||||||||||||||||||||
bank_result_msg | String(300) | 銀行回傳的交易結果訊息 | ||||||||||||||||||||||||||||||||||||
payment_url | String | 付款頁面網址,將此網址回傳至前端跳轉 不支援:Apple Pay, Google Pay, Samsung Pay |
||||||||||||||||||||||||||||||||||||
instalment_info | JSONObject | 非 3D 驗證交易,且使用分期付款時回傳 只支援: Direct Pay
|
||||||||||||||||||||||||||||||||||||
redeem_info | JSONObject | 非 3D 驗證交易,且使用紅利折抵時回傳 只支援:Direct Pay
|
||||||||||||||||||||||||||||||||||||
card_identifier | String | 信用卡識別碼,每張信用卡只會對到一組識別碼。僅支援 Direct Pay, Token Pay | ||||||||||||||||||||||||||||||||||||
merchant_reference_info | JSON | 商戶參考資訊
|
||||||||||||||||||||||||||||||||||||
event_code | String(50) | 與銀行或錢包合作之活動中,雙方協議的指定活動代碼。支援 : 悠遊付 | ||||||||||||||||||||||||||||||||||||
is_rba_verified | Boolean | 該交易有無取得 RBA 評估的風險分數RBA 可以為每筆交易評估風險,以辨認和防止偽冒交易發生。該產品即將上線,您可以參考 TapPay 官網更了解 RBA 這項服務。 | ||||||||||||||||||||||||||||||||||||
transaction_method_details | JSONObject | 交易方式細節 RBA 可以為每筆交易評估風險,以辨認和防止偽冒交易發生。該產品即將上線,您可以參考 TapPay 官網更了解 RBA 這項服務。
|
Pay by Card Token API
非3D驗證交易流程
3D驗證交易流程
當您要進行3D驗證交易,請在Request欄位中的three_domain_secure帶入true,且在result_url的frontend_redirect_url與backend_notify_url分別帶入對應的值。
建議您在收到frontend redirect 後,於前端顯示交易結果頁面給消費者前,打 Record API(以 rec_trade_id 作為搜尋條件)進行反查確認交易狀態,以避免您因意外狀況未收到 Backend Notify 而發生交易狀態不一致問題。
- 由於尖峰時段銀行方面可能會花較久時間處理,因此請將 timeout 時間設定為 30 秒以避免交易資訊不同步
- 若在呼叫 Pay by Prime API 時,若將 remember 設為 true 記憶卡號,則會獲得 card_key 和 card_token,以後即可省去 createToken 這個步驟並改為呼叫 Pay by Card Token 來進行交易。亦可使用 card_key 和 card_token 來進行定期定額扣款,存下此兩個參數後,即可定期呼叫 Pay by Card Token 進行定期定額扣款,且呼叫的週期與金額可自行決定。
名稱(* = 必填) | 類別(長度) | 內容 | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
card_key* | String(64) | 卡片安全金鑰 由 Pay by Prime 取得 |
||||||||||||||||||||||||||||||||||||
card_token* | String(67) | 卡片識別字串 由 Pay by Prime 取得 |
||||||||||||||||||||||||||||||||||||
partner_key* | String(64) | 綁定 Portal 帳戶的驗證金鑰 | ||||||||||||||||||||||||||||||||||||
merchant_id* | String(50) | 於 Portal 登錄商家時所產生的識別碼 | ||||||||||||||||||||||||||||||||||||
merchant_group_id | String(50) | 於 Portal 設置的商家管理設置,交易時會依據 portal 的支付配置進行交易 不可與 merchant_id 同時使用 |
||||||||||||||||||||||||||||||||||||
amount* | int | 交易金額。目前支援台幣、港幣、馬幣、美金,台幣以外金額需乘以 100後帶入,各幣別交易金額上限,請參考 reference | ||||||||||||||||||||||||||||||||||||
currency* | String(3) | 交易幣別。格式為 ISO 4217 字母代碼,例如:TWD。銀行支援幣別請參考 reference | ||||||||||||||||||||||||||||||||||||
order_number | String(50) | 您自定義的訂單編號,用於 TapPay 做訂單識別,可重複帶入 格式請參考 reference。若有帶入此欄位,則不可為空 |
||||||||||||||||||||||||||||||||||||
bank_transaction_id | String(40) | 銀行端的訂單編號 強烈建議商戶可在此自訂,但不能與之前的重複;若您沒有自訂則會自動幫您產生一組。 但若您沒自訂,當發生421 Gateway 操作逾時(發生機率低),則無法反查該筆交易 (格式規格請參考備註 reference) |
||||||||||||||||||||||||||||||||||||
details | String(100) | 交易品項內容,為符合 PCI 要求至少必須要有品項名稱,若收單有相關欄位可帶入則TapPay 會將此欄位送至收單端。 部分收單此欄位為必填,若未帶入會導致交易失敗,每個收單的格式要求皆不同,請務必參考 reference 說明 |
||||||||||||||||||||||||||||||||||||
cardholder_verify | JSONObject | 身份驗證欄位,請注意:若此筆交易需身份驗證,請詳讀備註中各銀行需驗證的必填欄位,若該欄位為 “true” ,則會將 cardholder 欄位對應之資訊送至收單機構進行身份驗證。 若要進行兩段式身份驗證,務必於 kyc_verification_merchant_id 填入您於Portal的商家管理 > KYC 驗證商家設置的merchant ID 如使用 AE 卡進行驗證,將會扣除 1 元,並於兩週內會退還。 您可以在 sandbox 環境中使用備註中的測試用身分證字號及電話號碼 支援: Direct Pay 有以下兩種使用情境
驗證欄位
|
||||||||||||||||||||||||||||||||||||
kyc_verification_merchant_id | String | 此欄位請填入僅供身份驗證,無授權功能的merchant ID。 支援產業:電支產業/ 產壽險業 |
||||||||||||||||||||||||||||||||||||
instalment | int(2) | 分期付款期數,預設為 0 目前支援: 台新銀行, 財團法人聯合信用卡處理中心, 藍新金流, 國泰世華銀行, 玉山銀行, 中國信託銀行, 環匯亞太, 聯邦銀行 只支援: Direct Pay |
||||||||||||||||||||||||||||||||||||
delay_capture_in_days | int | 定義交易授權後銀行要過多久才會請款,單位為天 此參數非必要,預設值為0(當天請款) 若您想要自行手動請款,可帶入 -1 表示暫時不請款 * 收單銀行皆設有請款期限,請向您的收單銀行確認。若您採取手動請款模式,請留意如果該筆交易的請款日超過銀行請款期限,可能會導致請款失敗。 |
||||||||||||||||||||||||||||||||||||
three_domain_secure | Boolean | 是否開啟 3D 驗證,預設為 false。此欄位僅應用於 Direct Pay,支援銀行請參考 Direct Pay 支援銀行 | ||||||||||||||||||||||||||||||||||||
result_url | JSONObject | 交易結果通知URL,電子支付及 Direct Pay 3D 交易必填 (three_domain_secure = true)。
|
||||||||||||||||||||||||||||||||||||
card_ccv | String | 信用卡安全碼。不可與ccv_prime 同時帶入,僅支援 Direct Pay 當有以下情況時請帶入此參數 1. 未在get-ccv-prime 時取得ccv_prime但想要銀行驗證此參數 2. 未在get-ccv-prime 時取得ccv_prime但使用 AE 卡進行3DS2.0 驗證交易時 |
||||||||||||||||||||||||||||||||||||
redeem | boolean | 是否為紅利折抵。 目前支援: 財團法人聯合信用卡處理中心 只支援 : Direct Pay |
||||||||||||||||||||||||||||||||||||
additional_data | JSONString(3000) | 資料會加密保存,並在其他客製化需求時才解密做使用 | ||||||||||||||||||||||||||||||||||||
ccv_prime | String | 用信用卡安全碼所換得的字串,由 get-ccv-prime 成功時回傳 不可與card_ccv 同時帶入ccv_prime 的時效為 90秒 支援 : Direct Pay 您可以在 sandbox 環境中使用此測試用 ccv_prime(3碼) : test_65b1ca2d5d0dc8ff5b62296ea8547bab08401f8a57015fb818c5bcd10433fa11 ccv_prime(4碼) : test_cd1e737890874cdadf39caaf56c5b183c36a4117ca89cb24fd674c0892e0fa92 |
||||||||||||||||||||||||||||||||||||
device_id | String(64) | 裝置識別碼。若您有使用 TapPay RBA 交易風險評估服務,才需要帶此參數。 有使用 TapPay RBA 交易風險評估服務時,在呼叫 Pay by Card Token API 前,須先呼叫 SDK 的 Get Device ID 方法,並把取得的 Device ID 放入 Pay by Card Token Request 中的 device_id 欄位。 |
||||||||||||||||||||||||||||||||||||
is_merchant_initiated_transaction | Boolean | 標示該筆交易為為商店發起或消費者發起。若未帶則預設值為 false。商店發起的交易情境:訂閱制、定期定額等。 true = 商店發起 false = 消費者發起 |
// *** 格式 ***
// 測試環境 URL: https://sandbox.tappaysdk.com/tpc/payment/pay-by-token
// 正式環境 URL: https://prod.tappaysdk.com/tpc/payment/pay-by-token
// Header:
// Content-Type: application/json
// x-api-key: YourPartnerKey
{
"card_key": String,
"card_token": String,
"partner_key": String,
"currency": "TWD",
"merchant_id": "merchantA",
"details":"TapPay Test",
"amount": 100
}
Response
名稱 | 類別(長度) | 內容 | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
status | int | 交易代碼,成功的話為0 | ||||||||||||||||||||||||||||||||||||
msg | String | 錯誤訊息 | ||||||||||||||||||||||||||||||||||||
rec_trade_id | String(20) | 由 TapPay 伺服器產生的交易字串 將於退款時用到,請妥善保管 |
||||||||||||||||||||||||||||||||||||
bank_transaction_id | String(40) | 銀行端的訂單編號 若有需求可在此自訂,但不能與之前的重複 若您沒有自訂則會自動幫您產生一組 格式規格請參考 reference |
||||||||||||||||||||||||||||||||||||
bank_order_number | String | 收單於授權時回傳的訂單編號,支援之收單及回傳之長度請參考 Reference | ||||||||||||||||||||||||||||||||||||
amount | int | 交易金額,台幣以外金額需乘以 100,如港幣(HKD) 1元代表 100 | ||||||||||||||||||||||||||||||||||||
currency* | String(3) | 交易幣別。格式為 ISO 4217 字母代碼,例如:TWD。銀行支援幣別請參考 reference | ||||||||||||||||||||||||||||||||||||
auth_code | String(6) | 銀行授權碼,僅支援 Direct Pay, Token Pay | ||||||||||||||||||||||||||||||||||||
card_info | JSONObject | 卡片資訊,僅支援 Direct Pay, Token Pay
|
||||||||||||||||||||||||||||||||||||
order_number | String(50) | 您自定義的訂單編號,用於 TapPay 做訂單識別,可重複帶入 格式請參考 reference |
||||||||||||||||||||||||||||||||||||
acquirer | String | 收單銀行 / 金流處理器 | ||||||||||||||||||||||||||||||||||||
transaction_time_millis | long | 交易時間 | ||||||||||||||||||||||||||||||||||||
bank_transaction_time | JSONObject | 銀行處理時間 | ||||||||||||||||||||||||||||||||||||
bank_result_code | String(40) | 銀行回傳的交易結果代碼 | ||||||||||||||||||||||||||||||||||||
bank_result_msg | String(300) | 銀行回傳的交易結果訊息 | ||||||||||||||||||||||||||||||||||||
payment_url | String | 付款頁面網址,將此網址回傳至前端跳轉 不支援: Apple Pay, Google Pay, Samsung Pay |
||||||||||||||||||||||||||||||||||||
instalment_info | JSONObject | 非 3D 驗證交易,且使用分期付款時回傳 只支援: Direct Pay
|
||||||||||||||||||||||||||||||||||||
redeem_info | JSONObject | 非 3D 驗證交易,且使用紅利折抵時回傳 只支援: Direct Pay
|
||||||||||||||||||||||||||||||||||||
card_identifier | String | 信用卡識別碼,每張信用卡只會對到一組識別碼。僅支援 Direct Pay, Token Pay | ||||||||||||||||||||||||||||||||||||
merchant_reference_info | JSON | 商戶參考資訊
|
||||||||||||||||||||||||||||||||||||
is_rba_verified | Boolean | 該交易有無取得 RBA 評估的風險分數RBA 可以為每筆交易評估風險,以辨認和防止偽冒交易發生。該產品即將上線,您可以參考 TapPay 官網更了解 RBA 這項服務。 | ||||||||||||||||||||||||||||||||||||
transaction_method_details | JSONObject | 交易方式細節 RBA 可以為每筆交易評估風險,以辨認和防止偽冒交易發生。該產品即將上線,您可以參考 TapPay 官網更了解 RBA 這項服務。
|
Refund API
- 此 API 能讓您用後台直接進行退款,會同時做取消授權及取消請款的動作
若您有部分退款的需求,則必須呼叫此 API
- 由於尖峰時段銀行方面可能會花較久時間處理,因此請將 timeout 時間設定為 30 秒以避免交
易資訊不同步
- 當您呼叫此 API 時,TapPay 將於當日向銀行進行退款,不代表當日退款已成功。
實際退款是否成功,請於退款隔天利用 TapPay 後台或 Record API 查詢交易狀態進行確認。 - 為確保交易狀態一致,當銀行/錢包在請款中不支援取消授權,需等TapPay收到銀行回覆(時間請參考Each bank capture time),確認該筆交易狀態後才能進行後續動作
名稱(* = 必填) | 類別(長度) | 內容 |
---|---|---|
partner_key* | String(64) | 綁定 Portal 帳戶的驗證金鑰 |
rec_trade_id* | String(20) | 欲退款的交易字串,任何一筆交易成功時皆會回傳 |
bank_refund_id | String(20) | 商戶端的退款紀錄識別碼(需為半形的英數字),不可重複。收單有相關欄位可帶入則TapPay 會將此欄位送至收單端。支援之收單及長度請參考 Reference |
amount | int | 退款金額,全額退款可不用填此參數 外幣金額需包含兩位小數,如 100 代表 1.00 部分退款才需要填寫 |
additional_data | JSONString(3000) | 資料會加密保存,並在其他客製化需求時才解密做使用。 |
merchandise_details | JSONObject | 不適用回饋之交易商品金額、點數。僅部分電子支付支援,請參考 電子支付支援功能 |
// *** 格式 ***
// 測試環境URL: https://sandbox.tappaysdk.com/tpc/transaction/refund
// 正式環境URL: https://prod.tappaysdk.com/tpc/transaction/refund
// Header:
// Content-Type: application/json
// x-api-key: YourPartnerKey
{
"partner_key": String,
"rec_trade_id": String,
"amount": int // 非必填
}
Response
名稱 | 類別 | 內容 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
status | int | 交易代碼,成功的話為0 | |||||||||
msg | String | 錯誤訊息 | |||||||||
refund_id | String | 退款紀錄的識別碼 | |||||||||
bank_refund_order_number | String | 收單於退款時回傳的退款編號,支援之收單及回傳之長度請參考 Reference | |||||||||
refund_amount | int | 退款金額 台幣以外金額需乘以 100,如港幣(HKD) 1元 請帶 100 |
|||||||||
refund_info | JSONObject | 退款資訊 電子支付返還的點數及金額資訊,僅電子支付交易回傳此物件。僅部分電子支付回覆此資訊,請參考 電子支付支援功能
|
|||||||||
is_captured | boolean | 是否已請款 | |||||||||
bank_result_code | String(40) | 銀行回傳的交易結果代碼 | |||||||||
bank_result_msg | String(300) | 銀行回傳的交易結果訊息 | |||||||||
currency | String(3) | 交易幣別。格式為 ISO 4217 字母代碼,例如:TWD。銀行支援幣別請參考 reference |
Record API
此 API 能讓您用您的後台直接進行查詢交易紀錄
名稱(* = 必填) | 類別(長度) | 預設 | 內容 |
---|---|---|---|
partner_key* | String(64) | 綁定 Portal 帳戶的驗證金鑰 | |
records_per_page | int | 50 | 每頁的交易數量,最大為 200 |
page | int | 0 | 第幾頁交易 |
filters | JSONObject | 沒有限制 | 交易紀錄的限制,有以下幾種可能: time* 起始到結束時間上限為 90 天 amount cardholder merchant_id record_status rec_trade_id order_number bank_transaction_id auth_code currency tsp card_identifier |
order_by | JSONObject | attribute = time is_descending = true |
排序的方式 |
// *** 格式 ***
// 測試環境 URL: https://sandbox.tappaysdk.com/tpc/transaction/query
// 正式環境 URL: https://prod.tappaysdk.com/tpc/transaction/query
// Header:
// Content-Type: application/json
// x-api-key: YourPartnerKey
{
"partner_key": String,
"records_per_page": int,
"page": int,
"filters": {
"time": {
"start_time": long,
"end_time": long
},
"amount": {
"upper_limit": int,
"lower_limit": int
},
"cardholder": {
"phone_number": String,
"name": String,
"email": String
},
"merchant_id": [String],
"record_status": int,
"rec_trade_id": String,
"order_number": String,
"bank_transaction_id": String,
"currency": String
},
"order_by": {
"attribute": String, // "time"(時間排序) 或 "amount"(金額排序)
"is_descending": boolean
}
}
Response
名稱 | 類別 | 內容 |
---|---|---|
status | int | 交易代碼 2 的話代表在當前過濾條件內,已無更多紀錄 |
msg | String | 錯誤訊息 |
records_per_page | int | 每頁的交易數量,最大為 200 |
page | int | 第幾頁交易 |
total_page_count | int | 總頁數 |
number_of_transactions | long | 總交易筆數 |
trade_records | JSONArray | 交易紀錄 |