接口說明:
主掃交易接口,若涉及指定買家姓名身份證號等敏感信息時需要將全報文進行加密處理后再調(diào)用此接口完成下單。加密方式見開發(fā)指引敏感信息接口加密說明。
調(diào)用地址
使用HTTP協(xié)議,POST方式提交。
測試環(huán)境:https://test.wsmsd.cn/sit/api/v3/labs/trans/preorder_encry
生產(chǎn)環(huán)境:https://s2.lakala.com/api/v3/labs/trans/preorder_encry
請求報文
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| merchant_no | 商戶號 | M | String(32) | 拉卡拉分配的商戶號 |
| term_no | 終端號 | M | String(32) | 拉卡拉分配的業(yè)務終端號 |
| out_trade_no | 商戶交易流水號 | M | String(32) | 商戶系統(tǒng)唯一,對應數(shù)據(jù)庫表中外部請求流水號。 |
| account_type | 錢包類型 | M | String(32) | 微信:WECHAT 支付寶:ALIPAY 銀聯(lián):UQRCODEPAY 翼支付: BESTPAY 蘇寧易付寶: SUNING 拉卡拉支付賬戶:LKLACC 網(wǎng)聯(lián)小錢包:NUCSPAY 京東錢包:JD |
| trans_type | 接入方式 | M | String(2) | 41:NATIVE((ALIPAY,云閃付支持) 51:JSAPI(微信公眾號支付,支付寶服務窗支付,銀聯(lián)JS支付,翼支付JS支付、拉卡拉錢包支付)
71:微信小程序支付 61:APP支付(微信APP支付) |
| total_amount | 金額 | M | String(12) | 單位分,整數(shù)型字符 |
| location_info | 地址位置信息 | M | Object | 地址位置信息,風控要求必送 |
| busi_mode | 業(yè)務模式 | C | String(8) | 業(yè)務模式: ACQ-收單 不填,默認為“ACQ-收單” |
| subject | 訂單標題 | C | String(42) | 標題,用于簡單描述訂單或商品主題,會傳遞給賬戶端 (賬戶端控制,實際最多42個字符),微信支付必送。 |
| pay_order_no | 支付業(yè)務訂單號 | C | String(64) | 拉卡拉訂單系統(tǒng)訂單號,以拉卡拉支付業(yè)務訂單號為驅(qū)動的支付行為,需上傳該字段。 |
| notify_url | 商戶通知地址 | C | String(128) | 商戶通知地址,如果上傳,且 pay_order_no 不存在情況下,則按此地址通知商戶(詳見“[交易通知]”接口) |
| settle_type | 結(jié)算類型 | C | String(4) | “0”或者空,常規(guī)結(jié)算方式,如需接拉卡拉分賬需傳“1”; |
| remark | 備注 | C | String(128) |
|
| identity_info | 身份信息 | C | String(1024) | 實名支付信息,json字符串,如{“identityNo”:”32000000000000000X”,”name”:”張三”} |
| acc_busi_fields | 賬戶端業(yè)務信息域 | C | Object | 參見以下acc_busi_fields字段詳細說明,不同的account_type和trans_type,需要傳入的參數(shù)不一樣 |
location_info字段說明
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| request_ip | 請求方IP地址 | M | String(64) | 請求方的IP地址,存在必填,格式如36.45.36.95 |
| base_station | 基站信息 | C | String(128) | 客戶端設備的基站信息(主掃時基站信息使用該字段) |
| location | 緯度,經(jīng)度 | C | String(32) | 商戶終端的地理位置,整體格式:緯度,經(jīng)度,+表示北緯、東經(jīng),-表示南緯、 西經(jīng)。 經(jīng)度格式:1位正負號+3位整數(shù)+1位小數(shù)點+5位小數(shù); 緯度格式:1位正負號+2位整數(shù)+1位小數(shù)點+6位小數(shù); 舉例:+31.221345,+121.12345 |
支付寶主掃場景下acc_busi_fields域內(nèi)容
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| user_id | 買家在支付寶的用戶id | C | String(64) | 支付寶的buyer_user_id ,trans_type為41-NATIVE情況下不需要傳,為51情況下必須傳入 |
| timeout_express | 預下單有效時間 | C | String(2) | 預下單的訂單的有效時間,以分鐘為單位。如果在有效時間內(nèi)沒有完成付款,則在賬戶端該訂單失效。如果不上送,以賬戶端訂單失效時間為準。 建議不超過15分鐘。不傳值則默認5分鐘。 |
| extend_params | 業(yè)務擴展參數(shù) | C | Object | 支付寶業(yè)務擴展參數(shù) ,見說明 |
| goods_detail | 商品詳情 | C | String(6000) | 訂單包含的商品列表信息,Json數(shù)組。 |
| store_id | 商戶門店編號 | C | String(32) | 支付寶收單上送 |
| alipay_store_id(不再使用) | 支付寶店鋪編號 | C | String(32) | 支付寶已不再使用該字段 |
| disable_pay_channels | 支付寶禁用支付渠道 | C | String(32) | “credit_group”表示禁用信用卡 |
| business_params | 商戶傳入業(yè)務信息 | C | String(512) | 商戶傳入業(yè)務信息,應用于安全,營銷等參數(shù)直傳場景,格式為 json 格式。 示例:{“enable_thirdpar ty_subsidy”:”N”} |
| min_age | 允許的最小買家年齡 | C | String(2) | 買家年齡必須大于等于所傳數(shù)值 |
支付寶extend_params字段說明
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| sys_service_pr ovider_id | 服務商的PID | C | String(64) | 系統(tǒng)商編號,該參數(shù)作為系統(tǒng)商返傭數(shù)據(jù)提取的依據(jù),請?zhí)顚懴到y(tǒng)商簽約協(xié)議的 PID |
| hb_fq_num | 花唄分期期數(shù) | M | String(5) | 支付寶花唄分期必送字段: 花唄分期數(shù) 3:3期 6:6期 12:12期 |
| hb_fq_seller_percent | 賣家承擔手續(xù)費比例 | M | String(3) | 支付寶花唄分期必送字段: 賣家承擔手續(xù)費比例,間連模式下只支持傳0。 |
| food_order_type | 點餐場景類型 | C | String | 點餐場景類型:qr_order(店內(nèi)掃碼點餐),pre_order(預點到店自提),home_delivery (外送到家),direct_payment(直接付款),other(其它) |
支付寶goods_detail字段說明
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| goods_id |
| M | String(32) | 商品的編號 |
| alipay_goods_id |
| C | String(32) | 支付寶定義的統(tǒng)一商品編號 |
| goods_name |
| M | String(256) | 商品名稱 |
| quantity |
| M | Number | 商品數(shù)量 |
| price |
| M | Price | 商品價格 單位元 |
| goods_category |
| C | String(24) | 商品類目 |
| categories_tree |
| C | String(128) | 商品類目樹,從商品類目根節(jié)點到葉子節(jié)點的類目 id 組成,類目 id 值使用|分 割 |
| body |
| C | String(512) | 商品描述信息 |
| show_url |
| C | String(256) | 商品的展示地址 |
微信主掃場景下acc_busi_fields域內(nèi)容
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| timeout_express | 預下單有效時間 | C | String(2) | 預下單的訂單的有效時間,以分鐘為單位。建議不超過15分鐘。不傳值則默認5分鐘。(微信主掃下單上送的失效時間,是控制prepay_id調(diào)起支付的有效時間。微信后臺不會根據(jù)失效時間發(fā)起關(guān)單。 如需關(guān)單,調(diào)用關(guān)單接口。) |
| sub_appid | 子商戶公眾賬號ID | C | String(32) | 微信分配的子商戶公眾賬號ID,sub_appid(即微信小程序支付-71、公眾號支付-51、微信app支付-61),此參數(shù)必傳,只對微信支付有效 工行數(shù)字錢包情況下,該字段上送工行的openId 拉卡拉錢包情況下,該字段上送LAKALA的userId |
| user_id | 用戶標識 | C | String(64) | 用戶在子商戶sub_appid下的唯一標識,sub_openid,(即微信小程序支付-71、眾號支付-51),此參數(shù)必傳,只對微信支付有效 |
| detail | 商品詳情 | C | String(1024) | 單品優(yōu)惠功能字段,詳見下文說明 |
| goods_tag | 訂單優(yōu)惠標記 | C | String(32) | 訂單優(yōu)惠標記,微信平臺配置的商品標記,用于優(yōu)惠券或者滿減使用,accountType為WECHAT時,可選填此字段 |
| attach | 附加域 | C | String(128) | 該字段主要用于商戶攜帶訂單的自定義數(shù)據(jù)。商戶定制字段,直接送到賬戶端。 |
| device_info | 設備號 | C | String(32) | 終端設備號(門店號或收銀設備ID),注意:PC網(wǎng)頁或JSAPI支付請傳”WEB” |
| limit_pay | 指定支付方式 | C | String(20) | no_credit–指定不能使用信用卡支付 |
| scene_info | 場景信息 | C | String(256) | 該字段用于上報場景信息,目前支持上報實際門店信息。 |
| limit_payer | 限定支付 | C | String(8) | ADULT:成年人 |
微信detail字段說明
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| cost_price |
| C | String(12) | 1.商戶側(cè)一張小票訂單可能被分多次支付,訂單原 價用于記錄整張小票的交易金額。 2.當訂單原價與支付金額不相等,則不享受優(yōu)惠。 3.該字段主要用于防止同一張小票分多次支付,以 享受多次優(yōu)惠的情況,正常支付訂單不必上傳此參 數(shù)。 如:608800 |
| receipt_id |
| C | String(12) | 商家小票 ID |
| goods_detail |
| M | Object | 單品信息,使用Json數(shù)組格式提交,見示例 |
微信goods_detail字段說明
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| goods_id |
| M | String(32) | 由半角的大小寫字母、數(shù)字、中劃線、下劃線中的一種或幾種組成。如“商品編碼” |
| wxpay_goods_id |
| C | String(32) | 微信支付定義的統(tǒng)一商品編號 |
| goods_name |
| C | String(256) | 商品的實際名稱 |
| quantity |
| M | int | 用戶購買的數(shù)量 |
| price |
| M | int | 單位為:分。如果商戶有優(yōu)惠,需傳輸商戶優(yōu)惠后的單價 |
銀聯(lián)云閃付主掃場景下acc_busi_fields域內(nèi)容
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| user_id | 用戶id | C | String(64) | JS獲取用戶標識返回碼不為34時,必送(詳情請參考用戶標識查詢接口) |
| timeout_express | 預下單有效時間 | C | String(2) | 預下單的訂單的有效時間,以分鐘為單位。如果在有效時間內(nèi)沒有完成付款,則在賬戶端該訂單失效。如果不上送,以賬戶端訂單失效時間為準。 建議不超過15分鐘。不傳值則默認5分鐘。 |
| acq_addn_data_order_info | 銀聯(lián)訂單信息(暫不支持) | C | String(600) | 銀聯(lián)單品營銷訂單信息 |
| acq_addn_data_goods_info | 銀聯(lián)商品信息(暫不支持) | C | String(6000) | 銀聯(lián)單品營銷商品信息 |
| front_url | 銀聯(lián)前臺通知地址 | C | String(256) | 收款方向銀聯(lián)推送訂單時上送的前臺通知地址(僅允許為外網(wǎng)地址),用戶完成支付點擊,“返回”后,銀聯(lián)通過瀏覽器POST請求到該地址。 當transType為JSAPI,payMode為UQRCODEPAY時,可選填此字段 |
| front_fail_url | 銀聯(lián)失敗交易前臺通知地址 | C | String(256) | 收款方向銀聯(lián)推送訂單時上送的失敗交易前臺通知地址(僅允許為外網(wǎng)地址),用戶支付過程中交易失敗,點擊“返回”后,銀聯(lián)通過瀏覽器GET請求到該地址。 當transType為JSAPI,payMode為UQRCODEPAY時,可選填此字段,需與frontUrl同時出現(xiàn),未上送默認為frontUrl的值 |
| instal_will | 分期意愿 | C | String(1) | 0: 不分期(缺省) 1:分期 |
| un_qrcode | 銀聯(lián)二維碼qrcode | C | String(1000) | 商戶二維碼表示的URL |
網(wǎng)聯(lián)小錢包acc_busi_fields域內(nèi)容
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| nuc_issr_id | 小錢包金融機構(gòu)編號 | C | String(64) |
|
響應報文
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| merchant_no | 商戶號 | M | String(32) | 拉卡拉分配的商戶號(請求接口中商戶號) |
| out_trade_no | 商戶請求流水號 | M | String(32) | 請求報文中的商戶請求流水號 |
| trade_no | 拉卡拉交易流水號 | M | String(32) | 拉卡拉交易流水號 |
| log_no | 拉卡拉對賬單流水號 | M | String(14) | 拉卡拉對賬單流水號 |
| settle_merchant_no | 結(jié)算商戶號 | M | String(32) | 拉卡拉分配的商戶號 |
| settle_term_no | 結(jié)算終端號 | M | String(32) | 拉卡拉分配的業(yè)務終端號 |
| acc_resp_fields | 賬戶端返回信息域 | C | Object | 賬戶端返回信息域 |
支付寶(41-NATIVE)場景下返回acc_resp_fields域
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| code | 二維碼信息 | M | String(256) | 商戶可用此參數(shù)自定義去生成二維碼后展示出來進行掃碼支付 |
| code_image | 二維碼圖片內(nèi)容 | M | String(256) | 商戶收款二維碼圖片。Base64編碼,暫無 |
| sub_mch_id | 子商戶號 | C | String(20) | 賬戶端子商戶號 |
支付寶(51-JSAPI)場景下返回acc_resp_fields域
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| prepay_id | 預下單Id | M | String(32) | 預支付交易會話ID |
| sub_mch_id | 子商戶號 | C | String(20) | 賬戶端子商戶號 |
微信(71-小程序)微信(51-JSAPI)場景下返回acc_resp_fields域
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| prepay_id | 預下單Id | M | String(32) | 預支付交易會話ID |
| pay_sign | 支付簽名信息 | M | String(256) | 簽名 |
| app_id | 小程序id | M | String(32) | 商戶注冊具有支付權(quán)限的小程序成功后即可獲得小程序id |
| time_stamp | 時間戳 | M | String(32) | 當前的時間 |
| nonce_str | 隨機字符串 | M | String(32) | 隨機字符串 |
| package | 訂單詳情擴展字符串 | M | String(128) |
|
| sub_mch_id | 子商戶號 | C | String(20) | 賬戶端子商戶號 |
| sign_type | 簽名方式 | M | String(32) | 簽名類型,支持RSA |
銀聯(lián)二維碼(41-NATIVE)場景下返回acc_resp_fields域
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| code | 二維碼信息 | M | String(256) | 商戶可用此參數(shù)自定義去生成二維碼后展示出來進行掃碼支付 |
銀聯(lián)二維碼(51-JSAPI)場景下返回acc_resp_fields域
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| redirect_url | 銀聯(lián)JS支付重定向地址 | M | String(256) | 銀聯(lián)JS支付返回重定向地址 |
翼支付(51-JSAPI)場景下返回acc_resp_fields域
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| best_pay_info | 翼支付JS參數(shù) | C | String(512) | 翼支付JS參數(shù)(老網(wǎng)聯(lián)) best_pay_info、redirect_url兩者有其一 |
| redirect_url | 翼支付支付重定向地址 | C | String(256) | 翼支付支付重定向地址(新網(wǎng)聯(lián)) |
微信(61-APP)場景下返回acc_resp_fields域
| 字段名 | 中文名稱 | 是否必填 | 類型 | 說明 |
|---|
| prepay_id | 預下單Id | M | String(32) | 預支付交易會話ID |
| pay_sign | 支付簽名信息 | M | String(256) | 簽名 |
| app_id | 移動應用appid | M | String(32) | 商戶注冊具有支付權(quán)限的安卓/IOSAPP成功后即可獲得移動應用appid |
| time_stamp | 時間戳 | M | String(32) | 當前的時間 |
| nonce_str | 隨機字符串 | M | String(32) | 隨機字符串 |
| package | 訂單詳情擴展字符串 | M | String(128) |
|
| sign_type | 簽名方式 | M | String(32) | 簽名類型,支持RSA |
| partner_id | 從業(yè)機構(gòu)號 | M | String(32) |
|
| sub_mch_id | 子商戶號 | C | String(20) | 賬戶端子商戶號 |
示例
請求報文
{
"out_org_code": "OP00000003",
"req_data": {
"acc_busi_fields": {
"detail": "{"goods_detail":[{"goods_id":"123131311","goods_name":"\u79f0\u91cd\u83dc\u54c","quantity":1,"price":1073},{"goods_id":"223131212","goods_name":"2\u5143\u81ea\u52a9","quantity":1,"price":200}]}",
"goods_tag": "ceshi",
"sub_appid": "wx68edd02e",
"scene_info": "{\"store_info\":{\"id\": \"123\",\"name\": \"456\",\"area_code\": \"2345\",\"address\": \"地址\" }}",
"user_id": "oO2Dq0ny0C"
},
"account_type": "WECHAT",
"location_info": {
"request_ip": "123.72.62.189"
},
"merchant_no": "8221000506X5",
"notify_url": "https://testca/notify",
"out_trade_no": "0000023900289053",
"term_no": "A04753",
"total_amount": "50",
"trans_type": "51"
},
"req_time": "20220225222402",
"version": "3.0"
}{
"req_data": {
"merchant_no": "822290070111135",
"term_no": "29034705",
"out_trade_no": "KFPT20211018163339745459405",
"account_type": "UQRCODEPAY",
"trans_type": "51",
"total_amount": "100",
"location_info": {
"request_ip": "12.34.56.78",
"base_station": "00 6361 58130",
"location": "+37.123456789,-121.123456789"
},
"busi_mode": "ACQ",
"subject": "自動化測試",
"pay_order_no": "",
"notify_url": "",
"settle_type": "",
"remark": "",
"identity_info": "",
"promo_info": "",
"acc_busi_fields": {
"user_id": "Wek52a9hYY3zXbQ7JSrvZwiPa9lYJ7HyC+MqdjIbrSL21YT1H/v0WrgncHoRmsmZ",
"timeout_express": "",
"acq_addn_data_order_info": "",
"acq_addn_data_goods_info": "",
"front_url": "",
"front_fail_url": ""
}
},
"req_time": "20211018163339",
"version": "3.0",
"out_org_code": "OP00000003"
}復制響應報文
{
"msg": "成功",
"resp_time": "20211018165606",
"code": "BBS00000",
"resp_data": {
"out_trade_no": "KFPT20211018165606301458020",
"trade_no": "2021101866210004200101",
"log_no": "66210004200101",
"settle_merchant_no": "",
"settle_term_no": "",
"acc_resp_fields": {
"code": "https://qr.test.95516.com/UP02/qrcGtwWeb-web/front/confirmOrder?sessionId=c0b60813735d42838e761e47a84e000a",
"code_image": "",
"prepay_id": "",
"pay_sign": "",
"time_stamp": "",
"nonce_str": "",
"package": "",
"sign_type": "",
"redirect_url": "",
"best_pay_info": ""
}
}
}復制