說明:被掃支付場景,可能存在支付中需要用戶輸入密碼的情況。該情況下一般交易會返回“BBS10000-支付中”狀態。在該場景下,建議發起方發起多次查詢,查詢頻率推薦1分鐘內按 5s+5s+5s+5s+10S+10S+20S方式聯機查詢,并保留手工發起查詢的能力。
調用地址
使用HTTP協議,POST方式提交。
URL(測試環境):
URL(測試環境外網): https://test.wsmsd.cn/sit/api/v3/labs/trans/merge/micropay
URL(生產環境)::https://s2.lakala.com/api/v3/labs/trans/merge/micropay
請求報文
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| merchant_no | 商戶號 | M | String(32) | 拉卡拉分配的商戶號 |
| term_no | 終端號 | M | String(32) | 拉卡拉分配的業務終端號 |
| out_trade_no | 商戶交易流水號 | M | String(32) | 商戶系統唯一,不可重復 |
| out_split_info | 商戶拆單信息 | M | List<> | 拆單信息,詳細字段見out_split_info字段說明 |
| auth_code | 支付授權碼 | M | String(32) | 掃碼支付授權碼,設備讀取用戶APP中的條碼或者二維碼信息,用戶付款碼條形碼規則見說明 |
| total_amount | 金額 | M | String(12) | 單位分,整數型字符 |
| location_info | 地址位置信息 | M | Object | 地址位置信息,風控要求必送 |
| busi_mode | 業務模式 | C | String(8) | 業務模式: ACQ-收單 PAY-付款 不填,默認為“ACQ-收單” |
| subject | 訂單標題 | C | String(42) | 標題,用于簡單描述訂單或商品(賬戶端控制,實際最多42個字符) |
| notify_url | 商戶通知地址 | C | String(128) | 商戶通知地址,如上傳,且 pay_order_no 不存在情況下,且支付響應報文是交易中狀態的場景下,則按此地址通知商戶 |
| scan_type | 掃碼類型 | C | String(1) | 0或不填:掃碼支付 1:刷臉支付 |
| identity_info | 身份信息 | C | String(1024) | 實名支付信息,json字符串,如{“identityNo”:”32000000000000000X”,”name”:”張三”} ,然后國密sm2加密 |
| acc_busi_fields | 賬戶端業務信息域 | C | Object | 參見以下acc_busi_fields字段詳細說明,不同類型的auth_code對應不同的賬戶端,需要填寫不同的信息 |
| remark | 備注 | C | String(128) | 備注信息 |
out_split_info字段說明
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| out_sub_trade_no | 外部子交易流水號 | M | String(32) | 商戶子交易流水號,商戶號下唯一 |
| merchant_no | 商戶號 | M | String(32) | 拉卡拉分配的商戶號 |
| term_no | 終端號 | M | String(32) | 拉卡拉分配的業務終端號 |
| amount | 金額 | M | String(12) | 單位分,整數型字符 |
| settle_type | 結算類型(合單) | C | String(4) | “0”或者空,常規結算方式 |
| sub_remark | 子單備注 | C | String(64) | 子單備注信息 |
說明:
1)拆單信息域中商戶號不可重復;
2)交易層訂單金額必須是拆單信息域中各個子單的金額匯總之和;
3)對拆單信息域中每個結算商戶號和終端號的權限交易都必須通過,其中一個校驗失敗,則交易中止,失敗返回;
4)拆單域中子單條數最少兩條、最多20條,否則拒絕。
支持的auth_code說明
| 屬性 | 說明 | 備注 |
|---|
| 微信 | WECHAT | 付款碼10 11 12 13 14 15開頭 |
| 支付寶 | ALIPAY | 付款碼25 26 27 28 29 30開頭 |
location_info字段說明
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| request_ip | 請求方IP地址 | M | String(64) | 請求方的IP地址,存在必填,格式如36.45.36.95 |
| base_station | 基站信息 | C | String(128) | 客戶端設備的基站信息(主掃時基站信息使用該字段) |
| location | 維度,經度 | C | String(32) | 商戶終端的地理位置,存在必填 格式:緯度,經度,+表示北緯、東經,-表示南緯、 西經,精度最長支持小數點后9位。舉例:+37.123456789,-121.123456789 |
支付寶二維碼被掃場景下acc_busi_fields域內容
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| extend_params | 業務擴展參數 | C | object | 支付寶業務擴展參數 ,主要用于花唄分期,見extend_params字段說明 |
| business_params | 商戶傳入業務信息 | C | String(512) | 商戶傳入業務信息,應用于安全,營銷 等參數直傳場景,格式為 json 格式。 |
| goods_detail | 商品詳情 | C | String(6000) | 訂單包含的商品列表信息,Json格式。見“支付寶goods_detail字段說明” |
| store_id | 商戶門店編號 | C | String(32) | 支付寶收單上送 |
| alipay_store_id | 支付寶店鋪編號 | C | String(32) | 支付寶收單上送 |
支付寶extend_params字段說明
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| sys_service_provider_id | 服務商的PID | C | String(64) | 系統商編號,該參數作為系統商返傭數據提取的依據,請填寫系統商簽約協議的 PID |
| hb_fq_num | 花唄分期期數 | M | String(5) | 支付寶花唄分期必送字段: 花唄分期數 3:3期 6:6期 12:12期 |
| hb_fq_seller_percent | 賣家承擔手續費比例 | M | String(3) | 支付寶花唄分期必送字段: 賣家承擔收費比例,商家承擔手續費傳入100,用戶承擔手續費傳入0,僅支持傳入100、0兩種,其他比例暫不支持 100:代表商家貼息 0:代表用戶承擔手續費 |
支付寶goods_detail字段說明(暫不支持)
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| goods_id |
| M | String(32) | 商品的編號 |
| alipay_goods_id |
| C | String(32) | 支付寶定義的統一商品編號 |
| goods_name |
| M | String(256) | 商品名稱 |
| quantity |
| M | String(12) | 商品數量 |
| price |
| M | String(12) | 單位為分 |
| goods_category |
| C | String(24) | 商品類目 |
| categories_tree |
| C | String(128) | 商品類目樹,從商品類目根節點到葉子節點的類目 id 組成,類目 id 值使用|分 割 |
| body |
| C | String(512) | 商品描述信息 |
| show_url |
| C | String(256) | 商品的展示地址 |
微信二維碼被掃場景下acc_busi_fileds域內容
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| sub_appid | 子商戶公眾賬號ID sub_appid | C | String(32) | 微信公眾平臺基本配置中的AppID(應用ID),傳入后支付成功可返回對應公眾號下的用戶openid,只對微信支付有效 |
| detail | 商品詳情 | C | String(1024) | 單品優惠功能字段,json字符串格式,內容見以下“微信detail字段說明” |
| goods_tag | 訂單優惠標記 | C | String(32) | 訂單優惠標記,微信平臺配置的商品標記,用于優惠券或者滿減使用,accountType為WECHAT時,可選填此字段 |
微信detail字段說明(暫不支持)
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| cost_price |
| C | String(12) | 1.商戶側一張小票訂單可能被分多次支付,訂單原 價用于記錄整張小票的交易金額。 2.當訂單原價與支付金額不相等,則不享受優惠。 3.該字段主要用于防止同一張小票分多次支付,以 享受多次優惠的情況,正常支付訂單不必上傳此參 數。 如:608800 |
| receipt_id |
| C | String(12) | 商家小票 ID |
| goods_detail |
| M | String(512) | json字符串,內容見以下“微信goods_detail字段說明” |
微信goods_detail字段說明
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| goods_id |
| M | String(32) | 由半角的大小寫字母、數字、中劃線、下劃線中的一種或幾種組成。如“商品編碼” |
| wxpay_goods_id |
| C | String(32) | 微信支付定義的統一商品編號 |
| goods_name |
| C | String(256) | 商品的實際名稱 |
| quantity |
| M | String(12) | 用戶購買的數量 |
| price |
| M | String(12) | 單位為:分。如果商戶有優惠,需傳輸商戶優惠后的單價 |
響應報文
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| need_query | 是否需要發起查詢 | M | String(32) | 0=不需要 1=需要 當返回1時,代表訂單處理中,商戶需主動發起查詢 |
| merchant_no | 商戶號(待上線) | M | String(32) | 拉卡拉分配的商戶號(請求接口中商戶號) |
| out_trade_no | 商戶交易流水號 | M | String(32) | 請求報文中的商戶交易流水號 |
| trade_no | 拉卡拉交易流水號 | M | String(32) | 拉卡拉交易流水號 |
| log_no | 拉卡拉對賬單流水號 | M | String(14) | 拉卡拉對賬單流水號 |
| acc_trade_no | 賬戶端交易訂單號 | C | String(32) | 賬戶端交易流水號 |
| account_type | 錢包類型 | M | String(16) | 微信:WECHAT 支付寶:ALIPAY 銀聯:UQRCODEPAY 翼支付: BESTPAY 蘇寧易付寶: SUNING 數字貨幣:DCPAY |
| total_amount | 訂單金額 | M | String(12) | 單位分,整數數字型字符 |
| payer_amount | 付款人實際發生金額 | M | String(12) |
|
| acc_settle_amount | 賬戶端應結訂單金額 | M | String(12) | 應結訂單金額,單位分 |
| acc_mdiscount_amount | 商戶優惠金額(賬戶端) | C | String(12) | 賬戶端返回商戶優惠金額,單位分 |
| acc_discount_amount | 賬戶端優惠金額 | C | String(12) | 賬戶端返回賬戶端優惠金額,單位分 |
| trade_time | 交易完成時間 | M | String(14) | 以賬戶端返回時間為準 |
| bank_type | 付款銀行 | C | String(128) | 付款銀行 |
| card_type | 銀行卡類型 | C | String(16) | 01:借記卡 02:貸記卡 |
| split_info | 拆單信息 | M | List<> | 拆單信息見split_info域說明 |
| acc_resp_fields | 賬戶端返回信息域 | C | Object | 賬戶端返回信息域 |
split_info域信息
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| sub_trade_no | 子單交易流水號 | M | String(32) | 子單交易流水號 |
| sub_log_no | 子單對賬單流水號 | M | String(14) | 子單對賬單流水號 |
| out_sub_trade_no | 外部子交易流水號 | M | String(32) | 商戶子交易流水號,商戶號下唯一 |
| merchant_no | 商戶號 | M | String(32) | 拉卡拉分配的商戶號 |
| merchant_name | 商戶名稱 | M | String(64) | 商戶名稱 |
| term_no | 終端號 | M | String(32) | 拉卡拉分配的業務終端號 |
| amount | 金額 | M | String(12) | 單位分,整數型字符 |
支付寶二維碼被掃場景下返回acc_resp_fields域內容
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| user_id | 買家在支付寶的用戶id | M | String(64) | buyer_user_id |
| store_id | 商戶門店編號 | C | String(32) |
|
| alipay_store_id | 支付寶的店鋪編號 | C | String(32) |
|
| sub_mch_id | 子商戶號 | C | String(20) | 賬戶端子商戶號 |
微信二維碼被掃場景下返回acc_resp_fields域內容
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| store_id | 商戶門店編號 | C | String(32) |
|
| alipay_store_id | 支付寶的店鋪編號 | C | String(32) |
|
| open_id | 用戶標識 | M | String(64) | 用戶在商戶appid下的唯一標識 |
| user_id | 用戶子標識 | C | String(64) | sub_open_id |
| sub_mch_id | 子商戶號 | C | String(20) | 賬戶端子商戶號 |
| acc_activity_id | 活動 ID | C | String(32) | 在賬戶端商戶后臺配置的批次 ID |
示例
請求報文:
{
"req_time":"20210907150256",
"version":"3.0",
"out_org_code":"OP00000003",
"req_data":{
"merchant_no":"822290070111135",
"term_no":"29034705",
"out_trade_no":"FD660E1FAA3A4470933CDEDAE1EC1D8E",
"auth_code":"135178236713755038",
"total_amount":"123",
"location_info":{
"request_ip":"10.176.1.192",
"location":"+37.123456789,-121.123456789"
},
"out_order_no":"08F4542EEC6A4497BC419161747A92FA"
}
}
復制
響應報文:
{
"msg":"用戶支付中",
"resp_time":"20210907150258",
"code":"BBS10000",
"resp_data":{
"need_query":"1",
"out_trade_no":"FD660E1FAA3A4470933CDEDAE1EC1D8E",
"trade_no":"2021090766210003630077",
"log_no":"66210003630077",
"acc_trade_no":"",
"account_type":"WECHAT",
"total_amount":"123",
"payer_amount":"",
"acc_settle_amount":"",
"acc_mdiscount_amount":"",
"acc_discount_amount":"",
"trade_time":"20210907150258",
"bank_type":"",
"card_type":""
}
}
復制