支付寶 App支付請(qǐng)求參數(shù)說明

2018-10-26 16:46 更新

接口功能:外部商戶App喚起快捷SDK創(chuàng)建訂單并支付。

請(qǐng)求參數(shù)是商戶在與支付寶進(jìn)行數(shù)據(jù)交互時(shí),提供給支付寶的請(qǐng)求數(shù)據(jù),以便支付寶根據(jù)這些數(shù)據(jù)進(jìn)一步處理。

公共參數(shù)

參數(shù) 類型 是否必填 最大長度 描述 示例值
app_id String 32 支付寶分配給開發(fā)者的應(yīng)用ID 2014072300007148
method String 128 接口名稱 alipay.trade.app.pay
format String 40 僅支持JSON JSON
charset String 10 請(qǐng)求使用的編碼格式,如utf-8,gbk,gb2312等 utf-8
sign_type String 10 商戶生成簽名字符串所使用的簽名算法類型,目前支持RSA2和RSA,推薦使用RSA2 RSA2
sign String 256 商戶請(qǐng)求參數(shù)的簽名串,詳見簽名 詳見示例
timestamp String 19 發(fā)送請(qǐng)求的時(shí)間,格式"yyyy-MM-dd HH:mm:ss" 2014-07-24 03:07:50
version String 3 調(diào)用的接口版本,固定為:1.0 1.0
notify_url String 256 支付寶服務(wù)器主動(dòng)通知商戶服務(wù)器里指定的頁面http/https路徑。建議商戶使用https https://api.xx.com/receive_notify.htm
biz_content String - 業(yè)務(wù)請(qǐng)求參數(shù)的集合,最大長度不限,除公共參數(shù)外所有請(qǐng)求參數(shù)都必須放在這個(gè)參數(shù)中傳遞,具體參照各產(chǎn)品快速接入文檔 -

業(yè)務(wù)參數(shù)

參數(shù) 類型 是否必填 最大長度 描述 示例值
body String 128 對(duì)一筆交易的具體描述信息。如果是多種商品,請(qǐng)將商品描述字符串累加傳給body。 Iphone6 16G
subject String 256 商品的標(biāo)題/交易標(biāo)題/訂單標(biāo)題/訂單關(guān)鍵字等。 大樂透
out_trade_no String 64 商戶網(wǎng)站唯一訂單號(hào) 70501111111S001111119
timeout_express String 6 該筆訂單允許的最晚付款時(shí)間,逾期將關(guān)閉交易。取值范圍:1m~15d。m-分鐘,h-小時(shí),d-天,1c-當(dāng)天(1c-當(dāng)天的情況下,無論交易何時(shí)創(chuàng)建,都在0點(diǎn)關(guān)閉)。 該參數(shù)數(shù)值不接受小數(shù)點(diǎn), 如 1.5h,可轉(zhuǎn)換為 90m。注:若為空,則默認(rèn)為15d。 90m
total_amount String 9 訂單總金額,單位為元,精確到小數(shù)點(diǎn)后兩位,取值范圍[0.01,100000000] 9.00
product_code String 64 銷售產(chǎn)品碼,商家和支付寶簽約的產(chǎn)品碼,為固定值QUICK_MSECURITY_PAY QUICK_MSECURITY_PAY
goods_type String 2 商品主類型:0—虛擬類商品,1—實(shí)物類商品注:虛擬類商品不支持使用花唄渠道 0
passback_params String 512 公用回傳參數(shù),如果請(qǐng)求時(shí)傳遞了該參數(shù),則返回給商戶時(shí)會(huì)回傳該參數(shù)。支付寶會(huì)在異步通知時(shí)將該參數(shù)原樣返回。本參數(shù)必須進(jìn)行UrlEncode之后才可以發(fā)送給支付寶 merchantBizType%3d3C%26merchantBizNo%3d2016010101111
promo_params String 512 優(yōu)惠參數(shù)注:僅與支付寶協(xié)商后可用 {"storeIdType":"1"}
extend_params String - 業(yè)務(wù)擴(kuò)展參數(shù),詳見下面的“業(yè)務(wù)擴(kuò)展參數(shù)說明” {"sys_service_provider_id":"2088511833207846"}
enable_pay_channels String 128 可用渠道,用戶只能在指定渠道范圍內(nèi)支付當(dāng)有多個(gè)渠道時(shí)用“,”分隔注:與disable_pay_channels互斥 pcredit,moneyFund,debitCardExpress
disable_pay_channels String 128 禁用渠道,用戶不可用指定渠道支付當(dāng)有多個(gè)渠道時(shí)用“,”分隔注:與enable_pay_channels互斥 pcredit,moneyFund,debitCardExpress
store_id String 32 商戶門店編號(hào)。該參數(shù)用于請(qǐng)求參數(shù)中以區(qū)分各門店,非必傳項(xiàng)。 NJ_001
ext_user_info ExtUserInfo - 外部指定買家,詳見外部用戶ExtUserInfo參數(shù)說明 -

業(yè)務(wù)擴(kuò)展參數(shù)說明

參數(shù) 類型 是否必填 最大長度 描述 示例值
sys_service_provider_id String 64 系統(tǒng)商編號(hào),該參數(shù)作為系統(tǒng)商返傭數(shù)據(jù)提取的依據(jù),請(qǐng)?zhí)顚懴到y(tǒng)商簽約協(xié)議的PID 2088511833207846
needBuyerRealnamed String 1 是否發(fā)起實(shí)名校驗(yàn)T:發(fā)起F:不發(fā)起 T
TRANS_MEMO String 128 賬務(wù)備注注:該字段顯示在離線賬單的賬務(wù)備注中 促銷
hb_fq_num String 5 花唄分期數(shù)(目前僅支持3、6、12)注:使用該參數(shù)需要仔細(xì)閱讀“花唄分期接入文檔” 3
hb_fq_seller_percent String 3 賣家承擔(dān)收費(fèi)比例,商家承擔(dān)手續(xù)費(fèi)傳入100,用戶承擔(dān)手續(xù)費(fèi)傳入0,僅支持傳入100、0兩種,其他比例暫不支持注:使用該參數(shù)需要仔細(xì)閱讀“花唄分期接入文檔” 100

渠道說明

渠道名稱 說明
balance 余額
moneyFund 余額寶
coupon 紅包
pcredit 花唄
pcreditpayInstallment 花唄分期
creditCard 信用卡
creditCardExpress 信用卡快捷
creditCardCartoon 信用卡卡通
credit_group 信用支付類型(包含信用卡卡通、信用卡快捷、花唄、花唄分期)
debitCardExpress 借記卡快捷
mcard 商戶預(yù)存卡
pcard 個(gè)人預(yù)存卡
promotion 優(yōu)惠(包含實(shí)時(shí)優(yōu)惠+商戶優(yōu)惠)
voucher 營銷券
point 積分
mdiscount 商戶優(yōu)惠
bankPay 網(wǎng)銀

外部用戶ExtUserInfo參數(shù)說明

參數(shù) 類型 是否必填 最大長度 示例值 描述
name String 16 李明 姓名  注: need_check_info=T時(shí)該參數(shù)才有效
mobile String 20 16587658765 手機(jī)號(hào)注:該參數(shù)暫不校驗(yàn)
cert_type String 32 IDENTITY_CARD 身份證:IDENTITY_CARD、護(hù)照:PASSPORT、軍官證:OFFICER_CARD、士兵證:SOLDIER_CARD、戶口本:HOKOU等。如有其它類型需要支持,請(qǐng)與螞蟻金服工作人員聯(lián)系。注: need_check_info=T時(shí)該參數(shù)才有效
cert_no String 64 362334768769238881 證件號(hào)注:need_check_info=T時(shí)該參數(shù)才有效
min_age String 3 18 允許的最小買家年齡,買家年齡必須大于等于所傳數(shù)值注:1. need_check_info=T時(shí)該參數(shù)才有效2. min_age為整數(shù),必須大于等于0
fix_buyer String 8 F 是否強(qiáng)制校驗(yàn)付款人身份信息T:強(qiáng)制校驗(yàn),F(xiàn):不強(qiáng)制
need_check_info String 1 F 是否強(qiáng)制校驗(yàn)身份信息T:強(qiáng)制校驗(yàn),F(xiàn):不強(qiáng)制

請(qǐng)求示例

請(qǐng)求參數(shù)組裝分下列3步,以最后第三步獲取到的請(qǐng)求為準(zhǔn) 1.請(qǐng)求參數(shù)按照key=value&key=value方式拼接的未簽名原始字符串:

app_id=2015052600090779&biz_content={"timeout_express":"30m","product_code":"QUICK_MSECURITY_PAY","total_amount":"0.01","subject":"1","body":"我是測試數(shù)據(jù)","out_trade_no":"IQJZSRC1YMQB5HU"}&charset=utf-8&format=json&method=alipay.trade.app.pay¬ify_url=http://domain.merchant.com/payment_notify&sign_type=RSA2×tamp=2016-08-25 20:26:31&version=1.0

2.再對(duì)原始字符串進(jìn)行簽名,參考簽名規(guī)則:

app_id=2015052600090779&biz_content={"timeout_express":"30m","product_code":"QUICK_MSECURITY_PAY","total_amount":"0.01","subject":"1","body":"我是測試數(shù)據(jù)","out_trade_no":"IQJZSRC1YMQB5HU"}&charset=utf-8&format=json&method=alipay.trade.app.pay¬ify_url=http://domain.merchant.com/payment_notify&sign_type=RSA2×tamp=2016-08-25 20:26:31&version=1.0&sign=cYmuUnKi5QdBsoZEAbMXVMmRWjsuUj+y48A2DvWAVVBuYkiBj13CFDHu2vZQvmOfkjE0YqCUQE04kqm9Xg3tIX8tPeIGIFtsIyp/M45w1ZsDOiduBbduGfRo1XRsvAyVAv2hCrBLLrDI5Vi7uZZ77Lo5J0PpUUWwyQGt0M4cj8g=

3.最后對(duì)請(qǐng)求字符串的所有一級(jí)value(biz_content作為一個(gè)value)進(jìn)行encode,編碼格式按請(qǐng)求串中的charset為準(zhǔn),沒傳charset按UTF-8處理,獲得最終的請(qǐng)求字符串:

app_id=2015052600090779&biz_content=%7B%22timeout_express%22%3A%2230m%22%2C%22product_code%22%3A%22QUICK_MSECURITY_PAY%22%2C%22total_amoun

特殊說明(很重要)

1.商戶在請(qǐng)求參數(shù)中,自己附屬的一些額外參數(shù),不要和支付寶系統(tǒng)中約定的key(下表中 公共請(qǐng)求參數(shù)\請(qǐng)求參數(shù))重名,否則將可能導(dǎo)致未知的異常。 比如以下示例中app_id=2014072300007148**&version=1.0&biz_content的key是公共請(qǐng)求參數(shù),業(yè)務(wù)方自己的擴(kuò)展參數(shù)需要放在biz_content內(nèi)部,比如示例中tips屬性,很顯然下面total_amount屬性是商戶按照自己的業(yè)務(wù)屬性賦值的,但是由于total_amount也是支付寶關(guān)鍵key,支付寶將會(huì)認(rèn)為這個(gè)total_amount是支付寶業(yè)務(wù)的參數(shù)應(yīng)該是金額,這個(gè)最終將導(dǎo)致誤解析。下列請(qǐng)求串為了展示清晰,未進(jìn)行encode并且做了格式化處理,下同。

app_id=2014072300007148&charset=UTF-8&version=1.0×tamp=2016-07-01 08:08:08&method=alipay.trade.app.pay¬ify_url=https://api.**.com/pay_receive_notify.html&sign_type=RSA2&sign=ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE&version=1.0&biz_content=
  {
    "body":"對(duì)一筆交易的具體描述信息。如果是多種商品,請(qǐng)將商品描述字符串累加傳給body。",
    "subject":"大樂透",
    "out_trade_no":"70501111111S001111119",
    "timeout_express":"90m",
    "total_amount":"一共花費(fèi)了10元",
    "product_code":"QUICK_MSECURITY_PAY",
    "tips":"測試一筆支付"
  }

2.商戶的請(qǐng)求參數(shù)中,所有的key(支付寶關(guān)鍵key或者商戶自己的key),其對(duì)應(yīng)的value中都不應(yīng)該出現(xiàn)支付寶關(guān)鍵key,否則該類交易將可能被支付寶攔截禁止支付。 比如以下的請(qǐng)求中"subject":“大樂透 這個(gè)辣條不錯(cuò) out_trade_no=123 total_fee=123.5”,其value值中有支付寶關(guān)鍵key"out_trade_no"、“total_fee”,這樣的業(yè)務(wù)請(qǐng)求參數(shù)支付寶將會(huì)攔截。

app_id=2014072300007148&charset=UTF-8&version=1.0×tamp=2016-07-01 08:08:08&method=alipay.trade.app.pay¬ify_url=https://api.**.com/pay_receive_notify.htm&sign_type=RSA2&sign=ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE&version=1.0&biz_content=
  {
    "body":"對(duì)一筆交易的具體描述信息。如果是多種商品,請(qǐng)將商品描述字符串累加傳給body。",
    "subject":"大樂透 這個(gè)辣條不錯(cuò) out_trade_no=123 total_fee=123.5",
    "out_trade_no":"70501111111S001111119",
    "timeout_express":"90m",
    "total_amount":10.0,
    "product_code":"QUICK_MSECURITY_PAY"
  }

3.商戶支付請(qǐng)求參數(shù)的安全注意點(diǎn): a)請(qǐng)求參數(shù)的sign字段請(qǐng)務(wù)必在服務(wù)端完成簽名生成(不要在客戶端本地簽名); b)支付請(qǐng)求中的訂單金額total_amount,請(qǐng)務(wù)必依賴服務(wù)端,不要輕信客戶端上行的數(shù)據(jù)(客戶端本地上行數(shù)據(jù)在用戶手機(jī)環(huán)境中無法確保一定安全)。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)