AliPay支付寶標準快速付款接口文檔(共26頁).doc_第1頁
AliPay支付寶標準快速付款接口文檔(共26頁).doc_第2頁
AliPay支付寶標準快速付款接口文檔(共26頁).doc_第3頁
AliPay支付寶標準快速付款接口文檔(共26頁).doc_第4頁
AliPay支付寶標準快速付款接口文檔(共26頁).doc_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、純網(wǎng)關接口文檔 副標題:網(wǎng)銀直連修訂歷史版本號作者修訂章節(jié)修訂原因修訂日期V1.0技術支持團隊全版修改加強文檔結構的合理性2008-11-17V1.1甘寧訂正部分接口參數(shù)和描述信息,例如:即時支付支持錯誤通知地址(error_notify_url)更新簽約接口內(nèi)容接口升級、增加查詢簽約接口2009-8-2V1.2甘寧重新整理流程以及文檔說明使文檔閱讀性更強2009-12-8V1.3甘寧增加“公用回傳參數(shù)”滿足用戶自定義參數(shù)的要求2010-3-18V1.4甘寧通知中增加網(wǎng)銀流水滿足商戶網(wǎng)銀支付需求2010-3-29V1.5甘寧請求參數(shù)列表支持自定義超時可以使用時間區(qū)間2010-9-13甘寧增加4

2、.3.2的信用卡簡碼信用卡大額支付也支持純網(wǎng)關2010-10-26說明:本接口將支付寶即時到帳接口用作純網(wǎng)關的功能做詳細介紹。在集成時處理機制和原有支付寶即時到帳一樣,請求時必須增加默認支付方式(paymethod)和默認網(wǎng)銀(defaultbank)2個參數(shù)目錄1前言31.1概述31.2術語32接口功能及參數(shù)介紹32.1標準即時到賬接口(適用于純網(wǎng)銀)32.1.1功能描述32.1.2交互流程42.1.3交互模式42.1.4接口詳細說明42.1.5接口注意事項112.1.6接口錯誤代碼列表113簽名通用策略133.1安全方面CheckList133.2簽名方面133.2.1簽名機制133.2.

3、24.2.2簽名方式133.3其他方面144附錄144.1接口通用機制144.1.1系統(tǒng)調(diào)用144.1.2頁面跳轉(zhuǎn)144.1.3支付寶主動通知處理流程164.1.4通知驗證174.2數(shù)字簽名構造184.2.1請求參數(shù)構造184.3公用枚舉表214.3.1通知返回結果枚舉214.3.2通用交易狀態(tài)枚舉表214.3.1銀行列表224.3.2信用卡大額銀行列表234.3.3訂單狀態(tài)列表234.4FAQ(常見問題的的解答)241 前言1.1 概述本接口主要用在外部集成網(wǎng)銀直連(純網(wǎng)關)功能1.2 術語名稱說明外部商戶、合作伙伴、商戶和支付寶進行業(yè)務合作的商戶通知頁參數(shù)名稱Notify_url,所指定的

4、互聯(lián)網(wǎng)HTTP地址,當代扣完成之后,支付寶發(fā)送信息到該頁面去,即調(diào)用該頁面,該頁面中的程序自動運行,并判斷請求與處理獲取到的信息合作伙伴ID簽約后,為商家自動分配的唯一編號。分潤分潤指將某一部分費用分給其它的帳戶頁面跳轉(zhuǎn)執(zhí)行操作后跳轉(zhuǎn)到其它頁面2 接口功能及參數(shù)介紹2.1 標準即時到賬接口(適用于純網(wǎng)銀)2.1.1 功能描述調(diào)用此接口,根據(jù)用戶傳過來的參數(shù)創(chuàng)建交易,買家再付款。目前該接口的交易全部為即時到帳純網(wǎng)銀支付接口,即只要買家一付款,錢就會從買家銀行卡轉(zhuǎn)到賣家的支付寶賬號。同時該接口還支持分潤,商家傳過來分潤的賬號和金額,系統(tǒng)會自動打款到該賬號上。2.1.2 交互流程2.1.3 交互模式

5、請求/響應交互模式,頁面跳轉(zhuǎn)2.1.4 接口詳細說明 請求參數(shù)列表特別注意:a.) 此接口只支持https請求,支付寶是以https進行驗證b.) 按照支付寶外部請求接口概述中要求的簽名方式,對輸入?yún)?shù)進行簽名,該接口請求才能夠被支付寶系統(tǒng)接收。c.) 本接口支持重復調(diào)用,但是提交數(shù)據(jù)必須一樣才可以。d.) 在請求時必須增加默認支付方式和默認網(wǎng)銀2個參數(shù)字段名變量名類型說明可空協(xié)議參數(shù)接口名稱serviceStringcreate_direct_pay_by_userN合作伙伴IDpartnerString(16)合作伙伴在支付寶的用戶ID與支付寶簽約后自動生成N通知URLnot

6、ify_urlURL(String(190))針對該交易的交易狀態(tài)同步通知接收URL。N返回URLreturn_urlURL結果返回URL,僅適用于立即返回處理結果的接口。支付寶處理完請求后,立即將處理結果返回給這個URL。N錯誤通知地址(需要支付寶功能人員開通)error_notify_urlURL(String(190))如果在交易過程中出錯(如簽名錯誤等),則通過此URL將錯誤碼返回給合作伙伴系統(tǒng)Y簽名signString見簽名機制,MD5加密算法后得出的結果N簽名方式sign_typeString見簽名方式,現(xiàn)今默認是MD5加密,無需更改該參數(shù)的值N參數(shù)編碼字符集_input_char

7、setString(默認為GBK)合作伙伴系統(tǒng)與支付寶系統(tǒng)之間交互信息時使用的編碼字符集。合作伙伴可以通過該參數(shù)指定使用何種字符集對傳遞參數(shù)進行編碼。同時,支付寶系統(tǒng)也會使用該字符集對返回參數(shù)或通知參數(shù)進行編碼。注:該參數(shù)必須在queryString中傳遞,不論使用的是POST還是GET方式發(fā)送請求。如:N業(yè)務參數(shù)商品展示網(wǎng)址show_urlString(400)點擊商品鏈接后跳轉(zhuǎn)的頁面Y商品名稱subjectString(256)商品的標題N商品描述bodyString(1000)商品的具體描述,如果是多種商品,請將商品描述字符串累加傳給bodyY外部交易號out_trade_noStrin

8、g(64)合作伙伴交易號(確保在合作伙伴系統(tǒng)中唯一)N商品單價priceNumber(13,2)price:單位為RMB Yuan 0.01100000000.00total_fee:單位為RMB Yuan0.01100000000.00quantity:0<quantity < 1000000規(guī)則:1.如果是多個商品可以匯總后傳入,這個時候商品數(shù)量默認為12.總價和單價不可以同時出現(xiàn)3.如果使用總價total_fee,則數(shù)量為quantity =1.3.如果使用單價price,則商品數(shù)量quantity傳遞實際商品數(shù)量N交易金額total_feeNumber(13,2)購買數(shù)量q

9、uantityNumber(6,0)支付類型payment_typeString(4)默認為:1(商品購買);N默認支付方式paymethodStringbankPay(網(wǎng)銀)N默認網(wǎng)銀defaultbankString見常見銀行列表N賣家Emailseller_emailString(100)賣家在支付寶的注冊Email或注冊ID,兩者任何一個。N賣家IDseller_idString(16)提成類型royalty_typeString(2)目前只支持一種類型:賣家給第三方提成(目前參數(shù)=10)Y提成信息集royalty_parametersString(500)信息格式下面兩種都可:1、收

10、款方Email_1金額備注|付款方Email收款方Email_2金額備注2、收款方Email_1金額備注|收款方Email_2金額備注3. (屬于多級分潤)收款方Email_1金額備注|收款方Email_1收款方Email_2金額備注如有多條則用“|”隔開,最多不能超過10條,備注最多1000個字符,即500個漢字,詳見“接口注意事項”Y超時時間it_b_payString(3)商戶開通自定義超時功能才有用(支付寶控制權限),定義該交易的超時時間,m表示分鐘,h表示小時,d表示天,c表示當天。商戶如果需要改功能,需要告知配置的時間點或者區(qū)間,有支付寶技術支持配置。例如:1m15d表示在1分鐘和

11、15天之內(nèi)任何一個時間都可以。備注:默認15d關閉交易。當天理論上是當天的0點后關閉,但是由于是定時任務可能有所延遲。Y公用回傳參數(shù)extra_common_paramString(200)用于商戶回傳參數(shù),該值不能包含=&等特殊字符。如果用戶請求時傳遞了該參數(shù),則返回給商戶時會回傳該參數(shù).Y一個完整的支付接入請求實例:*5&payment_type=1&paymethod=bankPay&return_url= 返回參數(shù)列表此接口有兩種返回方式:注意:選擇具體網(wǎng)銀支付方法,進入網(wǎng)銀支付頁面后才能創(chuàng)建交易,支付完成才返回通知。需要強調(diào)的是部分網(wǎng)銀可

12、能不支持支付完成及時跳轉(zhuǎn),所以商戶最好在異步通知中做數(shù)據(jù)處理或者2個返回處理都集成,增加訂單重復接受即可A. (同步通知):系統(tǒng)根據(jù)執(zhí)行的結果將相關訂單信息返回(只做返回不需要商戶和支付寶系統(tǒng)交互)輸出參數(shù)列表字段名變量名類型說明可空基本信息是否成功is_successString(1)表示該次操作是否成功N簽名signString(32)見HTTP參數(shù)簽名機制,該參數(shù)需要獲取做簽名校驗。N簽名類型sign_typeString見簽名方式N業(yè)務參數(shù)接口名稱exterfaceString使用支付寶的服務接口名稱,用此參數(shù)可以確定是支付寶的服務Y通知時間notify_timeTimestamp通知

13、時間(支付寶時間),格式:YYYY-MM-DD hh:mm:ssY通知IDnotify_idString支付寶通知流水號,合作伙伴可以用這個流水號詢問支付寶該條通知的合法性Y通知類型notify_typeStringtrade_status_syncY支付寶交易號trade_noString(16)該交易在支付寶系統(tǒng)中的交易流水號Y支付類型payment_typeString(4)值為1:商品購買Y外部交易號out_trade_noString(64)該交易商戶提交給支付寶的的交易流水號Y商品描述bodyString(400)商品描述Y商品名稱subjectString(256)商品名稱Y總價

14、total_feeNumber(13,2)總價Y買家Emailbuyer_emailString(100)買家EmailY買家IDbuyer_idString(30)買家IDY賣家Emailseller_emailString(100)賣家EmailY賣家IDseller_idString(30)賣家IDY交易狀態(tài)trade_statusString見交易狀態(tài)枚舉表Y公用回傳參數(shù)extra_common_paramString用于商戶回傳參數(shù),該值不能包含=&等特殊字符。如果用戶請求時傳遞了該參數(shù),則返回給商戶時會回傳該參數(shù).Y網(wǎng)銀流水號bank_seq_noString(20)開通了

15、純網(wǎng)關和偽網(wǎng)關的商戶,在交易成功后可以返回網(wǎng)銀流水。其他不返回該值。YB. 異步通知(即notify_url通知):支付寶系統(tǒng)根據(jù)商戶傳入的notify_url,定時通知執(zhí)行結果返回給商戶,若通知后沒有獲取商戶返回的success支付寶會重復多次執(zhí)行通知。輸出參數(shù)列表字段名變量名類型說明可空通知類型notify_typeStringtrade_status_syncN通知IDnotify_idString支付寶通知流水號,合作伙伴可以用這個流水號詢問支付寶該條通知的合法性N通知時間notify_timeTimestamp通知時間(支付寶時間),格式:YYYY-MM-DD hh:mm:ssN簽名

16、signString見簽名機制,該參數(shù)需要獲取做簽名校驗。N簽名方式sign_typeString見簽名方式N訂單信息:支付寶交易號trade_noString(16)該交易在支付寶系統(tǒng)中的交易流水號Y外部交易號out_trade_noString(64)該交易在合作伙伴系統(tǒng)的流水號Y折扣discountNumber(13,2)Y支付類型payment_typeString(4)1Y商品名稱subjectString(256)Y商品描述bodyString(400)Y商品單價priceNumber(13,2)單位為RMB Yuan0.01100000000.00Y購買數(shù)量quantityNum

17、ber(6,0)>0Y交易金額total_feeNumber(13,2)單位為RMB Yuan0.011000000.00Y是否調(diào)整總價is_total_fee_adjustString(1)該交易是否調(diào)整過價格Y交易創(chuàng)建時間gmt_createTimestamp該筆交易創(chuàng)建的時間Y交易付款時間gmt_paymentTimestamp該交易買家的付款時間Y交易關閉時間gmt_closeTimestamp交易關閉時間Y退款時間gmt_refundTimestamp賣家退款的時間,退款通知時會發(fā)送Y公用回傳參數(shù)extra_common_paramString用于商戶回傳參數(shù),該值不能包含=&

18、amp;等特殊字符。如果用戶請求時傳遞了該參數(shù),則返回給商戶時會回傳該參數(shù).Y網(wǎng)銀流水號bank_seq_noString(20)開通了純網(wǎng)關和偽網(wǎng)關的商戶,在交易成功后可以返回網(wǎng)銀流水。備注:需要支付寶技術支持人員開啟Y交易狀態(tài)信息:交易狀態(tài)trade_statusString見交易狀態(tài)枚舉表Y退款狀態(tài)refund_statusString見交易狀態(tài)枚舉表Y買家賣家信息:賣家Emailseller_emailString(100)賣家EmailY賣家IDseller_idString(30)賣家IDY買家IDbuyer_idString(30)買家EmailY買家Emailbuyer_ema

19、ilString(100)買家IDY是否使用紅包use_couponString(1)買家是否在交易過程中使用了紅包Y錯誤通知參數(shù)信息(需要在傳入?yún)?shù)增加錯誤通知地址):錯誤代碼error_codeString(說明接口調(diào)用過程中的出錯信息N2.1.5 接口注意事項l 您需使用HTTPS 協(xié)義, 支付寶是以HTTPS的形式進行通知l 請按照支付寶外部請求接口概述中要求的簽名方式,對輸入?yún)?shù)進行簽名,該接口請求才能夠被支付寶系統(tǒng)接收l 該接口支持重復調(diào)用,即:一筆訂單可以重新支付,但是前提是這筆訂單的信息和原來信息一樣,否則會報訂單號重復l 處理支付寶的返回信息可以異步處理也可以同步處理,前提是

20、防止訂單重復接收l 提成數(shù)據(jù)集:1. 收款方Email_1金額備注|付款方Email收款方Email_2金額備注例如:gwl2510.02分潤1|gwl251gwl0610.01分潤22. 收款方Email_1金額備注|收款方Email_2金額備注例如:gwl2510.02分潤1|gwl0610.01分潤23.收款方Email_1金額備注|收款方Email_1收款方Email_2金額備注例如:gwl2510.02分潤1|gwl251gwl0610.01分潤22.1.6 接口錯誤代碼列表錯誤代碼(error_code)說明ILLEGAL_SIGN簽名驗證出錯ILLEGAL_ARGUMENT參數(shù)不

21、正確HAS_NO_PRIVILEGE沒有權限訪問該服務ILLEGAL_SERVICEService參數(shù)不正確ILLEGAL_PARTNER商戶ID不正確HAS_NO_PUBLICKEY沒有上傳公鑰USER_NOT_EXIST會員不存在OUT_TRADE_NO_EXIST外部交易號已經(jīng)存在TRADE_NOT_EXIST交易不存在ILLEGAL_PAYMENT_TYPE無效支付類型,需要聯(lián)系支付寶技術支持工程師處理BUYER_NOT_EXIST買家不存在SELLER_NOT_EXIST賣家不存在BUYER_SELLER_EQUAL買家、賣家是同一帳戶ILLEGAL_SIGN_TYPE簽名類型不正確

22、COMMISION_ID_NOT_EXIST傭金收取帳戶不存在COMMISION_SELLER_DUPLICATE收取傭金帳戶和賣家是同一帳戶COMMISION_FEE_OUT_OF_RANGE傭金金額超出范圍ILLEGAL_LOGISTICS_FORMAT無效物流格式TOTAL_FEE_LESSEQUAL_ZERO交易總金額小于等于0TOTAL_FEE_OUT_OF_RANGE交易總金額超出范圍ILLEGAL_FEE_PARAM非法交易金額格式(參考單價、總價、數(shù)量三個組合規(guī)則)DONATE_GREATER_THAN_MAX小額捐贈總金額超出最大值限制DIRECT_PAY_AMOUNT_OU

23、T_OF_RANGE快速付款交易總金額超出最大值限制DIGITAL_FEE_GREATER_THAN_MAX虛擬物品交易總金額超出最大值限制SELF_TIMEOUT_NOT_SUPPORT不支持自定義超時COMMISION_NOT_SUPPORT不支持傭金VIRTUAL_NOT_SUPPORT不支持虛擬發(fā)貨方式ILLEGAL_CHARSET字符集不合法ROYALTY_SELLER_ENABLE_STATUS_FORBID有提成情況下,賣家狀態(tài)不正常ROYALTY_SELLER_NOT_CERTIFY有提成情況下,賣家未通過認證ROYALTY_FORAMT_ERROR提成信息錯誤,請檢查后重新集

24、成ROYALTY_TYPE_ERROR提成類型不支持,請檢查后重新集成ROYALTY_PAY_EMAIL_NOT_EXIST提成付款帳戶不存在ROYALTY_RECEIVE_EMAIL_NOT_EXIST提成收款帳戶不存在DEFAULT_BANK_MUST_NOT_NULL默認網(wǎng)銀不能為空LLEGAL_PAYMENT_TYPE錯誤的Payment_type參數(shù)ILLEGAL_OUTTIME_ARGUMENT自定義超時參數(shù)錯誤CANT_CREDIT_PAY不能使用信用支付TRADE_NOT_ALLOWED_PAY交易不允許付款NAVIGATION_INCOME_OF_ROYALTY_ACCOUN

25、T在提成情況下的多級分潤,二次分潤帳戶次序問題或者分潤時沒有預留支付寶服務費3 簽名通用策略3.1 安全方面CheckLista 從集成后的系統(tǒng)健壯性考慮,收到支付寶發(fā)出的通知后,合作伙伴系統(tǒng)須判斷接收到的交易狀態(tài)、交易金額是否與自己系統(tǒng)中的參數(shù)對應,并處理這些數(shù)據(jù)信息,使網(wǎng)站內(nèi)的交易信息與支付寶內(nèi)的交易信息保持一致,可防止掉單情況出現(xiàn)。如果不判斷,存在潛在的風險,合作伙伴自行承擔因此而產(chǎn)生的所有損失。3.2 簽名方面3.2.1 簽名機制a 沒有值的參數(shù)無需傳遞,也無需包含到待簽名數(shù)據(jù)中。b 簽名時將字符轉(zhuǎn)變成字節(jié)流時指定的字符集要與_input_charset保持一致。c 如果傳遞了_inp

26、ut_charset參數(shù),那么這個參數(shù)也應該包含在待簽名數(shù)據(jù)中。d 根據(jù)HTTP協(xié)議要求,傳遞參數(shù)的值中如果存在特殊字符(如:&、等),那么該值需要做URL Encoding,這樣請求接受方才能接受到正確的參數(shù)值。這種情況下,做簽名時使用的應該是原生值而不是encoding之后的值。例如:會員查詢接口示例中待簽名數(shù)據(jù)是email=test&partner=2088006300000000&service=test,而不是email=test%&partner=2088006300000000&service=test。3.2.2 4.2.2簽名方式按照s

27、ign_type參數(shù)指定的簽名算法對待簽名數(shù)據(jù)進行簽名【參見:數(shù)字簽名構造】3.3 其他方面1) 您必需使用HTTPS 協(xié)義, 支付寶是以HTTPS的形式進行通知2) 請按照支付寶外部請求接口概述中要求的簽名方式,對輸入?yún)?shù)進行簽名,該接口請求才能夠被支付寶系統(tǒng)接收3) 如果設置了notify_url,支付寶會發(fā)一條通知到notify_url對應的站點4) 通知URL不要如此設置:4 附錄4.1 接口通用機制4.1.1 系統(tǒng)調(diào)用顧名思義,這類接口是為合作伙伴系統(tǒng)獲得支付寶系統(tǒng)信息提供服務的,是一種系統(tǒng)間的調(diào)用接口。 系統(tǒng)調(diào)用示意圖4.1.2 頁面跳轉(zhuǎn)顧名思義,這類接口都是一些有頁面操作的接口。

28、通常是用戶在合作伙伴頁面執(zhí)行部分操作,然后跳轉(zhuǎn)到支付寶系統(tǒng)記錄訂單信息及時再轉(zhuǎn)入網(wǎng)銀系統(tǒng)頁面完成整個操作。有的甚至可能最后還要再跳回到合作伙伴的下一個頁面,繼續(xù)完成整個操作。根據(jù)處理結果的返回方式,又分為:n 立即返回處理結果,即用戶在網(wǎng)銀系統(tǒng)頁面完成操作后,支付寶將處理結果立即返回給合作伙伴的下一步操作頁面,讓用戶繼續(xù)完成真?zhèn)€操作流程。所以,調(diào)用這類接口時,必須傳遞參數(shù)return_url(即合作伙伴的下一個操作頁面)。立即返回(頁面跳轉(zhuǎn))示意圖n 異步返回處理結果,即用戶從合作伙伴頁面跳轉(zhuǎn)到網(wǎng)銀支付頁面后(支付寶先做記錄),在網(wǎng)銀系統(tǒng)完成最后操作,用戶不用再回到合作作伙伴頁面。這類接口通常

29、是通過通知接口異步獲得處理結果。如果需要異步返回結果,那么必須傳遞notify_url參數(shù),以指定通知返回的地址。如果不需要異步返回結果,那么可以不用傳遞notify_url參數(shù)。(具體流程可以參考:支付寶主動通知處理流程) 頁面跳轉(zhuǎn)(通過通知接口返回結果)示意圖4.1.3 支付寶主動通知處理流程1.支付寶平臺系統(tǒng)向外部商戶系統(tǒng)發(fā)出通知,即訪問外部商戶提供的通知接收URL(參數(shù)notify_url)。2.外部商戶系統(tǒng)接到通知請求,通過notify_id詢問支付寶平臺系統(tǒng)這個通知的真實性,通知驗證。3.支付寶平臺系統(tǒng)判斷通知是否是自己發(fā)送,如果是返回true,否則返回false。4.商戶系統(tǒng)得到

30、支付寶平臺系統(tǒng)的確認后,對通知進行處理。處理完畢后,返回結果給支付寶平臺系統(tǒng),處理結果的值見附件:通知返回結果枚舉。5.支付寶平臺系統(tǒng)處理商戶系統(tǒng)返回的處理結果。4.1.4 通知驗證從系統(tǒng)健康性角度考慮,在接收到支付寶平臺系統(tǒng)通知以后,驗證支付寶的系統(tǒng)通知的正確性(合法性)是非常有必要的。強烈建議外部商戶系統(tǒng)加入此應用。 了保證該接口被合法利用,商戶系統(tǒng)只能查找1分鐘之內(nèi)(目前為1分鐘,以后若有調(diào)整,恕不另行通知)的通知。 傳遞的參數(shù)格式:通知驗證字段名變量名類型說明可空樣例接口名稱serviceStringcustomer_unsignNtrade_status_sync外部商戶partne

31、rString(16)外部商戶在支付寶的用戶IDN通知IDnotify_idString支付寶發(fā)送的通知IDN² 基于HTTPS協(xié)議的通知驗證接口程序在使用時按照以下要求發(fā)起一個HTTPS請求,獲取該請求的結果即可,所有可能出現(xiàn)的結果見以下的輸出參數(shù)表,這種驗證通知的方式需要網(wǎng)站支持HTTPS訪問,若網(wǎng)站不支持https的訪問,可以使用另外一種驗證方式:基于HTTP協(xié)議的通知驗證接口。接入URL:一個完整的驗證請求實例: &partner=1234567890&notify_id=abcdefghijklmnopqrst ² 基于HTTP協(xié)議的通知驗證接口程

32、序在使用時按照以下要求發(fā)起一個HTTP請求,獲取該請求的結果即可,所有可能出現(xiàn)的結果見以下的輸出參數(shù)表。接入URL:一個完整的驗證請求實例:partner=1234567890&notify_id=abcdefghijklmnopqrst通知驗證接口輸出參數(shù):輸出內(nèi)容說明可能的原因invalid傳入的參數(shù)無效查找參數(shù)格式true驗證通過false驗證失敗查找是否由于sign和mysign不相等引起的1分鐘內(nèi)失效的問題4.2 數(shù)字簽名構造4.2.1 請求參數(shù)構造為了確保數(shù)據(jù)傳輸過程中的數(shù)據(jù)真實性和完整性,我們需要對數(shù)據(jù)進行簽名校驗。HTTP請求中傳遞的所有參數(shù)(除sign和sign_ty

33、pe以外)按照參數(shù)名稱字符升序的順序串聯(lián)起來(如:p1=v1&p2=v2&p3=v3),構成待簽名數(shù)據(jù)。按照sign_type指定的方式對待簽名數(shù)據(jù)進行簽名。例如:調(diào)用某接口需要以下參數(shù):service=cae_charge_agentpartner=2088006300000000那么待簽名數(shù)據(jù)就是:email=test&partner=2088006300000000&service= cae_charge_agent。 簽名算法對比 算法功能MD5DSARSA防篡改防抵賴×加密××電子簽名法是否承認×4

34、.2.1.2 MD5算法構造定義:MD5是一種摘要生成算法,本來是不能用于簽名的。但是,通過在待簽名數(shù)據(jù)之后加上一串私密內(nèi)容(指令發(fā)送、接收雙發(fā)事先規(guī)定好的,這里我們稱其為簽名密鑰),就可以用于簽名了。使用這種算法簽名只能起到防數(shù)據(jù)篡改的功能,不能起到簽名防抵賴的功能,因為雙方都知道簽名密鑰例如:待簽名數(shù)據(jù) + securityCode值(支付寶為合作伙伴頒發(fā)的安全校驗碼)的MD5摘要作為簽名。例如:安全校驗碼是mysecurityCode,那么前面會員查詢接口示例的待簽名數(shù)據(jù)就是:email=test&partner=2088006300000000&service=user

35、_querymysecurityCode。 DSA算法構造定義:DSA是一種非對稱的簽名算法,即簽名密鑰(私鑰)與驗簽名密鑰(公鑰)是不一樣的,私鑰用于簽名,公鑰用于驗簽名。使用這種算法簽名在起到防數(shù)據(jù)篡改功能的同時,還可以起到防抵賴的作用,因為私用只有簽名者知道。例如:合作伙伴發(fā)送請求時,使用自己的密鑰對待簽名數(shù)據(jù)進行DSA簽名,支付寶使用合作伙伴的公鑰進行校驗;支付寶返回數(shù)據(jù)時,使用支付寶的密鑰對待簽名數(shù)據(jù)進行DSA簽名,合作伙伴使用支付寶的公鑰進行校驗。DSA公私鑰可以使用OpenSSL生成,如下:1 生成DSA參數(shù)openssl> dsaparam -out dsa

36、_param.pem 10242 生成私鑰openssl>gendsa -out dsa_private_key.pem dsa_param.pem3 生成公鑰openssl> dsa -in dsa_private_key.pem -pubout -out dsa_public_key.pem RSA算法構造定義:RSA也是一種非對稱算法,同時,它還是一種加密算法,使用方法跟DSA簽名算法類似1 RSA密鑰生成命令生成RSA私鑰openssl> genrsa -out rsa_private_key.pem 1024生成RSA公鑰openssl> rsa

37、 -in rsa_private_key.pem -pubout -out rsa_public_key.pem將RSA私鑰轉(zhuǎn)換成PKCS8格式openssl> pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt 2 簽名/驗簽名命令RSA簽名openssl> sha1 -sign rsa_private_key.pem -out rsasign.bin plaintext.txtRSA驗簽名openssl> sha1 -verify rsa_public_key.pem -signat

38、ure rsasign.bin plaintext.txt4.3 公用枚舉表4.3.1 通知返回結果枚舉 返回結果結果說明success處理成功,結束發(fā)送fail處理失敗,重新發(fā)送(支付寶平臺系統(tǒng)會在24小時內(nèi)分6-10次發(fā)送客戶信息,直到接受到外部商戶發(fā)送的success)注意:不能包含任何其他的HTML腳本語言,否則支付寶接受數(shù)據(jù)會收到影響4.3.2 通用交易狀態(tài)枚舉表A正常交易狀態(tài)枚舉:交易狀態(tài)列表值(變量值:trade_status)說明WAIT_BUYER_PAY交易創(chuàng)建TRADE_FINISHED支付成功,標準即時到賬成功狀態(tài)TRADE_SUCCESS支付成功,機票行業(yè)單筆退款成功

39、(沒有全部退完)TRADE_CLOSED交易關閉B退款交易狀態(tài)枚舉:狀態(tài)代碼(變量值:refund_status)狀態(tài)名稱REFUND_SUCCESS 退款成功REFUND_CLOSED退款關閉備注:如果在支付寶平臺操作退款,交易狀態(tài)(trade_status)會出現(xiàn)2中情況:1. 不是全額退款,交易成功狀態(tài)變成TRADE_SUCCESS,增加一個退款狀態(tài)refund_status= REFUND_SUCCESS2. 全額退款,交易成功狀態(tài)變成TRADE_CLOSED,增加一個退款狀態(tài)refund_status= REFUND_SUCCESS。4.3.3 銀行列表銀行簡碼銀行名稱ICBCBTB

40、中國工商銀行(B2B)ABCBTB中國農(nóng)業(yè)銀行(B2B)SPDBB2B上海浦東發(fā)展銀行(B2B)CCBB2B中國建設銀行(B2B)BOCB2C中國銀行ICBCB2C中國工商銀行CMB招商銀行CCB中國建設銀行ABC中國農(nóng)業(yè)銀行SPDB上海浦東發(fā)展銀行CIB興業(yè)銀行GDB廣東發(fā)展銀行SDB 深圳發(fā)展銀行CMBC中國民生銀行COMM交通銀行CITIC中信銀行HZCBB2C 杭州銀行CEBBANK中國光大銀行SHBANK上海銀行NBBANK 寧波銀行SPABANK平安銀行bjbank101北京農(nóng)村商業(yè)銀行備注:如果沒有需要網(wǎng)銀簡碼,可以詢問支付寶技術支持工程師,更多網(wǎng)銀

41、更新中。4.3.4 純借記卡銀行列表銀行簡碼銀行名稱CMB-DEBIT招商銀行CCB-DEBIT中國建設銀行ICBC-DEBIT中國工商銀行COMM-DEBIT交通銀行GDB-DEBIT廣東發(fā)展銀行BOC-DEBIT中國銀行CEB-DEBIT中國光大銀行SPDB-DEBIT上海浦東發(fā)展銀行PSBC-DEBIT中國郵政儲蓄銀行備注:其他銀行陸續(xù)增加中。4.3.5 信用卡大額銀行列表銀行簡碼銀行名稱icbc301中國工商銀行ccb301中國建設銀行cmb301招商銀行boc301中國銀行 comm301交通銀行gdb301廣東發(fā)展銀行 cib301興業(yè)銀行ceb301中國光大銀

42、行spabank301平安銀行citic302中信銀行spdb301浦發(fā)銀行shbank301上海銀行備注:其他銀行陸續(xù)增加中。4.3.6 訂單狀態(tài)列表訂單狀態(tài)表:訂單狀態(tài)值初始I成功S失敗F沖正P被沖正N4.4 FAQ(常見問題的的解答)1. 問:我運行程序后怎么一直報錯誤代碼:ILLEGAL_SIGN?答:如果一直報ILLEGAL_SIGN(簽名錯誤),請首先檢查程序中傳給支付寶的參數(shù)有沒有存在空值;然后再檢查subject和body有沒有特殊的字符。具體可以連接這個網(wǎng)址查詢:2. 問:怎么一直報HAS_NO_PRIVILEGE?答:報這個錯誤,說明您目前沒有使用該服務的權限。遇到這個錯誤:a.) 要確定您的合同是在生效期內(nèi)并且有這個服務(譬如:即時支付的服務)。b.)將出現(xiàn)錯誤的URL(地址欄的地址)粘貼出來,看看partner和service是不是這個對應的服務參數(shù)3. 問:我怎么接受不到支付寶返回的信息?答:如果沒有接收到支付寶返回的信息, A)return_url和notify_url的路徑 B)檢查并輸出sign、mysign和responseTxt的值;對于同步(return_url)返回是可見的并且在付款成功才會跳轉(zhuǎn),并且只跳轉(zhuǎn)一次,調(diào)試起來相對簡單;異步(notify_url)返回處理則需要在異步處理頁面做日志記錄或者將獲

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論