- 翻譯公司資訊
-
世聯(lián)翻譯公司如何電子系統(tǒng)“網(wǎng)頁(yè)支付接入與使用規(guī)則 ”中文翻譯
發(fā)布時(shí)間:2019-08-28 16:09 點(diǎn)擊:
世聯(lián)翻譯公司如何電子系統(tǒng)“網(wǎng)頁(yè)支付接入與使用規(guī)則 ”中文翻譯
手機(jī)網(wǎng)頁(yè)支付接入與使用規(guī)則手機(jī)網(wǎng)頁(yè)即時(shí)到賬授權(quán)接口(alipay.wap.trade.create.direct)手機(jī)網(wǎng)頁(yè)即時(shí)到賬交易接口(alipay.wap.auth.authandexecute)附錄文檔版本號(hào):1.0Alipay (China) Internet Technology Ltd. All right reserved手機(jī)網(wǎng)頁(yè)即時(shí)到賬接口附錄文檔1 Document Description1.1 Document Description本文檔是《手機(jī)網(wǎng)頁(yè)即時(shí)到賬接口》附錄文檔,它詳細(xì)解釋了在技術(shù)接入與使用過(guò)程中需要注意的地方,以幫助商戶避免風(fēng)險(xiǎn)產(chǎn)生。Please contact the related technology support if you have any questions after reading.1.2 Business termsTable 1-1 Business TermsTerms DescriptionDemand The process of transmitting the data requiring for delivery to theReturn Alipay will send feedbacks to the commercial user websites after Alipay processes them according to the obtained data.Sensitive words With sensitively–political tendency, tendency of violence, unhealthy or uncivilized words.2 Attribution of liabilityAll the rules involved in the document are the preventive measures against the main risks during the access and using process of interface. All the commercial users shall care about them. Please strictly follow the interface technological files (手機(jī)網(wǎng)頁(yè)即時(shí)到賬接口.pdf), example codes, and the access and using rules of this file(手機(jī)網(wǎng)頁(yè)支付接入與使用規(guī)則.pdf). Otherwise, they caused risks, assets loss or expanded cases shall be shouldered by the commercial users.3 Technology access rulesTable 3-1 Technological access rulesTypes Details ReasonsAccount No. Configured cooperator ID and safety checking key must be guaranteed matching with the signing information. Prevent abnormal using of interface or assets loss必須保護(hù)合作者身份ID、安全校驗(yàn)碼key、商戶的公私秘鑰、支付寶公鑰的隱私性 Prevent the signed account information being stolen, loss in capital and despitefully utilized by others測(cè)試完畢后,要把測(cè)試賬號(hào)立刻更換成簽約賬號(hào)。 使用測(cè)試賬號(hào)時(shí),手續(xù)費(fèi)按照3%扣除。Safety 商戶必須以DNS解析的方式訪問(wèn)支付寶接口,不要設(shè)置DNS cache,不要綁定支付寶IP。如果為了商戶自身安全必須綁定支付寶IP時(shí),必須向支付寶的技術(shù)支持人員備案。 Once the IP address changes, the commercial address cannot request or access Alipay so that commercial user business cannot be used directly.組成 手機(jī)網(wǎng)頁(yè)支付產(chǎn)品由手機(jī)網(wǎng)頁(yè)即時(shí)到賬授權(quán)接口(alipay.wap.trade.create.direct)、手機(jī)網(wǎng)頁(yè)即時(shí)到賬交易接口(alipay.wap.auth.authandexecute)兩個(gè)接口組成。 使用時(shí)少了其中任何一個(gè)接口,都無(wú)法正常使用該產(chǎn)品。必須先調(diào)用手機(jī)網(wǎng)頁(yè)即時(shí)到賬授權(quán)接口(alipay.wap.trade.create.direct)獲得授權(quán)令牌,再調(diào)用手機(jī)網(wǎng)頁(yè)即時(shí)到賬交易接口(alipay.wap.auth.authandexecute)完成付款。 手機(jī)網(wǎng)頁(yè)即時(shí)到賬交易接口(alipay.wap.auth.authandexecute)依賴授權(quán)令牌(request_token)才能完成付款,而該授權(quán)令牌需要通過(guò)手機(jī)網(wǎng)頁(yè)即時(shí)到賬授權(quán)接口(alipay.wap.trade.create.direct)獲取。請(qǐng)求時(shí)簽名邏輯 All the required parameters shall be sequenced as per the format of parameter name=parameter value in the order of lexicographic order of first character. The character strings to be signed shall be spliced according to the rules of “Parameter name 1=Parameter value 1& Parameter name 2= Parameter value 2&….& Parameter value N= Parameter value N”. 避免報(bào)異常錯(cuò)誤,如:簽名不正確。When signing the parameters for the request, these parameters must originate from the request parameter list and remove the parameters sign in the list. 避免報(bào)異常錯(cuò)誤,如:簽名不正確。When signing the requested parameters, as for the parameters of “NULL” in the request parameter list, if selecting to use them, then the parameter value shall not be NULL or NULL value. 避免報(bào)異常錯(cuò)誤,各種錯(cuò)誤碼需參考錯(cuò)誤碼列表。Parameter setting Among the request parameter list, the parameters “Not FULL” must be configured. Avoid abnormal using of interfaceAmong the variant parameters requiring multiple selection of NULL in the request parameter list, it is must to configure one at least. Avoid abnormal using of interfaceIt is mandatory to configure as per the format of all parameters in the request parameter list. Avoid abnormal using of interfaceIt is mandatory to set up the request parameters “_input_charset” (encoding format). That is, the parameter shall not be NULL and this parameter shall be added into the signature operation.而且只能設(shè)置其值為utf-8,即本產(chǎn)品不支持GBK編碼格式。 避免報(bào)異常錯(cuò)誤,如:簽名不正確。seller_email是收款時(shí)的支付寶賬號(hào),需要與partner對(duì)應(yīng)的支付寶賬號(hào)為同一個(gè),也就是說(shuō)收款支付寶賬號(hào)必須是簽約時(shí)的支付寶賬號(hào)。 避免簽約支付寶賬號(hào)出現(xiàn)資金受損的可能簽名方式僅支持RSA、MD5兩種。如果要使用RSA簽名時(shí),簽名方式要設(shè)置成0001。 避免簽名不成功參數(shù)req_data中節(jié)點(diǎn)信息都須按照XML節(jié)點(diǎn)格式設(shè)置,無(wú)順序要求。不可空的節(jié)點(diǎn)信息必須設(shè)置?煽盏墓(jié)點(diǎn)支持不設(shè)置,也支持設(shè)置了但是空值。 如果設(shè)置不符合XML格式或不可空節(jié)點(diǎn)信息設(shè)置疏漏,請(qǐng)求時(shí)不會(huì)報(bào)錯(cuò),但是返回時(shí)支付寶會(huì)提示0004,req_data illegal。Interface structure The gateway of Alipay must be used to send request message to the Alipay as per the following request gateway:http://wappaygw.alipay.com/service/rest.htm。 Avoid being angled by phishing website.發(fā)送給支付寶的請(qǐng)求,請(qǐng)求參數(shù)不僅包含參與簽名的參數(shù),還包含參數(shù)sign。 避免報(bào)異常錯(cuò)誤,如:簽名不正確。發(fā)送給支付寶的請(qǐng)求,如果使用form表單傳輸,需要按照以下要求編寫:action的值必須為“http://wappaygw.alipay.com/service/rest.htm?_input_charset=該值”,如: http://wappaygw.alipay.com/service/rest.htm?_input_charset=utf-8。 不允許寫成完整的請(qǐng)求鏈接地址,即禁止http://wappaygw.alipay.com/service/rest.htm?后帶有所有要請(qǐng)求給支付寶的請(qǐng)求參數(shù)數(shù)據(jù);<form>與</form>之間需包含所有要請(qǐng)求給支付寶的參數(shù),且每個(gè)參數(shù)的格式為<input type="hidden" name="參數(shù)名" value="參數(shù)值" />;在眾多請(qǐng)求參數(shù)中,請(qǐng)求參數(shù)_input_charset(編碼格式)必須存在于form表單中,即form表單中必須含有<input type="hidden" name="_input_charset" value="參數(shù)值">;<form>與</form>之間包含的數(shù)據(jù)只允許是要請(qǐng)求給支付寶的參數(shù),禁止出現(xiàn)商戶自行命名,不在接口技術(shù)文檔請(qǐng)求參數(shù)列表中的其他數(shù)據(jù);form表單的method屬性,可自行選擇get、post兩種。但是,手機(jī)網(wǎng)頁(yè)即時(shí)到賬交易接口(alipay.wap.auth.authandexecute)只支持get方式傳輸。避免請(qǐng)求支付寶時(shí)報(bào)錯(cuò),錯(cuò)誤碼為簽名不正確;手機(jī)網(wǎng)頁(yè)即時(shí)到賬交易接口(alipay.wap.auth.authandexecute)如果用POST提交,頁(yè)面顯示會(huì)為空白。 專業(yè)翻譯公司Data transmission It is a mandatory to us https protocol. Avoid abnormal using of interface 專業(yè)翻譯公司在手機(jī)網(wǎng)頁(yè)即時(shí)到賬授權(quán)接口(alipay.wap.trade.create.direct)中,建議使用模擬遠(yuǎn)程傳輸方式提交信息及獲取返回信息。并且,提交方式僅支持POST。 避免報(bào)異常錯(cuò)誤(如:簽名不正確),得不到授權(quán)令牌。在手機(jī)網(wǎng)頁(yè)即時(shí)到賬交易接口(alipay.wap.auth.authandexecute)中,提交方式僅支持GET。 如果用POST提交,頁(yè)面顯示會(huì)為空白。Notifying returning verification 在手機(jī)網(wǎng)頁(yè)即時(shí)到賬交易接口(alipay.wap.auth.authandexecute)頁(yè)面跳轉(zhuǎn)同步通知中,在對(duì)通知的參數(shù)做簽名時(shí),這些參數(shù)必須來(lái)源于支付寶通知回來(lái)的參數(shù),并且除去列表中的參數(shù)sign,先對(duì)這些參數(shù)根據(jù)“參數(shù)名=參數(shù)值”的格式,由字母a到z的順序進(jìn)行排序,再依照“參數(shù)名1=參數(shù)值1&參數(shù)名2=參數(shù)值2&…&參數(shù)名N=參數(shù)值N”的規(guī)則進(jìn)行拼接,得到的簽名結(jié)果與獲取到的參數(shù)sign值做比較。 驗(yàn)證返回的簽名在手機(jī)網(wǎng)頁(yè)即時(shí)到賬交易接口(alipay.wap.auth.authandexecute)服務(wù)器異步通知中,需要XML解析明文狀態(tài)下的參數(shù)notify_data,獲得節(jié)點(diǎn)notify_id的值。 避免無(wú)法正常獲得通知ID(notify_id),導(dǎo)致校驗(yàn)是否是支付寶發(fā)送的驗(yàn)證失敗。在手機(jī)網(wǎng)頁(yè)即時(shí)到賬交易接口(alipay.wap.auth.authandexecute)服務(wù)器異步通知中,如果有設(shè)置服務(wù)器異步通知路徑,則必須使用獲取到的參數(shù)notify_id再次請(qǐng)求支付寶,獲取是否是支付寶發(fā)送的驗(yàn)證結(jié)果。該請(qǐng)求鏈接是:https://mapi.alipay.com/gateway.do?partner=合作者身份ID¬ify_id=通知ID的值。 驗(yàn)證是否是支付寶發(fā)來(lái)的請(qǐng)求在手機(jī)網(wǎng)頁(yè)即時(shí)到賬交易接口(alipay.wap.auth.authandexecute)服務(wù)器異步通知中,對(duì)明文狀態(tài)下的服務(wù)器異步通知參數(shù)(除去參數(shù)sign)不需要先排序,而是直接依照通知返回的參數(shù)順序,以“參數(shù)名1=參數(shù)值1&參數(shù)名2=參數(shù)值2&…&參數(shù)名N=參數(shù)值N”的規(guī)則進(jìn)行拼接,從而得到待簽名字符串。 避免驗(yàn)證簽名不正確返回?cái)?shù)據(jù)處理 支付寶主動(dòng)發(fā)送通知,當(dāng)商戶接收到通知數(shù)據(jù)后必須給支付寶返回“success”字符串,不允許返回其他多余字符。 如果商戶返回給支付寶的信息不是“success”,支付寶最多重復(fù)發(fā)送7次通知。必須保證設(shè)置的通知路徑互聯(lián)網(wǎng)上能訪問(wèn)得到,且訪問(wèn)順暢。 避免接收不到支付寶發(fā)送的通知在手機(jī)網(wǎng)頁(yè)即時(shí)到賬授權(quán)接口(alipay.wap.trade.create.direct)中,需要先對(duì)獲得的返回?cái)?shù)據(jù)做解碼(URLDECODE),再對(duì)這些數(shù)據(jù)做字符串切割,獲得參數(shù)res_data的值。此時(shí),如果該接口設(shè)置的簽名方式sec_id是0001(RSA),還需要對(duì)參數(shù)res_data做RSA解密,簽名方式sec_id是MD5時(shí)不需要該步驟。最后對(duì)變成明文的參數(shù)res_data的值做XML解析,獲得授權(quán)令牌request_token。 返回?cái)?shù)據(jù)是一串編碼過(guò)的字符串。需要對(duì)字符串做解碼(URLDECODE)、切割、RSA解密、XML解析等步驟。其中任何一步出現(xiàn)問(wèn)題,則無(wú)法獲得授權(quán)令牌request_token。在手機(jī)網(wǎng)頁(yè)即時(shí)到賬交易接口(alipay.wap.auth.authandexecute)頁(yè)面跳轉(zhuǎn)同步通知中,可直接用GET方式獲得返回?cái)?shù)據(jù)。 頁(yè)面跳轉(zhuǎn)同步通知以純URL帶參數(shù)的模式返回信息在手機(jī)網(wǎng)頁(yè)即時(shí)到賬交易接口(alipay.wap.auth.authandexecute)服務(wù)器異步通知中: 如果簽名方式sec_id設(shè)置的是0001(RSA),則需要先對(duì)參數(shù)notify_data做RSA解密獲得明文; 如果簽名方式sec_id設(shè)置的是MD5,則不需要解密。當(dāng)簽名方式是0001(RSA)時(shí),參數(shù)notify_data是密文狀態(tài),需要解密。在手機(jī)網(wǎng)頁(yè)即時(shí)到賬交易接口(alipay.wap.auth.authandexecute)服務(wù)器異步通知中,如果要獲得需要的信息,還需要對(duì)參數(shù)notify_data做XML解析獲得子節(jié)點(diǎn)信息。 參數(shù)notify_data是XML格式的字符串必須對(duì)返回的數(shù)據(jù)進(jìn)行處理。 以便商戶能夠了解接口的使用情況,以及進(jìn)行商戶的后續(xù)業(yè)務(wù)操作。在服務(wù)器異步通知頁(yè)面文件中,需保證商戶的所有業(yè)務(wù)全部運(yùn)行完成,才能執(zhí)行打印success的動(dòng)作。 避免異步通知不正常,如收不到通知或業(yè)務(wù)處理沒(méi)有完成卻告訴支付寶系統(tǒng)已經(jīng)處理完成。It is suggested each refunding operation shall be recorded to the log operation database of the commercial user website. It is used to check or trail after the business processing conditions when necessary.Interface environment Interface cannot be embedded in “iframe” framework. Avoid abnormal using of interfaceError code processing 請(qǐng)求出錯(cuò)啦 例如seller_account_name不是郵箱格式、請(qǐng)求參數(shù)缺失等請(qǐng)求參數(shù)不符合設(shè)置規(guī)則。為保障用戶賬戶安全,禁止非手機(jī)訪問(wèn)。 該筆交易不是在真實(shí)手機(jī)上創(chuàng)建或執(zhí)行的。該類情況一般出現(xiàn)在商戶測(cè)試階段,通過(guò)pc瀏覽器來(lái)請(qǐng)求支付寶時(shí)報(bào)錯(cuò)。Automatically formulated interface code rules If code illustrations provided by Alipay are not used, then it is mandatory to process chapters and the document technology interface rules, interface using rules and testing flow rules to formulate the interface code meeting the commercial user website project according to the signature mechanism and notification returning data in technological document. Avoid abnormal using of interface4 Interface access rulesTable 4-1 Interface using rulesType Standardization Reasons使用時(shí) 對(duì)同一筆還沒(méi)創(chuàng)建支付寶交易的商戶訂單,支持重復(fù)調(diào)用手機(jī)網(wǎng)頁(yè)即時(shí)到賬授權(quán)接口(alipay.wap.trade.create.direct),但每一次的req_id值必須保證唯一。 每次請(qǐng)求req_id的值須保證唯一對(duì)同一筆還沒(méi)創(chuàng)建支付寶交易的商戶訂單,支持重復(fù)調(diào)用手機(jī)網(wǎng)頁(yè)即時(shí)到賬授權(quán)接口(alipay.wap.trade.create.direct),且每次返回的授權(quán)令牌都有效,有效時(shí)間為24小時(shí)。 當(dāng)支付寶系統(tǒng)中還沒(méi)有為商戶的某筆訂單創(chuàng)建支付寶交易時(shí),商戶方可以對(duì)該筆訂單重復(fù)調(diào)用手機(jī)網(wǎng)頁(yè)即時(shí)到賬授權(quán)接口(alipay.wap.trade.create.direct),但每次返回的授權(quán)令牌不會(huì)相同。手機(jī)網(wǎng)頁(yè)即時(shí)到賬交易接口(alipay.wap.auth.authandexecute)支持重復(fù)調(diào)用,前提是交易基本信息(買家、賣家、交易金額、超時(shí)時(shí)間、商品名稱等)在多次調(diào)用中保持一致,且交易尚未完成支付。 防止支付失敗手機(jī)網(wǎng)頁(yè)即時(shí)到賬交易接口(alipay.wap.auth.authandexecute)重復(fù)調(diào)用時(shí),也支持同一個(gè)token(授權(quán)令牌)重復(fù)調(diào)用,但需要保證該token(授權(quán)令牌)對(duì)應(yīng)的交易的買家尚未確定,即該筆交易還未在支付寶中創(chuàng)建。 避免報(bào)“買家不符”的錯(cuò)誤填寫買家支付寶賬號(hào)時(shí),不能與賣家的支付寶賬號(hào)相同。 避免報(bào)錯(cuò),如錯(cuò)誤碼:創(chuàng)建交易失敗。客戶端內(nèi)嵌webview方式實(shí)現(xiàn),需要開(kāi)啟js以及css設(shè)置。 避免出現(xiàn)因內(nèi)嵌引起的兼容性或者界面布局異常、亂碼等問(wèn)題。在請(qǐng)求參數(shù)中不能存在影響請(qǐng)求格式的特殊字符,如:url、xml格式的特殊字符等。 避免交易失敗建議商戶的業(yè)務(wù)判斷依據(jù)以notify_url(服務(wù)器異步通知)為準(zhǔn),call_back_url頁(yè)面文件只做界面展示用途。 避免商戶訂單數(shù)據(jù)與支付寶交易數(shù)據(jù)不同步本接口支持的眾多支付通道中,儲(chǔ)蓄卡支付和信用卡支付一旦進(jìn)入手機(jī)網(wǎng)銀系統(tǒng)頁(yè)面,支付寶將無(wú)法控制訂單的支付效率問(wèn)題。 各網(wǎng)銀系統(tǒng)的運(yùn)作及各網(wǎng)銀與支付寶間的交互因?yàn)榫W(wǎng)絡(luò)或其他因素導(dǎo)致支付時(shí)的速度快慢不一業(yè)務(wù)應(yīng)用注意事項(xiàng) 支付寶支付手續(xù)費(fèi)扣取模式分為兩種: 實(shí)時(shí)扣費(fèi)模式:一般都是收款賬戶扣費(fèi),或采用合同指定固定扣款支付寶賬戶扣費(fèi); 月結(jié)手續(xù)費(fèi)模式:實(shí)時(shí)交易不扣手續(xù)費(fèi),月底賬單統(tǒng)一結(jié)算。實(shí)時(shí)扣費(fèi)時(shí),在扣費(fèi)支付寶賬號(hào)的賬務(wù)明細(xì)中可馬上查到扣費(fèi)記錄;但月結(jié)模式下,則不會(huì)查到。在集成接口的過(guò)程中,如果商戶使用seller_email作為收款賬戶,則當(dāng)需要修改該支付寶賬戶名稱時(shí),商戶必須在程序中做相應(yīng)修改。 避免支付過(guò)程中會(huì)出現(xiàn)賣家賬戶不存在的錯(cuò)誤測(cè)試時(shí) 調(diào)試階段時(shí),建議使用1分錢(0.01元)進(jìn)行測(cè)試 降低測(cè)試成本Network Guarantee network smooth 防止支付時(shí)或支付完成后的訂單同步出現(xiàn)各類異常5 集成流程詳解5.1 接入準(zhǔn)備1. 確認(rèn)是否已開(kāi)通手機(jī)網(wǎng)頁(yè)支付功能使用簽約支付寶賬號(hào)登錄https://b.alipay.com/order/serviceIndex.htm,訂單狀態(tài)為“已完結(jié)”表示手機(jī)網(wǎng)頁(yè)支付權(quán)限已開(kāi)通,如下圖所示。圖5-1 查詢訂單狀態(tài)如果無(wú)法確認(rèn),建議聯(lián)系與支付寶簽約協(xié)議時(shí)的貴公司業(yè)務(wù)人員。2. 確認(rèn)簽約支付寶賬號(hào)集成時(shí)需要使用簽約的支付寶賬號(hào)相關(guān)信息,包括:支付寶登錄賬號(hào)、合作者身份ID(PID)、交易安全校驗(yàn)碼(KEY)。獲得方法請(qǐng)參見(jiàn)“7.1 如何獲得PID與密鑰”。3. 確認(rèn)網(wǎng)站的開(kāi)發(fā)語(yǔ)言開(kāi)發(fā)語(yǔ)言是用指定的一種語(yǔ)言來(lái)開(kāi)發(fā)網(wǎng)站。支付寶提供的代碼示例目前包含PHP、ASP.NET、JAVA三種。4. 確認(rèn)網(wǎng)站編碼格式查詢網(wǎng)站使用的是何種編碼格式,可通過(guò)在網(wǎng)站網(wǎng)頁(yè)上點(diǎn)擊右鍵,找到“編碼”,打開(kāi)擴(kuò)展箭頭后查看,默認(rèn)選中的編碼即為網(wǎng)站的編碼格式。支付寶提供的代碼示例目前僅包含UTF-8一種。5. 確認(rèn)網(wǎng)站簽名方式簽名方式指的是對(duì)字符串做加密與解密時(shí)的方法。支付寶提供的代碼示例目前包含RSA、MD5兩種。6. 確認(rèn)開(kāi)發(fā)環(huán)境 本機(jī)電腦調(diào)試環(huán)境各開(kāi)發(fā)語(yǔ)言對(duì)應(yīng)的開(kāi)發(fā)環(huán)境、調(diào)試工具等。 服務(wù)器調(diào)試環(huán)境– 服務(wù)器需要支持各開(kāi)發(fā)語(yǔ)言對(duì)應(yīng)的環(huán)境,如:支持PHP開(kāi)發(fā)語(yǔ)言的SSL服務(wù)、CURL服務(wù)等。– 能夠把本地文件上傳到服務(wù)器上的通道與權(quán)限,如:FTP,SFTP傳輸。5.2 集成5.2.1 接口代碼示例配置運(yùn)行解壓下載到的接口資料壓縮文件(文件名是WS_WAP_PAYWAP.zip),根據(jù)商戶自身情況選擇JAVA(文件夾名為WS_WAP_PAYWAP-JAVA-UTF-8)、PHP(文件夾名為WS_WAP_PAYWAP-PHP-UTF-8)、C#(文件夾名為WS_WAP_PAYWAP-CSHARP-UTF-8)三種開(kāi)發(fā)語(yǔ)言代碼示例文件夾中的一個(gè)。1. JAVA配置流程(以eclipse為例)步驟1: 導(dǎo)入代碼啟動(dòng)JAVA開(kāi)發(fā)軟件,把“WS_WAP_PAYWAP-JAVA-UTF-8”文件夾中的“src\com”文件夾、“WebRoot\mages”文件夾、“WebRoot\log”文件夾、“WebRoot\WEB-INF\lib”文件夾、“WebRoot\alipayapi.jsp”、“WebRoot\call_back_url.jsp”、“WebRoot\notify_url.jsp”全部導(dǎo)入到開(kāi)發(fā)環(huán)境中。“src\com”文件夾中的文件是類文件,無(wú)法與支付寶PC端的其他接口混用。步驟2: 配置基本信息在JAVA開(kāi)發(fā)環(huán)境中,打開(kāi)“src\com\alipay\config”類目下“AlipayConfig.java”文件,配置partner(合作身份者ID)、key(交易安全校驗(yàn)碼)、private_key(商戶私鑰)、public_key(支付寶公鑰)、sign_type(簽名類型)等基本信息參數(shù)。表5-1 JAVA基本信息配置參數(shù) 含義partner 合作身份者ID,以2088開(kāi)頭由16位純數(shù)字組成的字符串。請(qǐng)參考“7.1 如何獲得PID與密鑰”。key 交易安全檢驗(yàn)碼,由數(shù)字和字母組成的32位字符串。當(dāng)sign_type設(shè)置為MD5時(shí),該參數(shù)設(shè)置才有效。請(qǐng)參考“7.1 如何獲得PID與密鑰”。private_key 商戶方的私鑰。當(dāng)sign_type設(shè)置為0001時(shí),該參數(shù)設(shè)置才有效。請(qǐng)參考“7.2 RSA密鑰生成與使用”。public_key 支付寶的公鑰。當(dāng)sign_type設(shè)置為0001時(shí),該參數(shù)設(shè)置才有效。請(qǐng)參考“7.2 RSA密鑰生成與使用”。sign_type 簽名方式。在手機(jī)網(wǎng)頁(yè)支付的接口中僅支持兩種簽名方式,MD5和RSA。對(duì)該參數(shù)設(shè)置的值分別是MD5、0001。input_charset 字符編碼格式。在手機(jī)網(wǎng)頁(yè)支付的接口中僅支持utf-8。無(wú)需修改。步驟3: 配置業(yè)務(wù)信息打開(kāi)“alipayapi.jsp”文件。配置req_id(請(qǐng)求號(hào))、notify_url(服務(wù)器異步通知頁(yè)面路徑)、call_back_url(頁(yè)面跳轉(zhuǎn)同步通知頁(yè)面路徑)、seller_email(賣家支付寶帳戶)、out_trade_no(商戶訂單號(hào))、subject(訂單名稱)、total_fee(付款金額)這幾個(gè)常用業(yè)務(wù)參數(shù)信息。請(qǐng)參考“7.3 業(yè)務(wù)數(shù)據(jù)傳遞”和“7.4 如何增加擴(kuò)展業(yè)務(wù)參數(shù)”。步驟4: 編寫同步通知業(yè)務(wù)邏輯打開(kāi)“call_back_url.jsp”文件。在注釋指定位置“//請(qǐng)?jiān)谶@里加上商戶的業(yè)務(wù)邏輯程序代碼”寫入商戶的業(yè)務(wù)邏輯代碼。請(qǐng)參考“7.5 如何更新訂單”。步驟5: 編寫異步通知業(yè)務(wù)邏輯打開(kāi)“notify_url.jsp”文件(notify_url.jsp需保證無(wú)任何HTML代碼)。在注釋指定位置“//請(qǐng)?jiān)谶@里加上商戶的業(yè)務(wù)邏輯程序代碼”寫入商戶的業(yè)務(wù)邏輯代碼。請(qǐng)參考“7.5 如何更新訂單”。需要注意的是,簽名方式為0001時(shí),需要先解密,MD5時(shí)則不需要。解密后,需要XML解析方可獲取參數(shù)信息。2. PHP配置流程步驟1: 導(dǎo)入代碼啟動(dòng)PHP開(kāi)發(fā)軟件,把“WS_WAP_PAYWAP-PHP-UTF-8”文件夾中除去“readme.txt”與“openssl”文件夾外的其他所有文件全部導(dǎo)入到開(kāi)發(fā)環(huán)境中。“lib”文件夾中的文件是類文件,無(wú)法與支付寶PC端的其他接口混用。步驟2: 配置基本信息在PHP開(kāi)發(fā)環(huán)境中,打開(kāi)“alipay.config.php”文件,配置partner(合作身份者ID)、key(交易安全校驗(yàn)碼)、private_key(商戶私鑰)、public_key(支付寶公鑰)、sign_type(簽名類型)等基本信息參數(shù)。表5-2 PHP基本信息配置參數(shù) 解釋partner 合作身份者ID,以2088開(kāi)頭由16位純數(shù)字組成的字符串。請(qǐng)參考“7.1 如何獲得PID與密鑰”。key 交易安全檢驗(yàn)碼,由數(shù)字和字母組成的32位字符串。當(dāng)sign_type設(shè)置為MD5時(shí),該參數(shù)設(shè)置才有效。請(qǐng)參考“7.1 如何獲得PID與密鑰”。private_key 商戶方的私鑰。當(dāng)sign_type設(shè)置為0001時(shí),該參數(shù)設(shè)置才有效。請(qǐng)參考“7.2 RSA密鑰生成與使用”。public_key 支付寶的公鑰。當(dāng)sign_type設(shè)置為0001時(shí),該參數(shù)設(shè)置才有效。請(qǐng)參考“7.2 RSA密鑰生成與使用”。sign_type 簽名方式。在手機(jī)網(wǎng)頁(yè)支付的接口中僅支持兩種簽名方式,MD5和RSA。對(duì)該參數(shù)設(shè)置的值分別是MD5、0001。input_charset 字符編碼格式。在手機(jī)網(wǎng)頁(yè)支付的接口中僅支持utf-8。無(wú)需修改。cacert ca證書(shū)路徑地址,用于curl中ssl校驗(yàn)。需要保證cacert.pem文件在當(dāng)前文件夾目錄中。無(wú)需修改。transport 訪問(wèn)模式,根據(jù)自己的服務(wù)器是否支持ssl訪問(wèn),若支持請(qǐng)選擇https;若不支持請(qǐng)選擇http。該參數(shù)只關(guān)聯(lián)到同步通知或異步通知時(shí),驗(yàn)證是否是支付寶發(fā)來(lái)的請(qǐng)求功能中的支付寶請(qǐng)求地址。無(wú)需修改。步驟3: 配置業(yè)務(wù)信息打開(kāi)“alipayapi.php”文件。配置req_id(請(qǐng)求號(hào))、notify_url(服務(wù)器異步通知頁(yè)面路徑)、call_back_url(頁(yè)面跳轉(zhuǎn)同步通知頁(yè)面路徑)、seller_email(賣家支付寶帳戶)、out_trade_no(商戶訂單號(hào))、subject(訂單名稱)、total_fee(付款金額)這幾個(gè)常用業(yè)務(wù)參數(shù)信息。請(qǐng)參考“7.3 業(yè)務(wù)數(shù)據(jù)傳遞”和“7.4 如何增加擴(kuò)展業(yè)務(wù)參數(shù)”。步驟4: 編寫同步通知業(yè)務(wù)邏輯打開(kāi)“call_back_url.php”文件。在注釋指定位置“//請(qǐng)?jiān)谶@里加上商戶的業(yè)務(wù)邏輯程序代碼”寫入商戶的業(yè)務(wù)邏輯代碼。請(qǐng)參考“7.5 如何更新訂單”。步驟5: 編寫異步通知業(yè)務(wù)邏輯打開(kāi)“notify_url.php”文件(notify_url.php需保證無(wú)任何HTML代碼)。在注釋指定位置“//請(qǐng)?jiān)谶@里加上商戶的業(yè)務(wù)邏輯程序代碼”寫入商戶的業(yè)務(wù)邏輯代碼。請(qǐng)參考“7.5 如何更新訂單”。需要注意的是,簽名方式為0001時(shí),需要先解密,MD5時(shí)則不需要。解密后,需要XML解析方可獲取參數(shù)信息。3. ASP.NET(C#)配置流程步驟1: 導(dǎo)入代碼啟動(dòng).NET開(kāi)發(fā)軟件,把“WS_WAP_PAYWAP-CSHARP-UTF-8”文件夾中除去“readme.txt”與“Web.Config”外的其他所有文件全部導(dǎo)入到開(kāi)發(fā)環(huán)境中。為防止占用“default.aspx”的名稱,可以把“default.aspx”與“default.aspx.cs”兩個(gè)文件中的核心代碼拷貝到新頁(yè)面文件中去。“app_code”文件夾中的文件是類文件,無(wú)法與支付寶PC端的其他接口混用。步驟2: 配置基本信息在.NET開(kāi)發(fā)環(huán)境中,打開(kāi)“app_code”類目下的“AlipayConfig.cs”文件,配置partner(合作身份者ID)、key(交易安全校驗(yàn)碼)、private_key(商戶私鑰)、public_key(支付寶公鑰)、sign_type(簽名類型)等基本信息參數(shù)。表5-3 ASP.NET(C#)基本信息配置參數(shù) 解釋partner 合作身份者ID,以2088開(kāi)頭由16位純數(shù)字組成的字符串。請(qǐng)參考“7.1 如何獲得PID與密鑰”。key 交易安全檢驗(yàn)碼,由數(shù)字和字母組成的32位字符串。當(dāng)sign_type設(shè)置為MD5時(shí),該參數(shù)設(shè)置才有效。請(qǐng)參考“7.1 如何獲得PID與密鑰”。private_key 商戶方的私鑰。當(dāng)sign_type設(shè)置為0001時(shí),該參數(shù)設(shè)置才有效。請(qǐng)參考“7.2 RSA密鑰生成與使用”。public_key 支付寶的公鑰。當(dāng)sign_type設(shè)置為0001時(shí),該參數(shù)設(shè)置才有效。請(qǐng)參考“7.2 RSA密鑰生成與使用”。sign_type 簽名方式。在手機(jī)網(wǎng)頁(yè)支付的接口中僅支持兩種簽名方式,MD5和RSA。對(duì)該參數(shù)設(shè)置的值分別是MD5、0001。input_charset 字符編碼格式。在手機(jī)網(wǎng)頁(yè)支付的接口中僅支持utf-8。無(wú)需修改。步驟3: 配置業(yè)務(wù)信息打開(kāi)“default.aspx.cs”文件。配置req_id(請(qǐng)求號(hào))、notify_url(服務(wù)器異步通知頁(yè)面路徑)、call_back_url(頁(yè)面跳轉(zhuǎn)同步通知頁(yè)面路徑)、seller_email(賣家支付寶帳戶)、out_trade_no(商戶訂單號(hào))、subject(訂單名稱)、total_fee(付款金額)這幾個(gè)常用業(yè)務(wù)參數(shù)信息。請(qǐng)參考“7.3 業(yè)務(wù)數(shù)據(jù)傳遞”和“7.4 如何增加擴(kuò)展業(yè)務(wù)參數(shù)”。步驟4: 編寫同步通知業(yè)務(wù)邏輯打開(kāi)“call_back_url.aspx”、“call_back_url.aspx.cs”文件。call_back_url.aspx為前端頁(yè)面可顯示一些信息供用戶查看,call_back_url.aspx.cs為后臺(tái)業(yè)務(wù)代碼編寫處。在注釋指定位置“//請(qǐng)?jiān)谶@里加上商戶的業(yè)務(wù)邏輯程序代碼”寫入商戶的業(yè)務(wù)邏輯代碼。請(qǐng)參考“7.5 如何更新訂單”。步驟5: 編寫異步通知業(yè)務(wù)邏輯打開(kāi)“notify_url.aspx.cs”文件。notify_url.aspx需保證無(wú)任何HTML代碼,notify_url.aspx.cs為后臺(tái)業(yè)務(wù)代碼編寫處。在注釋指定位置“//請(qǐng)?jiān)谶@里加上商戶的業(yè)務(wù)邏輯程序代碼”寫入商戶的業(yè)務(wù)邏輯代碼。請(qǐng)參考“7.5 如何更新訂單”。需要注意的是,簽名方式為0001時(shí),需要先解密,MD5時(shí)則不需要。解密后,需要XML解析方可獲取參數(shù)信息。5.2.2 接口代碼示例運(yùn)行邏輯詳解1. JAVA(以eclipse為例)步驟1: 商戶為手機(jī)網(wǎng)頁(yè)即時(shí)到賬授權(quán)接口(alipay.wap.trade.create.direct)的請(qǐng)求參數(shù)配置好數(shù)據(jù)后,組裝進(jìn)數(shù)組sParaTempToken中,再對(duì)該數(shù)組做空值過(guò)濾(調(diào)用AlipayCore類中的paraFilter函數(shù))。{req_data=<direct_trade_create_req><notify_url>http://www.xxx.com/WS_WAP_PAYWAP-JAVA-UTF-8/notify_url.jsp</notify_url><call_back_url>http://127.0.0.1:8080/WS_WAP_PAYWAP-JAVA-UTF-8/call_back_url.jsp</call_back_url><seller_account_name>alipayrisk10@alipay.com</seller_account_name><out_trade_no>cs201306170001</out_trade_no><subject>測(cè)試</subject><total_fee>0.01</total_fee></direct_trade_create_req>, service=alipay.wap.trade.create.direct, sec_id=0001, partner=2088501624560335, _input_charset=utf-8, req_id=201306170001, v=2.0, format=xml}步驟2: 對(duì)該數(shù)組做參數(shù)名首字母升序的排序動(dòng)作,此時(shí)的數(shù)組為待簽名數(shù)組,并把待簽名數(shù)組轉(zhuǎn)變成待簽名字符串(調(diào)用AlipayCore類中的createLinkString函數(shù)),排序規(guī)則請(qǐng)參見(jiàn)“3 技術(shù)接入規(guī)則”中的“請(qǐng)求時(shí)簽名邏輯”。_input_charset=utf-8&format=xml&partner=2088501624560335&req_data=<direct_trade_create_req><notify_url>http://www.xxx.com/WS_WAP_PAYWAP-JAVA-UTF-8/notify_url.jsp</notify_url><call_back_url>http://127.0.0.1:8080/WS_WAP_PAYWAP-JAVA-UTF-8/call_back_url.jsp</call_back_url><seller_account_name>alipayrisk10@alipay.com</seller_account_name><out_trade_no>cs201306170001</out_trade_no><subject>測(cè)試</subject><total_fee>0.01</total_fee></direct_trade_create_req>&req_id=201306170001&sec_id=0001&service=alipay.wap.trade.create.direct&v=2.0步驟3:對(duì)該字符串做簽名(調(diào)用AlipaySubmit類中的buildRequestMysign函數(shù)),規(guī)則參見(jiàn)“3 技術(shù)接入規(guī)則”中的“請(qǐng)求時(shí)簽名邏輯”。O8DH9HG2yRkbUrIz0jtKaPZRcWqqgcuGEtI6576Yibh60iX7azXTq2D4ZYWaX16kBy8MNSE4PBuPcrxe66kQW/Ufhoa/f+0jeUx5RC3/A0as+/vOOCmQnO0VTyRTp2DHLvcL3k9EKow6FsFuQHZPpHsQnzzRUSlQ+vGI+dPYUSU=步驟4: 把簽名結(jié)果賦值給參數(shù)sign,并把sign加入之前的待簽名數(shù)組中,此時(shí)得到的便是要請(qǐng)求給支付寶的全部數(shù)據(jù)。{req_data=<direct_trade_create_req><notify_url>http://www.xxx.com/WS_WAP_PAYWAP-JAVA-UTF-8/notify_url.jsp</notify_url><call_back_url>http://127.0.0.1:8080/WS_WAP_PAYWAP-JAVA-UTF-8/call_back_url.jsp</call_back_url><seller_account_name>alipayrisk10@alipay.com</seller_account_name><out_trade_no>cs201306170001</out_trade_no><subject>測(cè)試</subject><total_fee>0.01</total_fee></direct_trade_create_req>, service=alipay.wap.trade.create.direct, partner=2088501624560335, sec_id=0001, _input_charset=utf-8, req_id=201306170001, sign=O8DH9HG2yRkbUrIz0jtKaPZRcWqqgcuGEtI6576Yibh60iX7azXTq2D4ZYWaX16kBy8MNSE4PBuPcrxe66kQW/Ufhoa/f+0jeUx5RC3/A0as+/vOOCmQnO0VTyRTp2DHLvcL3k9EKow6FsFuQHZPpHsQnzzRUSlQ+vGI+dPYUSU=, format=xml, v=2.0}步驟5:模擬遠(yuǎn)程HTTP協(xié)議請(qǐng)求支付寶(調(diào)用AlipaySubmit類中的buildRequest (String ALIPAY_GATEWAY_NEW, String strParaFileName, String strFilePath,Map<String, String> sParaTemp) throws Exception函數(shù)),得到支付寶的處理結(jié)果,字符串文本格式。res_data=wzpwl6nSd%2B0aYMQaltXjmEdJgeAkLH2dupVrHNNKknd33wwqgbDlhj3gAur%2F1WTLSFWQcw8Q%2Fb8XKk8r0Ti14pTbH9wzhyOeElGfd4Ks1HKkqZFXLX7YVhfBH7lHjJiNFBzMZhMAGy%2BhAgiwbw4mvIjQF%2Bu%2BGS3SRK%2B4wy2QmptEEcqVseMgHr56MYeFfdvxzbx%2FT06%2B%2Fg5pdIre94H6ZL0mDR8IobzQnJV1mq%2B9YMXNUspsRzXCHhcbKEq7xqDVdE5eb43LvNKa8ypR9hMiYd5%2FOLAuYnpetM81IzGNC83kioh5hsSoLgEErCrMklxucR7X5U6l22APeK6i%2FbT8TA%3D%3D&service=alipay.wap.trade.create.direct&sec_id=0001&partner=2088501624560335&req_id=201306170001&sign=ll2LBlP66aZArPUJV9Vd3Tfo6m7PLiI8IQRNjjwFjg6NXS4PCjTdY6PlCnB5MmllNFurI2J5GuL7LUCKVSlO58hUpxQrllpoYNorKx%2BUKXYOAmPilRa2zHry%2BjVUlW9qNp4jLI2oDY8lgBbKr%2BkL3BYO0GU0Stv4zAhokAaF9ho%3D&v=2.0步驟6:對(duì)該結(jié)果做URLDECODE解碼工作(調(diào)用urldecode函數(shù))。res_data=wzpwl6nSd+0aYMQaltXjmEdJgeAkLH2dupVrHNNKknd33wwqgbDlhj3gAur/1WTLSFWQcw8Q/b8XKk8r0Ti14pTbH9wzhyOeElGfd4Ks1HKkqZFXLX7YVhfBH7lHjJiNFBzMZhMAGy+hAgiwbw4mvIjQF+u+GS3SRK+4wy2QmptEEcqVseMgHr56MYeFfdvxzbx/T06+/g5pdIre94H6ZL0mDR8IobzQnJV1mq+9YMXNUspsRzXCHhcbKEq7xqDVdE5eb43LvNKa8ypR9hMiYd5/OLAuYnpetM81IzGNC83kioh5hsSoLgEErCrMklxucR7X5U6l22APeK6i/bT8TA==&service=alipay.wap.trade.create.direct&sec_id=0001&partner=2088501624560335&req_id=201306170001&sign=ll2LBlP66aZArPUJV9Vd3Tfo6m7PLiI8IQRNjjwFjg6NXS4PCjTdY6PlCnB5MmllNFurI2J5GuL7LUCKVSlO58hUpxQrllpoYNorKx+UKXYOAmPilRa2zHry+jVUlW9qNp4jLI2oDY8lgBbKr+kL3BYO0GU0Stv4zAhokAaF9ho=&v=2.0步驟7:對(duì)這串結(jié)果字符串做字符串切割,獲取返回參數(shù)的信息。注意,如果簽名方式設(shè)置的是0001(RSA),那么還需要對(duì)這結(jié)果中的返回參數(shù)res_data做解密工作;如果簽名方式設(shè)置的是MD5,則結(jié)果中的返回參數(shù)res_data直接顯示明文。res_data=<?xml version="1.0" encoding="utf-8"?><direct_trade_create_res><request_token>2013061725bc6b978788d6f2459d0af9a49ea2f3</request_token></direct_trade_create_res>&service=alipay.wap.trade.create.direct&sec_id=0001&partner=2088501624560335&req_id=201306170001&sign=ll2LBlP66aZArPUJV9Vd3Tfo6m7PLiI8IQRNjjwFjg6NXS4PCjTdY6PlCnB5MmllNFurI2J5GuL7LUCKVSlO58hUpxQrllpoYNorKx+UKXYOAmPilRa2zHry+jVUlW9qNp4jLI2oDY8lgBbKr+kL3BYO0GU0Stv4zAhokAaF9ho=&v=2.0接著把XML結(jié)構(gòu)的res_data的值做XML解析,從中獲取子節(jié)點(diǎn)request_token的值(這一系列過(guò)程需調(diào)用AlipaySubmit類中的parseResponse函數(shù)),這個(gè)值就是授權(quán)令牌。2013061725bc6b978788d6f2459d0af9a49ea2f3步驟8:商戶為手機(jī)網(wǎng)頁(yè)即時(shí)到賬交易接口(alipay.wap.auth.authandexecute)的請(qǐng)求參數(shù)配置好數(shù)據(jù)后,與步驟一、二、三、四同理,把數(shù)據(jù)組裝進(jìn)數(shù)組sParaTemp中。{req_data=<auth_and_execute_req><request_token>2013061725bc6b978788d6f2459d0af9a49ea2f3</request_token></auth_and_execute_req>, service=alipay.wap.auth.authAndExecute, sec_id=0001, partner=2088501624560335, _input_charset=utf-8, v=2.0, format=xml}對(duì)該數(shù)組做空值過(guò)濾(調(diào)用AlipayCore類中的paraFilter函數(shù)),對(duì)該數(shù)組做參數(shù)名首字母升序的排序動(dòng)作,把待簽名數(shù)組轉(zhuǎn)變成待簽名字符串,對(duì)該字符串做簽名(調(diào)用AlipaySubmit類中的buildRequestMysign函數(shù)),把簽名結(jié)果賦值給參數(shù)sign,并把sign加入之前的待簽名數(shù)組中,此時(shí)得到的便是要請(qǐng)求給支付寶的全部數(shù)據(jù)。{req_data=<auth_and_execute_req><request_token>2013061725bc6b978788d6f2459d0af9a49ea2f3</request_token></auth_and_execute_req>, service=alipay.wap.auth.authAndExecute, partner=2088501624560335, sec_id=0001, _input_charset=utf-8, sign=jqUVcsnO3CX2c3/b2WqALKL+AJgxnB9rT87LJ31BBHqNd6DixUmtd4ht6qz9TqpX9nuI+EaPnYIhPcF+okas2bGn7ju4V3TS0805g/7mELsuW8/kcGOd/+zLvLqH7tXY0oilb4Bq/fTb8FewVuBWSMkZXIzovc9he0c1dTklXPQ=, format=xml, v=2.0}步驟9:以GET方式,請(qǐng)求支付寶(調(diào)用AlipaySubmit類中的buildRequest(String ALIPAY_GATEWAY_NEW, Map<String, String> sParaTemp, String strMethod, String strButtonName)函數(shù)),此時(shí)商戶的頁(yè)面會(huì)自動(dòng)跳轉(zhuǎn)至支付寶收銀臺(tái)。圖5-2 跳轉(zhuǎn)至支付寶收銀臺(tái)后面的動(dòng)作全由買家在支付寶收銀臺(tái)中操作完成。步驟10: 當(dāng)這筆交易被買家支付成功后支付寶收銀臺(tái)上顯示該筆交易成功,并提示用戶可返回商戶網(wǎng)站。買家點(diǎn)擊該功能按鈕后,則當(dāng)前界面會(huì)跳轉(zhuǎn)回商戶設(shè)置的call_back_url頁(yè)面文件去,如果長(zhǎng)時(shí)間沒(méi)有點(diǎn)擊,則當(dāng)前支付寶收銀臺(tái)界面會(huì)自動(dòng)跳轉(zhuǎn)至商戶call_back_url頁(yè)面文件去。此時(shí)商戶的call_back_url頁(yè)面會(huì)收到一串帶有處理結(jié)果數(shù)據(jù)的鏈接地址。http://127.0.0.1:8080/WS_WAP_PAYWAP-JAVA-UTF-8/call_back_url.jsp?out_trade_no=cs201306170001&request_token=requestToken&result=success&trade_no=2013061741934035&sign=UCUm6GVdi7MEcNnDbD7UnG0UyEyUtuKOSuhPQbrGxUvLUmRJEctMm5NxYV%2FtvWT0VCGbM%2F4zaAlYy1EP4bFLisoyprq%2FQ9H5XMnO%2FOZ5E1XclGXiD%2FLMbMGoYCqNmI22MxMZ0OmL9UoUSrT2f4%2B8EDCtkDsnUsG82K4GnjSmJ2w%3D&sign_type=0001步驟11: 用GET方式獲得這些返回?cái)?shù)據(jù),與步驟一、二、三、四同理,對(duì)數(shù)組params做空值過(guò)濾、參數(shù)名首字母升序的排序、待簽名數(shù)組轉(zhuǎn)變成待簽名字符串。out_trade_no=cs201306170001&request_token=requestToken&result=success&trade_no=2013061741934035對(duì)該字符串做簽名驗(yàn)證(這一系列動(dòng)作為調(diào)用AlipayNotify類中的verifyReturn函數(shù)完成),得到布爾類型的驗(yàn)證結(jié)果,完成call_back_url頁(yè)面文件的驗(yàn)證動(dòng)作。步驟12: 買家對(duì)一筆交易付款完成的同時(shí),除了支付寶會(huì)觸發(fā)頁(yè)面跳轉(zhuǎn)至call_back_url文件的同步通知?jiǎng)幼,還會(huì)自動(dòng)觸發(fā)服務(wù)器異步通知頁(yè)面文件(商戶設(shè)置參數(shù)notify_url的值)。此時(shí),商戶的notify_url文件也會(huì)收到支付寶異步通知回來(lái)的數(shù)據(jù)。{service=alipay.wap.trade.create.direct, sign=V2fgcO2jwZ5G/HcDRS3N7m2TNqRSHFqvF7wQ6xD52NgLtNMhx2H+4H/yv5yKZxt1xY5K1aMfv6MsO0fpKAYZaZFg+WYs925IbAzpscbK72fzuhvfikjbEvuOLHY+LGNXwkn+VhQBBNkHs4GNJSM1iZ1jcCxm8NU9oANviZDMAcg=, sec_id=0001, v=1.0, notify_data=0R5IeCoVWRerPIERgTFrQOUfIiw0FHmHGe6elY6VYp1WZU5bRsQkK5ekMcceD412gO+KgqPzvAKVQG1h3dwuhWgaHPdL5oNj1eIzf4PUuRYOb7qCwFMqpNDQ9Jznbm89kCqjenhWSIwQ/2Aad+4RPHOKy9AzAWut02MiW7g8gH49Nb1rjki+u7QQN+xQ/Q/Fr4f2RlcoiutfsYB2mCy8smtjaH2LmE5wNz0I5yHMxnf9+NCkjmOJdZZrOC2wXly/tzLY6w+zef+m5s184D80HejiUPOlS8dBtmEPs+SQzA5N7eu0BF1pPj9m7wyTINf6k4GlkQtvNM6UZd2cwuthwZeYcax5Db0rWYyDaQOCH/gEUShzD6za84Gpj9/grKnvMy65C7ihmcb4wtA7CNiQSnLiQZ3ksUGjB0WiwTpL9JeQqyVWJZiSpRXt73B9/qT1hzf5K1CWHTzD0zfOjifFbSrXQmAt5oIoMM49W7Ds95fTZNde3czzf/hrcUQEI3LNW+6e975+Vl4O+fmxxBeGaI1Ls1EBTdZpDoNl35U7uhzdkbBzJR4AYY6H9xD2QmjtAS3GelIXpiqC29FbwwFLbEQM/a9xAS3KS8jIyDWEAK4dJi3U+F/QTismfjp7dfT2KqU89wsqJ+BtMwWLaOPvz1BSpj1TVYYmgK5MdLjh6S+GVH4ka/RcU2nGqpO1cNHBHa0j2wY7Uu1p3SiSa62NTbu0wvLqiT3fs6K6PDwVkxGDAPsQaXvCGrMRhhVLc7M5AcCVSBCJd4LAJU/BfTcYZjiFcKSlSSYKMNFZRusNcFtzrbvi1u4gwHRnRYr11Z/pwGbQ5LtxV083lXtEkJ1fWFzt84hxfcOGH+o9EgJBKyIahQfyHfRir5quiixBqp5xWR8DU5nJNAW+/MLgPzNYt+uaIPadqrBt/j7+0gdgFEdLzPLncI9h0VdlmdgO+CvxJ1aKYi2pDY64oTzm87CN/Fiof1n8SjZRgGh/ClxIJHunI9DCmVszMtVkQhJwQzkIj9YnV+3n0Q3wjos3iE69WJjHk+DpN8ARZiAJEFKtGT9lMnIf1JfbpXmdM1arFV1doMEb8vKLN4kHioR4DhVyDvaLfo4rsgvGcLSB65R4Ya4tVdk1e0+vnk+U/NMk9zrJf39hInyBoazUpkPIqmmQIAvkpSbnbGuZUdqri9fame2e/gPkUzYqzo/gt6OCuzIdtVtVI0kQXGfCz9XpazmYbTcKA9Ck6z6WF2lN7lIJH9DSNB7lCDM/cKD7xEZ5lFRucz1sOsvZNpNhH8R7EnyQYEo7NM9ph8gDfgaVaaWh1+13TJfwvC5WBOi+5KyKh+6qb4Z98tFkxrqyU2Kn6hFAoQ==}步驟13: 用POST方式獲得這些返回?cái)?shù)據(jù)。如果簽名方式設(shè)置的是0001(RSA)時(shí),需要先對(duì)這些數(shù)據(jù)中的參數(shù)notify_data做解密;如果簽名方式設(shè)置的是MD5,因?yàn)橹苯臃祷孛魑,所以不需要解密?nbsp;{service=alipay.wap.trade.create.direct, sign=V2fgcO2jwZ5G/HcDRS3N7m2TNqRSHFqvF7wQ6xD52NgLtNMhx2H+4H/yv5yKZxt1xY5K1aMfv6MsO0fpKAYZaZFg+WYs925IbAzpscbK72fzuhvfikjbEvuOLHY+LGNXwkn+VhQBBNkHs4GNJSM1iZ1jcCxm8NU9oANviZDMAcg=, sec_id=0001, v=1.0, notify_data=<notify><payment_type>1</payment_type><subject>測(cè)試</subject><trade_no>2013061741934035</trade_no><buyer_email>xxxxxxx@xx.com</buyer_email><gmt_create>2013-06-17 19:15:58</gmt_create><notify_type>trade_status_sync</notify_type><quantity>1</quantity><out_trade_no>cs201306170001</out_trade_no><notify_time>2013-06-17 19:16:09</notify_time><seller_id>2088501624560335</seller_id><trade_status>TRADE_FINISHED</trade_status><is_total_fee_adjust>N</is_total_fee_adjust><total_fee>0.01</total_fee><gmt_payment>2013-06-17 19:16:08</gmt_payment><seller_email>alipayrisk10@alipay.com</seller_email><gmt_close>2013-06-17 19:16:08</gmt_close><price>0.01</price><buyer_id>2088002396712354</buyer_id><notify_id>78fca98191478a5e64459d8ef88601183y</notify_id><use_coupon>N</use_coupon></notify>}notify_url異步通知的簽名驗(yàn)證規(guī)律與call_back_url不同,商戶只需要順序獲取支付寶的返回?cái)?shù)據(jù),不需要對(duì)這些參數(shù)排序。因此,直接把數(shù)組params轉(zhuǎn)變成待簽名字符串。service=alipay.wap.trade.create.direct&v=1.0&sec_id=0001¬ify_data=<notify><payment_type>1</payment_type><subject>測(cè)試</subject><trade_no>2013061741934035</trade_no><buyer_email>xxxxxxx@xx.com</buyer_email><gmt_create>2013-06-17 19:15:58</gmt_create><notify_type>trade_status_sync</notify_type><quantity>1</quantity><out_trade_no>cs201306170001</out_trade_no><notify_time>2013-06-17 19:16:09</notify_time><seller_id>2088501624560335</seller_id><trade_status>TRADE_FINISHED</trade_status><is_total_fee_adjust>N</is_total_fee_adjust><total_fee>0.01</total_fee><gmt_payment>2013-06-17 19:16:08</gmt_payment><seller_email>alipayrisk10@alipay.com</seller_email><gmt_close>2013-06-17 19:16:08</gmt_close><price>0.01</price><buyer_id>2088002396712354</buyer_id><notify_id>78fca98191478a5e64459d8ef88601183y</notify_id><use_coupon>N</use_coupon></notify>接著對(duì)該字符串做簽名驗(yàn)證(這一系列動(dòng)作調(diào)用AlipayNotify類中的verifyNotify函數(shù)),得到布爾類型的驗(yàn)證結(jié)果,完成notify_url頁(yè)面文件的驗(yàn)證動(dòng)作。步驟14: 在notify_url頁(yè)面文件中,參數(shù)notify_data是XML結(jié)構(gòu)的字符串,需要先XML解析,再獲取需要的子節(jié)點(diǎn)數(shù)據(jù)。2. PHP步驟1: 商戶為手機(jī)網(wǎng)頁(yè)即時(shí)到賬授權(quán)接口(alipay.wap.trade.create.direct)的請(qǐng)求參數(shù)配置好數(shù)據(jù)后,組裝進(jìn)數(shù)組$para_token中,再對(duì)該數(shù)組做空值過(guò)濾(調(diào)用AlipayCore類中的paraFilter函數(shù))。$para_token = array("service" => "alipay.wap.trade.create.direct","partner" => "2088501624560335","sec_id" => "0001","format" => "xml","v" => "2.0","req_id" => "201306140001","req_data" => "<direct_trade_create_req><notify_url>http://www.xxx.com/WS_WAP_PAYWAP-PHP-UTF-8/notify_url.php</notify_url><call_back_url>http://127.0.0.1:8800/WS_WAP_PAYWAP-PHP-UTF-8/call_back_url.php</call_back_url><seller_account_name>alipayrisk10@alipay.com</seller_account_name><out_trade_no>cs201306140001</out_trade_no><subject>測(cè)試</subject><total_fee>0.01</total_fee></direct_trade_create_req>","_input_charset" => "utf-8");步驟2:對(duì)該數(shù)組做參數(shù)名首字母升序的排序動(dòng)作(調(diào)用AlipayCore類中的argSort函數(shù))(排序規(guī)則請(qǐng)參見(jiàn)“3 技術(shù)接入規(guī)則”中的“請(qǐng)求時(shí)簽名邏輯”),此時(shí)得到的數(shù)組為待簽名數(shù)組。$para_token = array("_input_charset"=> "utf-8","format" => "xml","partner" => "2088501624560335","req_data" => "<direct_trade_create_req><notify_url>http://www.xxx.com/WS_WAP_PAYWAP-PHP-UTF-8/notify_url.php</notify_url><call_back_url>http://127.0.0.1:8800/WS_WAP_PAYWAP-PHP-UTF-8/call_back_url.php</call_back_url><seller_account_name>alipayrisk10@alipay.com</seller_account_name><out_trade_no>cs201306140001</out_trade_no><subject>測(cè)試</subject><total_fee>0.01</total_fee></direct_trade_create_req>","req_id" => "201306140001","sec_id" => "0001","service" => "alipay.wap.trade.create.direct","v" => "2.0");步驟3: 把待簽名數(shù)組轉(zhuǎn)變成待簽名字符串。_input_charset=utf-8&format=xml&partner=2088501624560335&req_data=<direct_trade_create_req><notify_url>http://www.xxx.com/WS_WAP_PAYWAP-PHP-UTF-8/notify_url.php</notify_url><call_back_url>http://127.0.0.1:8800/WS_WAP_PAYWAP-PHP-UTF-8/call_back_url.php</call_back_url><seller_account_name>alipayrisk10@alipay.com</seller_account_name><out_trade_no>cs201306140001</out_trade_no><subject>測(cè)試</subject><total_fee>0.01</total_fee></direct_trade_create_req>&req_id=201306140001&sec_id=0001&service=alipay.wap.trade.create.direct&v=2.0并對(duì)該字符串做簽名(調(diào)用AlipaySubmit類中的buildRequestMysign函數(shù)),轉(zhuǎn)變規(guī)則請(qǐng)參見(jiàn)“3 技術(shù)接入規(guī)則”中的“請(qǐng)求時(shí)簽名邏輯”。EGb8F+aWwBhotwNSQwF9Sik2OzQffV1Val1STvrRj4MzE1W4pLM6Mfjk3/4Vj3ci4Pspcm1OLDHPZ2JQNsFruS6d4bFSQrtEF52irwSF+re42+TBTRe7w8TZAjBnBBLLknerq0DvN86SfA6QaXOl/nOfgcMfCx3YtJnX9u2Yi/k=步驟4:把簽名結(jié)果賦值給參數(shù)sign,并把sign加入之前的待簽名數(shù)組中,此時(shí)得到的便是要請(qǐng)求給支付寶的全部數(shù)據(jù)。$para_token = array("_input_charset"=> "utf-8","format" => "xml","partner" => "2088501624560335","req_data" => "<direct_trade_create_req><notify_url>http://www.xxx.com/WS_WAP_PAYWAP-PHP-UTF-8/notify_url.php</notify_url><call_back_url>http://127.0.0.1:8800/WS_WAP_PAYWAP-PHP-UTF-8/call_back_url.php</call_back_url><seller_account_name>alipayrisk10@alipay.com</seller_account_name><out_trade_no>cs201306140001</out_trade_no><subject>測(cè)試</subject><total_fee>0.01</total_fee></direct_trade_create_req>","req_id" => "201306140001","sec_id" => "0001","service" => "alipay.wap.trade.create.direct","v" => "2.0","sign" => "EGb8F+aWwBhotwNSQwF9Sik2OzQffV1Val1STvrRj4MzE1W4pLM6Mfjk3/4Vj3ci4Pspcm1OLDHPZ2JQNsFruS6d4bFSQrtEF52irwSF+re42+TBTRe7w8TZAjBnBBLLknerq0DvN86SfA6QaXOl/nOfgcMfCx3YtJnX9u2Yi/k=");步驟5: 模擬遠(yuǎn)程HTTP協(xié)議請(qǐng)求支付寶(調(diào)用AlipaySubmit類中的getHttpResponsePOST函數(shù)),得到支付寶的處理結(jié)果,字符串文本格式。res_data=wftFwWhcSfy%2Bjowl544yEn1taSiLPbtgKcLqaLYDeJ9DFMvQXPJGO3tE%2FJzsCQsnSv5i%2FhJHTggXJpVBhmP1gwTQiBv32UsO5cFcFagQfdxet5axkmfsRmGwIaOD2eMJ4dXK%2FyHXkEgE1mxhjgBj5xtbZoZQJssSL%2F7ppYhIlGrU3Mabt0tdKoY6l3B2t0JUqHKYq4b8xCFx9AEDjA2lSrJ%2BZYcVlVJWZBbQPJmWkB5RYHp9Shfj302qxFpwxsI%2FVX2jZq1AXyQMnKBjj57xXtV5r4OZnH%2BxbXMBPnJsNnQ6NpTgjXdDU05eAo4NGiC7bHTcEZJRkJKE54oyn3jKNw%3D%3D&service=alipay.wap.trade.create.direct&sec_id=0001&partner=2088501624560335&req_id=201306140001&sign=Bdzmfbs2YONm7aO67zu%2FERNJa1hm8zYd3TVFCzXrsGrafc%2BS4svEk8TRFyOpLpF5SUI639j4uiOrObrSfYLr6EeVj8bMpDZhwdFqgr4O8CFCtZN6dvbbmBPy7LpXbP8mLplQNfJQTeagbGAa49X33cibM376yqLLsogAx%2FowTs4%3D&v=2.0步驟6: 對(duì)該結(jié)果做URLDECODE解碼工作(調(diào)用urldecode函數(shù))。res_data=wftFwWhcSfy+jowl544yEn1taSiLPbtgKcLqaLYDeJ9DFMvQXPJGO3tE/JzsCQsnSv5i/hJHTggXJpVBhmP1gwTQiBv32UsO5cFcFagQfdxet5axkmfsRmGwIaOD2eMJ4dXK/yHXkEgE1mxhjgBj5xtbZoZQJssSL/7ppYhIlGrU3Mabt0tdKoY6l3B2t0JUqHKYq4b8xCFx9AEDjA2lSrJ+ZYcVlVJWZBbQPJmWkB5RYHp9Shfj302qxFpwxsI/VX2jZq1AXyQMnKBjj57xXtV5r4OZnH+xbXMBPnJsNnQ6NpTgjXdDU05eAo4NGiC7bHTcEZJRkJKE54oyn3jKNw==&service=alipay.wap.trade.create.direct&sec_id=0001&partner=2088501624560335&req_id=201306140001&sign=Bdzmfbs2YONm7aO67zu/ERNJa1hm8zYd3TVFCzXrsGrafc+S4svEk8TRFyOpLpF5SUI639j4uiOrObrSfYLr6EeVj8bMpDZhwdFqgr4O8CFCtZN6dvbbmBPy7LpXbP8mLplQNfJQTeagbGAa49X33cibM376yqLLsogAx/owTs4=&v=2.0步驟7: 對(duì)這串結(jié)果字符串做字符串切割,獲取返回參數(shù)的信息。其中,如果簽名方式設(shè)置的是0001(RSA),那么還需要對(duì)這結(jié)果中的返回參數(shù)res_data做解密工作;如果簽名方式設(shè)置的是MD5,則結(jié)果中的返回參數(shù)res_data直接顯示明文。res_data= <?xml version="1.0" encoding="utf-8"?><direct_trade_create_res><request_token>20130614039a363773d04690f4196e888bf7b1ff</request_token></direct_trade_create_res>&service=alipay.wap.trade.create.direct&sec_id=0001&partner=2088501624560335&req_id=201306140001&sign=Bdzmfbs2YONm7aO67zu/ERNJa1hm8zYd3TVFCzXrsGrafc+S4svEk8TRFyOpLpF5SUI639j4uiOrObrSfYLr6EeVj8bMpDZhwdFqgr4O8CFCtZN6dvbbmBPy7LpXbP8mLplQNfJQTeagbGAa49X33cibM376yqLLsogAx/owTs4=&v=2.0接著把XML結(jié)構(gòu)的res_data的值做XML解析,從中獲取子節(jié)點(diǎn)request_token的值(這一系列過(guò)程需調(diào)用AlipaySubmit類中的parseResponse函數(shù)),這個(gè)值就是授權(quán)令牌。20130614039a363773d04690f4196e888bf7b1ff步驟8:商戶為手機(jī)網(wǎng)頁(yè)即時(shí)到賬交易接口(alipay.wap.auth.authandexecute)的請(qǐng)求參數(shù)配置好數(shù)據(jù)后,與步驟一、二、三、四同理,把數(shù)據(jù)組裝進(jìn)數(shù)組$parameter中。$parameter = array("service" => "alipay.wap.auth.authAndExecute","partner" => "2088501624560335","sec_id" => "0001","format" => "xml","v" =>"2.0","req_id" => "201306140001","req_data"=> "<auth_and_execute_req><request_token>20130614039a363773d04690f4196e888bf7b1ff</request_token></auth_and_execute_req>","_input_charset" => "utf-8");對(duì)該數(shù)組做空值過(guò)濾(調(diào)用AlipaySubmit類中的paraFilter函數(shù)),對(duì)該數(shù)組做參數(shù)名首字母升序的排序動(dòng)作(調(diào)用AlipaySubmit類中的argSort函數(shù)),把待簽名數(shù)組轉(zhuǎn)變成待簽名字符串,對(duì)該字符串做簽名(調(diào)用AlipaySubmit類中的buildRequestMysign函數(shù)),把簽名結(jié)果賦值給參數(shù)sign,并把sign加入之前的待簽名數(shù)組中,此時(shí)得到的便是要請(qǐng)求給支付寶的全部數(shù)據(jù)。$parameter = array("_input_charset"=> "utf-8","format" => "xml","partner" => "2088501624560335","req_data"=> "<auth_and_execute_req><request_token>20130614039a363773d04690f4196e888bf7b1ff</request_token></auth_and_execute_req>","req_id" => "201306140001","sec_id" => "0001","service" => "alipay.wap.auth.authAndExecute","v" => "2.0","sign" => "vtkY9FLWCzJSlpxiNicV85FAGSTacoV7X5k2zLLPAMfMJZPlk6FpJ2/s94g0R0AcEHZyvOp8D4qhR/p1TMRuqw5Hr86LeTeyR52d9VK1NDKrBRSzw6rXG8R6LqUJkkv1i095z1a5VeJW2G46MjQkDAY+AIDWbUx1XCSAaiyx4X4=");步驟9: 以GET方式,請(qǐng)求支付寶(調(diào)用AlipaySubmit類中的buildRequestForm函數(shù)),此時(shí)商戶的頁(yè)面會(huì)自動(dòng)跳轉(zhuǎn)至支付寶收銀臺(tái)。圖5-3 跳轉(zhuǎn)至支付寶收銀臺(tái)后面的動(dòng)作全由買家在支付寶收銀臺(tái)中操作完成。步驟10: 當(dāng)這筆交易被買家支付成功后支付寶收銀臺(tái)上顯示該筆交易成功,并提示用戶可返回商戶網(wǎng)站。買家點(diǎn)擊該功能按鈕后,則當(dāng)前界面會(huì)跳轉(zhuǎn)回商戶設(shè)置的call_back_url頁(yè)面文件去,如果長(zhǎng)時(shí)間沒(méi)有點(diǎn)擊,則當(dāng)前支付寶收銀臺(tái)界面會(huì)自動(dòng)跳轉(zhuǎn)至商戶call_back_url頁(yè)面文件去。此時(shí)商戶的call_back_url頁(yè)面會(huì)收到一串帶有處理結(jié)果數(shù)據(jù)的鏈接地址。http://127.0.0.1:8800/WS_WAP_PAYWAP-PHP-UTF-8/call_back_url.php?out_trade_no=cs201306140001&request_token=requestToken&result=success&trade_no=2013061435574635&sign=UmQGu7GQ6lQuisaK9FhQjl1UO3K%2BEt%2BXDsbdnuHuex38I1ssnsrTlADpCFHWfeezZs4%2FW5knSMo%2Fmg2DheSRSLj4%2FOTJRUtcnAJmiwmeK%2Bj9icN8vz5pcAXlXiFrwb9oTj8gLCOeY3GLXRmCVHTUW9UD89ZI9IraxsxCHgXQZaQ%3D&sign_type=0001步驟11: 用GET方式獲得這些返回?cái)?shù)據(jù),與步驟一、二、三、四同理,對(duì)數(shù)組$_GET做空值過(guò)濾、參數(shù)名首字母升序的排序、待簽名數(shù)組轉(zhuǎn)變成待簽名字符串。out_trade_no=cs201306140001&request_token=requestToken&result=success&trade_no=2013061435574635對(duì)該字符串做簽名驗(yàn)證(這一系列動(dòng)作為調(diào)用AlipayNotify類中的verifyReturn函數(shù)完成),得到布爾類型的驗(yàn)證結(jié)果,完成call_back_url頁(yè)面文件的驗(yàn)證動(dòng)作。步驟12: 買家對(duì)一筆交易付款完成的同時(shí),除了支付寶會(huì)觸發(fā)頁(yè)面跳轉(zhuǎn)至call_back_url文件的同步通知?jiǎng)幼,還會(huì)自動(dòng)觸發(fā)服務(wù)器異步通知頁(yè)面文件(商戶設(shè)置參數(shù)notify_url的值)。此時(shí),商戶的notify_url文件也會(huì)收到支付寶異步通知回來(lái)的數(shù)據(jù)。{service=alipay.wap.trade.create.direct, sign=MK1Q0vAATXdJTiBOxCh3XLulQDJgvYD7tU3doIpYuZEf/JCMi6MubmanJbJ9TdSbGK3iM7anDxwdflM9DVaPuc7ZdqS0Xp4N+YGUXzlcm3al2lcAMjh7ttAsPy4cia4kKWJo0ATZZeIP8jkZG2L46nBeElqo3ZcbeMQklFhu6ak=, sec_id=0001, v=1.0, notify_data=wd2ALy4RTeR2xvoSUsphr98A2Ctm2rbOvhG/T8+U2vD0xTTwHf5sGsmRV+s33SLZIZQ/dJyUxIvmkrvpPDWsT1T+qRWc6MVT32Na/5JdQyyE89e6bhJHmQk+OjyCF68XdsCDa0cw8QtA5ScFfeIcV6ryXCw61uwtgBEebMDL0d8j9IWUYs1nnLdW1HNfRo8AUH6hEQpbz3pboMxVLZcXcFTKReb1NuIfe5Df0x9tfeU1pnN+JewkUFsqQP9jMZD7PWjfjX+Lml1st9ftHfhzZ+w/s116i1oW8MONEkwStQkT2yVBGmCpLw0IZeS/LZth1eyM2oUfDMOA1aK7zeuP8ICdU2TjMNOahkBipBdgLpjQgaAW/xaO5LKirg6Au7IRtHeKBf1haXcQ3LNkgc3HttbmATjJaMQM535CGaaXK7zFsHZCB3k1uk3I1PJ2tVX2Uy+xkSZP/h20/IxHlSdj8xXDe74g2XYtBbsVd8Qmd7gf8YNwQk+WYtMsAbHCzugE0MvxTwyyG1XoGyCRHYe7u2oudsQGzbrAyrGuMHpnv3Ku09up2sjcn0h5zAOUDCslcJwCa2qYd1y4KOZqtXqiPFUQ2yRuUMluvWQCOr0ckAGlVhUV93Mu1CXU8PdqTQPNGZPpb7AEDyCYWhpt/CWlz0def7o1GhWbC19Z3NMdvfDvoyaL//77cUjjqKVYQ9EeDdRnKujj0AzSV8gLgK4rmmf1zHiYOpfXflyghxWc3O/i8tlF7ruKbS7pSvcyBvzgmW0zojZnattdoKiIRNZAeZ+v4cqDKkBpMtlrKJc7yL7nYOEdXiTaVQ/3iFpZm0J+U3pOewsYbX6Vmkvb5wTYHJzNQFu6E1QyYjiibRSospNgRRlzHXXAUgL7nK0JR8PKhen4ID1ZVRtL+r0RzGnPiMvSyt4fAbkP06nKikuZBeTD9isLY793XG6lj4PCTAHWZE4DzZAXoEppAdCqd810kpav9OrbShFpEhKvDcsDxTRixwjTxsaTv+N4DObYuJThoR6SR1qmiQNArmgx3glNUbZdYQ4i5zdLU5B8v02idAwRFWEbH8oBzyKxlwslOeEwq0+WisDvxJCAtPpWeZvWL0v/u6MOPkAFoN9Ml4dLIOFcrSaifblfaCVXajS7QjcvS2YLuLzQUjjb2R0H0ZnSCVjS+FgiXhTWrEr/8VB8VsMcOZ6Vz+ZrcT5wjWpP/Il19q8g0xB260B4x5O1xocMjTertociASRirLkg2jYH4EcUMN/fFZRLTVJuFZQ6rVLpsK+eHzgyIrS2Fz/YZORdSet6zaFzERzEhrWSrL6mJ878vl4b92CGoy6op7m7B/GBsrvEwizCPR039ZaDsMahg==}步驟13: 用POST方式獲得這些返回?cái)?shù)據(jù),如果簽名方式設(shè)置的是0001(RSA)時(shí),需要先對(duì)這些數(shù)據(jù)中的參數(shù)notify_data做解密;如果簽名方式設(shè)置的是MD5,因?yàn)橹苯臃祷孛魑,所以不需要解密?nbsp;{service=alipay.wap.trade.create.direct, sign=MK1Q0vAATXdJTiBOxCh3XLulQDJgvYD7tU3doIpYuZEf/JCMi6MubmanJbJ9TdSbGK3iM7anDxwdflM9DVaPuc7ZdqS0Xp4N+YGUXzlcm3al2lcAMjh7ttAsPy4cia4kKWJo0ATZZeIP8jkZG2L46nBeElqo3ZcbeMQklFhu6ak=, sec_id=0001, v=1.0, notify_data=<notify><payment_type>1</payment_type><subject>測(cè)試</subject><trade_no>2013061435574635</trade_no><buyer_email>xxxxxxx@xx.com</buyer_email><gmt_create>2013-06-14 17:38:45</gmt_create><notify_type>trade_status_sync</notify_type><quantity>1</quantity><out_trade_no>cs201306140001</out_trade_no><notify_time>2013-06-14 17:38:54</notify_time><seller_id>2088501624560335</seller_id><trade_status>TRADE_FINISHED</trade_status><is_total_fee_adjust>N</is_total_fee_adjust><total_fee>0.01</total_fee><gmt_payment>2013-06-14 17:38:54</gmt_payment><seller_email>alipayrisk10@alipay.com</seller_email><gmt_close>2013-06-14 17:38:54</gmt_close><price>0.01</price><buyer_id>2088002396712354</buyer_id><notify_id>be3e931aa1cc2147d7fa5b6bf569b6153y</notify_id><use_coupon>N</use_coupon></notify>}notify_url異步通知的簽名驗(yàn)證規(guī)律與call_back_url不同,商戶只需要順序獲取支付寶的返回?cái)?shù)據(jù),不需要對(duì)這些參數(shù)排序。因此,直接把數(shù)組$_POST轉(zhuǎn)變成待簽名字符串。service=alipay.wap.trade.create.direct&v=1.0&sec_id=0001¬ify_data=<notify><payment_type>1</payment_type><subject>測(cè)試</subject><trade_no>2013061435574635</trade_no><buyer_email>xxxxxxx@xx.com</buyer_email><gmt_create>2013-06-14 17:38:45</gmt_create><notify_type>trade_status_sync</notify_type><quantity>1</quantity><out_trade_no>cs201306140001</out_trade_no><notify_time>2013-06-14 17:38:54</notify_time><seller_id>2088501624560335</seller_id><trade_status>TRADE_FINISHED</trade_status><is_total_fee_adjust>N</is_total_fee_adjust><total_fee>0.01</total_fee><gmt_payment>2013-06-14 17:38:54</gmt_payment><seller_email>alipayrisk10@alipay.com</seller_email><gmt_close>2013-06-14 17:38:54</gmt_close><price>0.01</price><buyer_id>2088002396712354</buyer_id><notify_id>be3e931aa1cc2147d7fa5b6bf569b6153y</notify_id><use_coupon>N</use_coupon></notify>接著對(duì)該字符串做簽名驗(yàn)證(這一系列動(dòng)作調(diào)用AlipayNotify類中的verifyNotify函數(shù)),得到布爾類型的驗(yàn)證結(jié)果,完成notify_url頁(yè)面文件的驗(yàn)證動(dòng)作。步驟14: 在notify_url頁(yè)面文件中,參數(shù)notify_data是XML結(jié)構(gòu)的字符串,需要先XML解析,再獲取需要的子節(jié)點(diǎn)數(shù)據(jù)。3. ASP.NET(C#)步驟1:商戶為手機(jī)網(wǎng)頁(yè)即時(shí)到賬授權(quán)接口(alipay.wap.trade.create.direct)的請(qǐng)求參數(shù)配置好數(shù)據(jù)后,組裝進(jìn)數(shù)組sParaTempToken中,再對(duì)該數(shù)組做空值過(guò)濾(調(diào)用AlipayCore類中的FilterPara函數(shù))。{[partner, 2088101568358171]}{[_input_charset, utf-8]}{[sec_id, 0001]}{[service, alipay.wap.trade.create.direct]}{[format, xml]}{[v, 2.0]}{[req_id, 201306170002]}{[req_data, <direct_trade_create_req><notify_url>http://www.xxx.com/WS_WAP_PAYWAP-CSHARP/notify_url.aspx</notify_url><call_back_url>http://127.0.0.1:48034/WS_WAP_PAYWAP-CSHARP/call_back_url.aspx</call_back_url><seller_account_name>alipayrisk10@alipay.com</seller_account_name><out_trade_no>cs201306170002</out_trade_no><subject>測(cè)試</subject><total_fee>0.01</total_fee></direct_trade_create_req>]}步驟2: 對(duì)該數(shù)組做參數(shù)名首字母升序的排序動(dòng)作(調(diào)用AlipayCore類中的SortPara函數(shù)),排序規(guī)則請(qǐng)參見(jiàn)“3 技術(shù)接入規(guī)則”中的“請(qǐng)求時(shí)簽名邏輯”,此時(shí)得到的數(shù)組為待簽名數(shù)組。{[_input_charset, utf-8]}{[format, xml]}{[partner, 2088101568358171]}{[req_data, <direct_trade_create_req><notify_url>http://www.xxx.com/WS_WAP_PAYWAP-CSHARP/notify_url.aspx</notify_url><call_back_url>http://127.0.0.1:48034/WS_WAP_PAYWAP-CSHARP/call_back_url.aspx</call_back_url><seller_account_name>alipayrisk10@alipay.com</seller_account_name><out_trade_no>cs201306170002</out_trade_no><subject>測(cè)試</subject><total_fee>0.01</total_fee></direct_trade_create_req>]}{[req_id, 201306170002]}{[sec_id, 0001]}{[service, alipay.wap.trade.create.direct]}{[v, 2.0]}步驟3: 把待簽名數(shù)組轉(zhuǎn)變成待簽名字符串。_input_charset=utf-8&format=xml&partner=2088101568358171&req_data=<direct_trade_create_req><notify_url>http://www.xxx.com/WS_WAP_PAYWAP-CSHARP/notify_url.aspx</notify_url><call_back_url>http://127.0.0.1:48034/WS_WAP_PAYWAP-CSHARP/call_back_url.aspx</call_back_url><seller_account_name>alipayrisk10@alipay.com</seller_account_name><out_trade_no>cs201306170002</out_trade_no><subject>測(cè)試</subject><total_fee>0.01</total_fee></direct_trade_create_req>&req_id=201306170002&sec_id=0001&service=alipay.wap.trade.create.direct&v=2.0并對(duì)該字符串做簽名(調(diào)用AlipaySubmit類中的BuildRequestMysign函數(shù)),轉(zhuǎn)變規(guī)則請(qǐng)參見(jiàn)“3 技術(shù)接入規(guī)則”中的“請(qǐng)求時(shí)簽名邏輯”。xO/eAP4pFusEveZmaw2mgCEoQGxDqkFZ+AF8wI1U52OGASs48O/efTZLn9Cr0tF9tDJQ+hwlcNj+F4/Hx+w6v35c0oE3F1Eab/Z2wKAirIYVh/HagumS34aa6t7lJb21YFIshu1YgoqWfwakQ/fzdcwVncW7jJQIvMsIgAhEJ8I=步驟4: 把簽名結(jié)果賦值給參數(shù)sign,并把sign加入之前的待簽名數(shù)組中,此時(shí)得到的便是要請(qǐng)求給支付寶的全部數(shù)據(jù)。{[_input_charset, utf-8]}{[format, xml]}{[partner, 2088101568358171]}{[req_data, <direct_trade_create_req><notify_url>http://www.xxx.com/WS_WAP_PAYWAP-CSHARP/notify_url.aspx</notify_url><call_back_url>http://127.0.0.1:48034/WS_WAP_PAYWAP-CSHARP/call_back_url.aspx</call_back_url><seller_account_name>alipayrisk10@alipay.com</seller_account_name><out_trade_no>cs201306170002</out_trade_no><subject>測(cè)試</subject><total_fee>0.01</total_fee></direct_trade_create_req>]}{[req_id, 201306170002]}{[sec_id, 0001]}{[service, alipay.wap.trade.create.direct]}{[v, 2.0]}{[sign, xO/eAP4pFusEveZmaw2mgCEoQGxDqkFZ+AF8wI1U52OGASs48O/efTZLn9Cr0tF9tDJQ+hwlcNj+F4/Hx+w6v35c0oE3F1Eab/Z2wKAirIYVh/HagumS34aa6t7lJb21YFIshu1YgoqWfwakQ/fzdcwVncW7jJQIvMsIgAhEJ8I=]}步驟5: 模擬遠(yuǎn)程HTTP協(xié)議請(qǐng)求支付寶(調(diào)用AlipaySubmit類中的BuildRequest(string GATEWAY_NEW, Dictionary<string, string> sParaTemp)函數(shù)),得到支付寶的處理結(jié)果,字符串文本格式。res_data=KzTV7n3JHKMmaxc9jObz8FqT9PO8MQw5kqX8uqO4fGwvNIDHNngLdEig%2FaN4A97i0nRviLzoutVSojBIM%2BRECev5UR6aqhME%2Bei%2BX8LYf9sZaE1V3o2oMz3BnubFOcnozWBgXyDaA2fzeU1YxT9TL4BLaDEJ0gZB5upjpMeiyO%2Bil9068gl11ojNbJE3jeGtgqp%2FXTSXmFZ0x7DYefB1XYWmzETLywMkKdwlhnYIDrTLHLj4wdMTmsQS%2BxbTD2egERafRFD3DtPDkO6j7pRfHcJBtoEtC%2Fg4Zj2FD58ADEGLKb7oAkMU6ado091la%2FvAzH3gZtElHAs%2BdYglI%2FUIBw%3D%3D&service=alipay.wap.trade.create.direct&sec_id=0001&partner=2088101568358171&req_id=201306170002&sign=oo4ShGc1fndnYiI2OJzclNSQcfspEzoQchrYS8fhiaAzddE31ra%2Ffq7xOm9RCzDTfgyO3Sl8pUcAWY%2B4BYPrxMF5GPVv2IZDY%2FN%2FxQjTwEPrkQYazOtimzB1qRTA%2FUrOrEejEyMUqN2XXrMwl4%2FavdFjPpBAsCsF7KFJOL%2FB7H4%3D&v=2.0步驟6: 對(duì)該結(jié)果做URLDECODE解碼工作(調(diào)用urldecode函數(shù))。res_data=KzTV7n3JHKMmaxc9jObz8FqT9PO8MQw5kqX8uqO4fGwvNIDHNngLdEig/aN4A97i0nRviLzoutVSojBIM+RECev5UR6aqhME+ei+X8LYf9sZaE1V3o2oMz3BnubFOcnozWBgXyDaA2fzeU1YxT9TL4BLaDEJ0gZB5upjpMeiyO+il9068gl11ojNbJE3jeGtgqp/XTSXmFZ0x7DYefB1XYWmzETLywMkKdwlhnYIDrTLHLj4wdMTmsQS+xbTD2egERafRFD3DtPDkO6j7pRfHcJBtoEtC/g4Zj2FD58ADEGLKb7oAkMU6ado091la/vAzH3gZtElHAs+dYglI/UIBw==&service=alipay.wap.trade.create.direct&sec_id=0001&partner=2088101568358171&req_id=201306170002&sign=oo4ShGc1fndnYiI2OJzclNSQcfspEzoQchrYS8fhiaAzddE31ra/fq7xOm9RCzDTfgyO3Sl8pUcAWY+4BYPrxMF5GPVv2IZDY/N/xQjTwEPrkQYazOtimzB1qRTA/UrOrEejEyMUqN2XXrMwl4/avdFjPpBAsCsF7KFJOL/B7H4=&v=2.0步驟7: 對(duì)這串結(jié)果字符串做字符串切割,獲取返回參數(shù)的信息。其中,如果簽名方式設(shè)置的是0001(RSA),那么還需要對(duì)這結(jié)果中的返回參數(shù)res_data做解密工作;如果簽名方式設(shè)置的MD5,則結(jié)果中的返回參數(shù)res_data直接顯示明文。res_data=<?xml version="1.0" encoding="utf-8"?><direct_trade_create_res><request_token>201306179d4c458a00e26aca863b4dac3cc2bfd3</request_token></direct_trade_create_res>&service=alipay.wap.trade.create.direct&sec_id=0001&partner=2088101568358171&req_id=201306170002&sign=oo4ShGc1fndnYiI2OJzclNSQcfspEzoQchrYS8fhiaAzddE31ra/fq7xOm9RCzDTfgyO3Sl8pUcAWY+4BYPrxMF5GPVv2IZDY/N/xQjTwEPrkQYazOtimzB1qRTA/UrOrEejEyMUqN2XXrMwl4/avdFjPpBAsCsF7KFJOL/B7H4=&v=2.0接著把XML結(jié)構(gòu)的res_data的值做XML解析,從中獲取子節(jié)點(diǎn)request_token的值(這一系列過(guò)程需調(diào)用AlipaySubmit類中的ParseResponse函數(shù)),這個(gè)值就是授權(quán)令牌。201306179d4c458a00e26aca863b4dac3cc2bfd3步驟8: 商戶為手機(jī)網(wǎng)頁(yè)即時(shí)到賬交易接口(alipay.wap.auth.authandexecute)的請(qǐng)求參數(shù)配置好數(shù)據(jù)后,與步驟一、二、三、四同理,把數(shù)據(jù)組裝進(jìn)數(shù)組sParaTemp中。{[partner, 2088101568358171]}{[_input_charset, utf-8]}{[sec_id, 0001]}{[service, alipay.wap.auth.authAndExecute]}{[format, xml]}{[v, 2.0]}{[req_data, <auth_and_execute_req><request_token>201306179d4c458a00e26aca863b4dac3cc2bfd3</request_token></auth_and_execute_req>]}對(duì)該數(shù)組做空值過(guò)濾(調(diào)用AlipaySubmit類中的FilterPara函數(shù)),對(duì)該數(shù)組做參數(shù)名首字母升序的排序動(dòng)作(調(diào)用AlipaySubmit類中的SortPara函數(shù)),把待簽名數(shù)組轉(zhuǎn)變成待簽名字符串,對(duì)該字符串做簽名(調(diào)用AlipaySubmit類中的BuildRequestMysign函數(shù)),把簽名結(jié)果賦值給參數(shù)sign,并把sign加入之前的待簽名數(shù)組中,此時(shí)得到的便是要請(qǐng)求給支付寶的全部數(shù)據(jù)。{[_input_charset, utf-8]}{[format, xml]}{[partner, 2088101568358171]}{[req_data, <auth_and_execute_req><request_token>201306179d4c458a00e26aca863b4dac3cc2bfd3</request_token></auth_and_execute_req>]}{[sec_id, 0001]}{[service, alipay.wap.auth.authAndExecute]}{[v, 2.0]}{[sign, yB+DrSNb0zvnpzgzid7h/J45V0xbNsOSr7q0/qpX4jElmSCDxUl6ouwc3T39XwCy1nwil/SGx0PiwjN1AKHy+4zADjQVmDMCR28b9skLrVM/Gw5cU35FEgvlTIK+UZ85t/5m4KVby9CIqeI+B6ziXM4zQUxsNTU7AjRGi/kU3Es=]}步驟9: 以GET方式,請(qǐng)求支付寶(調(diào)用AlipaySubmit類中的BuildRequest(string GATEWAY_NEW, Dictionary<string, string> sParaTemp, string strMethod, string strButtonValue)函數(shù)),此時(shí)商戶的頁(yè)面會(huì)自動(dòng)跳轉(zhuǎn)至支付寶收銀臺(tái)。圖5-4 跳轉(zhuǎn)至支付寶收銀臺(tái)后面的動(dòng)作全由買家在支付寶收銀臺(tái)中操作完成。步驟10: 當(dāng)這筆交易被買家支付成功后支付寶收銀臺(tái)上顯示該筆交易成功,并提示用戶可返回商戶網(wǎng)站。買家點(diǎn)擊該功能按鈕后,則當(dāng)前界面會(huì)跳轉(zhuǎn)回商戶設(shè)置的call_back_url頁(yè)面文件去,如果長(zhǎng)時(shí)間沒(méi)有點(diǎn)擊,則當(dāng)前支付寶收銀臺(tái)界面會(huì)自動(dòng)跳轉(zhuǎn)至商戶call_back_url頁(yè)面文件去。此時(shí)商戶的call_back_url頁(yè)面會(huì)收到一串帶有處理結(jié)果數(shù)據(jù)的鏈接地址。http://127.0.0.1:48034/WS_WAP_PAYWAP-CSHARP/call_back_url.aspx?out_trade_no=cs201306170002&request_token=requestToken&result=success&trade_no=2013061742035035&sign=vnXVWq91w87tmKdrtePYKnEJZmVhuUMeVCVv18HwU8ABmvKH48CLXRQjjAdU4y75WtR62HhEoNCLAnTkx1hxsVGOZwpSRx9DxdXwz1m1NozIOV%2BTN8V9l%2FQXEJj0dmlgd3UjHdxfAbMkFKFDznIfZwYSbhCAL2H4KwXdefLAGiw%3D&sign_type=0001步驟11: 用GET方式獲得這些返回?cái)?shù)據(jù),與步驟一、二、三、四同理,對(duì)數(shù)組sPara(調(diào)用call_back_url頁(yè)面中的GetRequestGet()函數(shù))做空值過(guò)濾、參數(shù)名首字母升序的排序、待簽名數(shù)組轉(zhuǎn)變成待簽名字符串。out_trade_no=cs201306170002&request_token=requestToken&result=success&trade_no=2013061742035035對(duì)該字符串做簽名驗(yàn)證(這一系列動(dòng)作為調(diào)用AlipayNotify類中的VerifyReturn函數(shù)完成),得到布爾類型的驗(yàn)證結(jié)果,完成call_back_url頁(yè)面文件的驗(yàn)證動(dòng)作。步驟12: 買家對(duì)一筆交易付款完成的同時(shí),除了支付寶會(huì)觸發(fā)頁(yè)面跳轉(zhuǎn)至call_back_url文件的同步通知?jiǎng)幼,還會(huì)自動(dòng)觸發(fā)服務(wù)器異步通知頁(yè)面文件(商戶設(shè)置參數(shù)notify_url的值)。此時(shí),商戶的notify_url文件也會(huì)收到支付寶異步通知回來(lái)的數(shù)據(jù)。{service=alipay.wap.trade.create.direct, sign=eUHFymt6/MSGNDX8XcnD44IRKEXkx3mG5dk9hp39LYqmwO/WWf9+mldyljSkEXTo9wA2p8Tv9CR1NCTy9nMjHg19KWX8Rtrz2CIfoOvTsE8ttxaRzkQ8TBo/K3sHPERJmQZE2uW8RyXywMaRbRMC+90YATDqex6e7FCR0HQt4KI=, sec_id=0001, v=1.0, notify_data=iUtYE4ipOb+hpmw+lU1lDaLvTxusiNwV6LKDn6vSJLY5Pl2HaE9O9sqWfYXeh+oos6cOS3bB5fkmDqJeDUXHH5oJFttkIosZAj1W0QjROcpF3/j4fx+15DsbGMwXfF4qeBAGA2PdAlwpdZK+krJeAyNn7jNUc2STWVS7ZBRBs0SV8meE1TrjQf5zcQMmoBhLRot6/9iiZyoeBYh2s4JA2u+1HakCLEFproN288teBwA6X/apKe+AauHCYnrUMSO8Wjhz7vaQlkWkQ7tq5rcT6kPGkmwhWvhVylDYXB51SD0KI/17qHm4z8hWiXzArl22P1r6TwP87WBmnAudPfAM5Jj0Uq1UeCE2LpG+8Z2IzKPe1OTLJhtcrjza3q/vFj/J1lT1pq2PM9eDs9p0aV3KuCH3+1Ms7oMqq8IjeJdExYFIa002NxCTkc7VWyMnwHWYCSGC+vPUR9KeZKtWvMpHpJRIJegXiF2LWRU0XrXfwnguiOpWVmSW3XGemedxRsIG0AOyNSLAfq+9Wqvcbz6lcwzskDcLwwOHo2Qo9sRWB7wEytcJwGstXHbXLXR3GXvIkogD7slYd3mvqsczeTPCJ7KeftQP0yGi6gb3wM7igDkIc2tvvdrwQqg7SBjOOU1mUwZbMXYb4ErlFNELHw+5/Tu/qlQcaSma/WWiOL1z0yj1HnfF/PhdWJ/ohlDCMg5iwPW4Xa1gJx+SEGz/lr9ZFbSvCIzzVFgXN+v+26kNb/VvM4dqfSUoj722AOv0fvkNA7qS0EZ7j0gv2L5IZMjibK7DwQ/SLgiQf9sALPWkSBoJfBdZ4k5vJXry4p3Uh2BHUeDckQzNaB3oQJVT8X+6h+8hpvZS5KpDRrq57odJEWqcWQ3tEozyANqL2XTea3tH3h9Fi3ZqmhNTazvdRMGXHLaOhMIg6kmo84aYbPMapv/5fyQdXrELZLiuZh9oxLTECqrHN1kx8BLSLp4ubpkent7NV2LgJbA+jZhE7pUH2vnND4b6XNpOOSha+3y6/kLCjj6cnxUhnwjUUdCCfzXTK1j1+RCS1+G89SR+f7q1NQy/LPK4qD/FVAmquCFMsDzwKNPfNJdxadiElAezivEP4q7ihjH2iNKm/7WJouYfWfYTYXAepa5OIZodJP1otQu1uheDmm1COKnUw9PW6rOQkNK41Weiej0fWqTLi19Fe9YbWagVXf4qJ74RhxLhoWso2JdQV3OPNjCXa5EXn8mRGsB8yQKtwZvZTgtjMB+BMcEa6Qqb74G3mFifyB1+ZCdGIBijK0eMPzyskyqdQG15wC152F5A2BnImIObQ4MgFFqY0gbjM1xzUcb/mhQ196sPP+Mv+25uw4CcJE+5FQW6ONx343MEcs8P+esaRlY2CH4uXiUBtjltzlcD3kpC4RobNzuCMb/NLROkx+mLKZJeID1SgBa1Shj7OzYqVYyyUEpdPfgLEgwFsCtBl3Tsf05yW19acFX2+fYQXk+/k5gs/pkCt2ol27Z4bcGDEOP4zPCd5KrHyvguyUDXWepc48}步驟13: 用POST方式獲得這些返回?cái)?shù)據(jù),如果簽名方式設(shè)置的是0001(RSA)時(shí),需要先對(duì)這些數(shù)據(jù)中的參數(shù)notify_data做解密;如果簽名方式設(shè)置的是MD5,因?yàn)橹苯臃祷孛魑,所以不需要解密?/div>{service=alipay.wap.trade.create.direct, sign=eUHFymt6/MSGNDX8XcnD44IRKEXkx3mG5dk9hp39LYqmwO/WWf9+mldyljSkEXTo9wA2p8Tv9CR1NCTy9nMjHg19KWX8Rtrz2CIfoOvTsE8ttxaRzkQ8TBo/K3sHPERJmQZE2uW8RyXywMaRbRMC+90YATDqex6e7FCR0HQt4KI=, sec_id=0001, v=1.0, notify_data=<notify><partner>2088101568358171</partner><payment_type>8</payment_type><subject>測(cè)試</subject><trade_no>2013061742035035</trade_no><buyer_email>xxxxxxx@xx.com</buyer_email><gmt_create>2013-06-17 20:12:35</gmt_create><notify_type>trade_status_sync</notify_type><quantity>1</quantity><out_trade_no>cs201306170002</out_trade_no><notify_time>2013-06-17 20:12:40</notify_time><seller_id>2088501624560335</seller_id><out_channel_type>BALANCE</out_channel_type><trade_status>TRADE_SUCCESS</trade_status><is_total_fee_adjust>N</is_total_fee_adjust><total_fee>0.01</total_fee><gmt_payment>2013-06-17 20:12:40</gmt_payment><seller_email>alipayrisk10@alipay.com</seller_email><price>0.01</price><buyer_id>2088002396712354</buyer_id><out_channel_amount>0.01</out_channel_amount><notify_id>c6936b49aa4422d63bf14bc507c535983y</notify_id><use_coupon>N</use_coupon></notify>}notify_url異步通知的簽名驗(yàn)證規(guī)律與call_back_url不同,商戶只需要順序獲取支付寶的返回?cái)?shù)據(jù),不需要對(duì)這些參數(shù)排序。因此,直接把數(shù)組sPara(調(diào)用notify_url頁(yè)面中的GetRequestPost()函數(shù))轉(zhuǎn)變成待簽名字符串。service=alipay.wap.trade.create.direct&v=1.0&sec_id=0001¬ify_data=<notify><partner>2088101568358171</partner><payment_type>8</payment_type><subject>測(cè)試</subject><trade_no>2013061742035035</trade_no><buyer_email>xxxxxxx@xx.com</buyer_email><gmt_create>2013-06-17 20:12:35</gmt_create><notify_type>trade_status_sync</notify_type><quantity>1</quantity><out_trade_no>cs201306170002</out_trade_no><notify_time>2013-06-17 20:12:40</notify_time><seller_id>2088501624560335</seller_id><out_channel_type>BALANCE</out_channel_type><trade_status>TRADE_SUCCESS</trade_status><is_total_fee_adjust>N</is_total_fee_adjust><total_fee>0.01</total_fee><gmt_payment>2013-06-17 20:12:40</gmt_payment><seller_email>alipayrisk10@alipay.com</seller_email><price>0.01</price><buyer_id>2088002396712354</buyer_id><out_channel_amount>0.01</out_channel_amount><notify_id>c6936b49aa4422d63bf14bc507c535983y</notify_id><use_coupon>N</use_coupon></notify>接著對(duì)該字符串做簽名驗(yàn)證(這一系列動(dòng)作調(diào)用AlipayNotify類中的VerifyNotify函數(shù)),得到布爾類型的驗(yàn)證結(jié)果,完成notify_url頁(yè)面文件的驗(yàn)證動(dòng)作。步驟14: 在notify_url頁(yè)面文件中,參數(shù)notify_data是XML結(jié)構(gòu)的字符串,需要先XML解析,再獲取需要的子節(jié)點(diǎn)數(shù)據(jù)。6 Testing flow rulesTable 6-1 testing flow rulesSteps Debugging contents NotesStep 1: debug this interface independently on this computer 正常獲取授權(quán)令牌 模擬手機(jī)瀏覽器進(jìn)行付款 頁(yè)面跳轉(zhuǎn)同步返回 Only configure the interface well. It shall not be put into the website project of the commercial user.Step 2: debug this interface independently on the server 正常獲取授權(quán)令牌 模擬手機(jī)瀏覽器進(jìn)行付款 頁(yè)面跳轉(zhuǎn)同步返回 服務(wù)器異步通知返回 Put into the server debugging after debugging this computer without error.Step 3: interface is integrated to website project - Make the connection and integration between the debugged interfaces and the business flows of commercial users’ website project.Step4: debug the integrated website project on this computer The whole business operation flow 模擬手機(jī)瀏覽器進(jìn)行付款 頁(yè)面跳轉(zhuǎn)同步返回 Subsequent execution of business Debug the interfaces integrated to the website project on this computerStep 5: debug the integrated website project The whole business operation flow 使用手機(jī)瀏覽器進(jìn)行付款 頁(yè)面跳轉(zhuǎn)同步返回 服務(wù)器異步通知返回 Subsequent execution of business After the debugging on this computer is faultless, then put into server for debugging.7 附錄7.1 如何獲得PID與密鑰步驟1: 使用簽約支付寶賬號(hào)登錄“商家服務(wù)”平臺(tái)中的“我的商家服務(wù)”(https://b.alipay.com/order/serviceIndex.htm)。圖7-1 我的商家服務(wù)步驟2: 在地址欄中輸入https://mobiless.alipay.com/myproduct/my_order.htm,即可查看到簽約支付寶賬號(hào)、合作者身份ID(PID)的信息。圖7-2 查看簽約支付寶賬號(hào)等信息步驟3: 點(diǎn)擊<密鑰管理>按鈕,輸入“支付密碼”,點(diǎn)擊“確認(rèn)”,即可查看到各類型的私鑰。圖7-3 查看私鑰步驟4: 上傳RSA類型的商戶公鑰,獲得支付寶公鑰。圖7-4獲取支付寶公鑰步驟5: 保存支付寶賬號(hào)、合作者身份ID(PID)、交易安全校驗(yàn)碼(MD5)、交易安全校驗(yàn)碼(RSA)中的支付寶公鑰。7.2 RSA密鑰生成與使用7.2.1 生成商戶密鑰1. 打開(kāi)openssl密鑰生成軟件打開(kāi)openssl文件夾下的bin文件夾,執(zhí)行openssl.exe文件,如下圖:圖7-5 執(zhí)行openssl.exe文件2. 生成RSA私鑰輸入“genrsa -out rsa_private_key.pem 1024”命令,回車后,在當(dāng)前bin文件目錄中會(huì)新增一個(gè)rsa_private_key.pem文件,其文件為原始的商戶私鑰(請(qǐng)妥善保存該文件,PHP開(kāi)發(fā)語(yǔ)言中需要使用該文件),以下為命令正確執(zhí)行截圖:圖7-6 生成RSA私鑰3. 生成RSA公鑰輸入“rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem”命令回車后,在當(dāng)前bin文件目錄中會(huì)新增一個(gè)rsa_public_key.pem文件,其文件為原始的商戶公鑰(請(qǐng)妥善保存該文件,PHP開(kāi)發(fā)語(yǔ)言中需要使用該文件),以下為命令正確執(zhí)行截圖:圖7-7 生成RSA公鑰4. 生成PKCS8編碼的私鑰輸入命令“pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt”并回車,當(dāng)前界面中會(huì)直接顯示出生成結(jié)果:圖7-8 生成PKCS8編碼的私鑰右鍵點(diǎn)擊openssl窗口上邊邊緣,選擇“編輯→標(biāo)記”,選中要復(fù)制的文字:圖7-9 選中要復(fù)制的文字此時(shí)繼續(xù)右鍵點(diǎn)擊openssl窗口上邊邊緣,選擇“編輯→復(fù)制”,把復(fù)制的內(nèi)容粘貼進(jìn)一個(gè)新的記事本中,可隨意命名,只要知道這個(gè)是PKCS8格式的私鑰即可(請(qǐng)妥善保存該文件)。7.2.2 RSA密鑰使用邏輯RSA密鑰使用邏輯:商戶在使用RSA簽名方式的支付寶接口時(shí),真正會(huì)用到的密鑰是商戶私鑰與支付寶公鑰。商戶上傳公鑰給支付寶,支付寶把公鑰給商戶,是公鑰互換的操作。這就使得商戶使用自己的私鑰做簽名時(shí),支付寶端會(huì)根據(jù)商戶上傳的公鑰做驗(yàn)證簽名。商戶使用支付寶公鑰做驗(yàn)證簽名時(shí),同理,也是因?yàn)橹Ц秾氂弥Ц秾毸借做了簽名。1. PHP開(kāi)發(fā)語(yǔ)言使用方法key文件夾里面須存放.pem后綴名的商戶私鑰、支付寶公鑰兩個(gè)文件。 商戶的私鑰– 必須保證只有一行文字,即:沒(méi)有回車、換行、空格等;– 不需要對(duì)剛生成的(原始的)私鑰做pkcs8編碼;– 不需要去掉去掉“-----BEGIN PUBLIC KEY-----”、“-----END PUBLIC KEY-----”;– 簡(jiǎn)言之,只要維持剛生成出來(lái)的私鑰的內(nèi)容即可。 支付寶公鑰(1) 先用簽約支付寶賬號(hào)登錄支付寶網(wǎng)站,再瀏覽器訪問(wèn)“https://ms.alipay.com/index.htm”,點(diǎn)擊菜單欄“我的商家服務(wù)”,右側(cè)點(diǎn)擊“密鑰管理”進(jìn)入密鑰管理頁(yè)面,復(fù)制“交易安全校驗(yàn)碼(RSA)”→“支付寶公鑰”欄目下的整串信息到一個(gè)新的記事本中,命名為“alipay_public_key.txt”;(2) 去掉這串字符串中的回車、換行、空格,變成只有一行文字;(3) 在這串支付寶公鑰字符串的頭尾部分,分別增加“-----BEGIN PUBLIC KEY-----”、“-----END PUBLIC KEY-----”這兩條文字;(4) 切割這串支付寶公鑰字符串,切割后的格式與商戶剛生成的公鑰格式一致即可,如下圖:圖7-10 支付寶公鑰示意圖(5) 保存該記事本,并改變后綴名為.pem。2. JAVA和ASP.NET(C#)開(kāi)發(fā)語(yǔ)言使用方法 商戶的私鑰– 必須保證只有一行文字,即:沒(méi)有回車、換行、空格等;– 需對(duì)剛生成的(原始的)私鑰做pkcs8編碼;– 編碼完成后,復(fù)制該段私鑰,并去掉該段里面的回車、換行、空格、“-----BEGIN RSA PRIVATE KEY-----”、“-----END RSA PRIVATE KEY-----”。 支付寶公鑰(1) 先用簽約支付寶賬號(hào)登錄支付寶網(wǎng)站,再瀏覽器訪問(wèn)“https://ms.alipay.com/index.htm”,點(diǎn)擊菜單欄“我的商家服務(wù)”,右側(cè)點(diǎn)擊“密鑰管理”進(jìn)入密鑰管理頁(yè)面,復(fù)制“交易安全校驗(yàn)碼(RSA)”→“支付寶公鑰”欄目下的整串信息;(2) 去掉這串字符串中的回車、換行、空格,必須保證只有一行文字。7.3 業(yè)務(wù)數(shù)據(jù)傳遞支付寶提供的業(yè)務(wù)參數(shù)為支付寶需要商戶傳遞過(guò)來(lái)的數(shù)據(jù)要求。商戶只需要根據(jù)自己的業(yè)務(wù)需求,在業(yè)務(wù)邏輯代碼運(yùn)行時(shí)把這些動(dòng)態(tài)數(shù)據(jù)以賦值給變量的形式,再通過(guò)支付寶接口本身的接口邏輯,傳遞給支付寶系統(tǒng),讓支付寶系統(tǒng)可識(shí)別。舉例說(shuō)明,商戶要把某筆訂單的數(shù)據(jù)傳遞給支付寶。那么商戶需要先根據(jù)支付寶的參數(shù)要求,從自己的下單系統(tǒng)中拿到付款總金額(total_fee)、商戶的訂單號(hào)(out_trade_no)、訂單名稱(subject)等數(shù)據(jù),再把這些數(shù)據(jù)一個(gè)一個(gè)以值的形式賦給對(duì)應(yīng)的變量。再通過(guò)代碼邏輯,把變量組合及加工成一次可以發(fā)送給支付寶的請(qǐng)求。7.4 如何增加擴(kuò)展業(yè)務(wù)參數(shù)注意:本章節(jié)以代碼示例為例,來(lái)說(shuō)明如何增加擴(kuò)展業(yè)務(wù)參數(shù),僅供參考。商戶需要根據(jù)自身情況來(lái)編寫擴(kuò)展業(yè)務(wù)參數(shù)的代碼。打開(kāi)配置業(yè)務(wù)參數(shù)的頁(yè)面文件,找到代碼修改位置。1. JAVA修改流程alipayapi.jsp文件,在參數(shù)req_dataToken中的根節(jié)點(diǎn)<direct_trade_create_req>下新增子節(jié)點(diǎn)。舉例,新增一個(gè)參數(shù)merchant_url,那么修改前后比較如下: 修改前:String req_dataToken = "<direct_trade_create_req><notify_url>" + notify_url + "</notify_url><call_back_url>" + call_back_url + "</call_back_url><seller_account_name>" + seller_email + "</seller_account_name><out_trade_no>" + out_trade_no + "</out_trade_no><subject>" + subject + "</subject><total_fee>" + total_fee + "</total_fee></direct_trade_create_req>"; 修改后:String req_dataToken = "<direct_trade_create_req><notify_url>" + notify_url + "</notify_url><call_back_url>" + call_back_url +"</call_back_url><seller_account_name>" + seller_email + "</seller_account_name><out_trade_no>" + out_trade_no + "</out_trade_no><subject>" + subject + "</subject><total_fee>" + total_fee + "</total_fee><merchant_url>" + merchant_url + "</merchant_url></direct_trade_create_req>";merchant_url為新增的業(yè)務(wù)參數(shù)變量,需商戶為其賦值。2. PHP修改流程alipayapi.php文件,在參數(shù)$req_data中的根節(jié)點(diǎn)<direct_trade_create_req>下新增子節(jié)點(diǎn)。舉例,新增一個(gè)參數(shù)merchant_url,那么修改前后比較如下: 修改前:$req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee></direct_trade_create_req>'; 修改后:$req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>'.$merchant_url.'</merchant_url></direct_trade_create_req>';$merchant_url為新增的業(yè)務(wù)參數(shù)變量,需商戶為其賦值。3. ASP.NET(C#)修改流程default.aspx.cs文件,在參數(shù)req_dataToken中的根節(jié)點(diǎn)<direct_trade_create_req>下新增子節(jié)點(diǎn)。舉例,新增一個(gè)參數(shù)merchant_url,那么修改前后比較如下: 修改前:string req_dataToken = "<direct_trade_create_req><notify_url>" + notify_url + "</notify_url><call_back_url>" + call_back_url + "</call_back_url><seller_account_name>" + seller_email + "</seller_account_name><out_trade_no>" + out_trade_no + "</out_trade_no><subject>" + subject + "</subject><total_fee>" + total_fee + "</total_fee></direct_trade_create_req>"; 修改后:string req_dataToken = "<direct_trade_create_req><notify_url>" + notify_url + "</notify_url><call_back_url>" + call_back_url +"</call_back_url><seller_account_name>" + seller_email + "</seller_account_name><out_trade_no>" + out_trade_no + "</out_trade_no><subject>" + subject + "</subject><total_fee>" + total_fee + "</total_fee><merchant_url>" + merchant_url + "</merchant_url></direct_trade_create_req>";merchant_url為新增的業(yè)務(wù)參數(shù)變量,需商戶為其賦值。7.5 如何更新訂單在交易過(guò)程中,不僅需要實(shí)現(xiàn)能夠讓買家成功付款,而且還需要商戶網(wǎng)站的訂單數(shù)據(jù)與支付寶的交易管理中的交易信息保持一致。要使信息保持一致,就需要商戶網(wǎng)站的程序開(kāi)發(fā)、維護(hù)或管理的技術(shù)人員根據(jù)商戶網(wǎng)站的業(yè)務(wù)流程做訂單更新的程序開(kāi)發(fā)。 訂單更新的業(yè)務(wù)程序代碼放置位置參數(shù)notify_url對(duì)應(yīng)的頁(yè)面文件、參數(shù)return_url對(duì)應(yīng)的頁(yè)面文件,注釋指定的位置。 訂單更新的頁(yè)面文件如何被調(diào)用前提:參數(shù)notify_url、參數(shù)return_url有被正確設(shè)置。– 當(dāng)買家付款完成時(shí),當(dāng)前界面會(huì)自動(dòng)跳轉(zhuǎn)到參數(shù)return_url對(duì)應(yīng)的頁(yè)面文件,此時(shí)return_url對(duì)應(yīng)的頁(yè)面文件則被啟動(dòng);– 當(dāng)該筆交易在支付寶交易管理中存在且交易狀態(tài)改變時(shí),支付寶會(huì)主動(dòng)發(fā)送通知到參數(shù)notify_url對(duì)應(yīng)的頁(yè)面文件,此時(shí)參數(shù)notify_url對(duì)應(yīng)的頁(yè)面文件則被啟動(dòng)。 如何能獲得支付寶處理完成后的通知返回?cái)?shù)據(jù)通知返回?cái)?shù)據(jù)的參數(shù)詳見(jiàn)技術(shù)文檔通知返回參數(shù)列表。– 參數(shù)return_url對(duì)應(yīng)的頁(yè)面文件中獲取參數(shù)方式是GET方式獲取,如:request.querrystring("參數(shù)名")、$_GET['參數(shù)名']– 參數(shù)notify_url對(duì)應(yīng)的頁(yè)面文件中獲取參數(shù)方式是POST方式獲取,如:request.form("參數(shù)名")、$_POST['參數(shù)名'] 訂單更新基本思想通過(guò)代碼示例中的驗(yàn)證之后,獲取支付寶反饋數(shù)據(jù),先根據(jù)這筆交易找到商戶網(wǎng)站訂單系統(tǒng)中對(duì)應(yīng)的訂單,再判斷該筆訂單是否已經(jīng)做過(guò)處理,如果未做處理,那么按照商戶網(wǎng)站的業(yè)務(wù)流程更新訂單數(shù)據(jù)。Unitrans世聯(lián)翻譯公司在您身邊,離您近的翻譯公司,心貼心的專業(yè)服務(wù),專業(yè)的全球語(yǔ)言翻譯與信息解決方案供應(yīng)商,專業(yè)翻譯機(jī)構(gòu)品牌。無(wú)論在本地,國(guó)內(nèi)還是海外,我們的專業(yè)、星級(jí)體貼服務(wù),為您的事業(yè)加速!世聯(lián)翻譯公司在北京、上海、深圳等國(guó)際交往城市設(shè)有翻譯基地,業(yè)務(wù)覆蓋全國(guó)城市。每天有近百萬(wàn)字節(jié)的信息和貿(mào)易通過(guò)世聯(lián)走向全球!積累了大量政商用戶數(shù)據(jù),翻譯人才庫(kù)數(shù)據(jù),多語(yǔ)種語(yǔ)料庫(kù)大數(shù)據(jù)。世聯(lián)品牌和服務(wù)品質(zhì)已得到政務(wù)防務(wù)和國(guó)際組織、跨國(guó)公司和大中型企業(yè)等近萬(wàn)用戶的認(rèn)可。 專業(yè)翻譯公司,北京翻譯公司,上海翻譯公司,英文翻譯,日文翻譯,韓語(yǔ)翻譯,翻譯公司排行榜,翻譯公司收費(fèi)價(jià)格表,翻譯公司收費(fèi)標(biāo)準(zhǔn),翻譯公司北京,翻譯公司上海。
-
“貴司提交的稿件專業(yè)詞匯用詞準(zhǔn)確,語(yǔ)言表達(dá)流暢,排版規(guī)范, 且服務(wù)態(tài)度好。在貴司的幫助下,我司的編制周期得以縮短,稿件語(yǔ)言的表達(dá)質(zhì)量得到很大提升”
-
“我單位是一家總部位于丹麥的高科技企業(yè),和世聯(lián)翻譯第一次接觸,心中仍有著一定的猶豫,貴司專業(yè)的譯員與高水準(zhǔn)的服務(wù),得到了國(guó)外合作伙伴的認(rèn)可!”
-
“我公司是一家荷蘭駐華分公司,主要致力于行為學(xué)研究軟件、儀器和集成系統(tǒng)的開(kāi)發(fā)和銷售工作,所需翻譯的英文說(shuō)明書(shū)專業(yè)性強(qiáng),翻譯難度較大,貴司總能提供優(yōu)質(zhì)的服務(wù)。”
-
“為我司在東南亞地區(qū)的業(yè)務(wù)開(kāi)拓提供小語(yǔ)種翻譯服務(wù)中,翻譯稿件格式美觀整潔,能最大程度的還原原文的樣式,同時(shí)翻譯質(zhì)量和速度也得到我司的肯定和好評(píng)!”
-
“在此之前,我們公司和其他翻譯公司有過(guò)合作,但是翻譯質(zhì)量實(shí)在不敢恭維,所以當(dāng)我認(rèn)識(shí)劉穎潔以后,對(duì)她的專業(yè)性和貴公司翻譯的質(zhì)量非常滿意,隨即簽署了長(zhǎng)期合作合同!
-
“我行自2017年與世聯(lián)翻譯合作,合作過(guò)程中十分愉快。特別感謝Jasmine Liu, 態(tài)度熱情親切,有耐心,對(duì)我行提出的要求落實(shí)到位,體現(xiàn)了非常高的專業(yè)性。”
-
“與我公司對(duì)接的世聯(lián)翻譯客服經(jīng)理,可以及時(shí)對(duì)我們的要求進(jìn)行反饋,也會(huì)盡量滿足我們臨時(shí)緊急的文件翻譯要求。熱情周到的服務(wù)給我們留下深刻印象!”
-
“翻譯金融行業(yè)文件各式各樣版式復(fù)雜,試譯多家翻譯公司,后經(jīng)過(guò)比價(jià)、比服務(wù)、比質(zhì)量等流程下來(lái),最終敲定了世聯(lián)翻譯。非常感謝你們提供的優(yōu)質(zhì)服務(wù)。”
-
“我司所需翻譯的資料專業(yè)性強(qiáng),涉及面廣,翻譯難度大,貴司總能提供優(yōu)質(zhì)的服務(wù)。在一次業(yè)主單位對(duì)完工資料質(zhì)量的抽查中,我司因?yàn)槎砦姆g質(zhì)量過(guò)關(guān)而受到了好評(píng)!
-
“我司在2014年與貴公司建立合作關(guān)系,貴公司的翻譯服務(wù)質(zhì)量高、速度快、態(tài)度好,贏得了我司各部門的一致好評(píng)。貴司經(jīng)理工作認(rèn)真踏實(shí),特此致以誠(chéng)摯的感謝!”
-
“我們需要的翻譯人員,不論是筆譯還是口譯,都需要具有很強(qiáng)的專業(yè)性,貴公司的德文翻譯稿件和現(xiàn)場(chǎng)的同聲傳譯都得到了我公司和合作伙伴的充分肯定!
-
“在這5年中,世聯(lián)翻譯公司人員對(duì)工作的認(rèn)真、負(fù)責(zé)、熱情、周到深深的打動(dòng)了我。不僅譯件質(zhì)量好,交稿時(shí)間及時(shí),還能在我司資金周轉(zhuǎn)緊張時(shí)給予體諒!
-
“我公司與世聯(lián)翻譯一直保持著長(zhǎng)期合作關(guān)系,這家公司報(bào)價(jià)合理,質(zhì)量可靠,效率又高。他們翻譯的譯文發(fā)到國(guó)外公司,對(duì)方也很認(rèn)可!
-
“貴公司翻譯的譯文質(zhì)量很高,語(yǔ)言表達(dá)流暢、排版格式規(guī)范、專業(yè)術(shù)語(yǔ)翻譯到位、翻譯的速度非常快、后期服務(wù)熱情。我司翻譯了大量的專業(yè)文件,經(jīng)過(guò)長(zhǎng)久合作,名副其實(shí),值得信賴!
-
“針對(duì)我們農(nóng)業(yè)科研論文寫作要求,盡量尋找專業(yè)對(duì)口的專家為我提供翻譯服務(wù),最后又按照學(xué)術(shù)期刊的要求,提供潤(rùn)色原稿和相關(guān)的證明文件。非常感謝世聯(lián)翻譯公司!”
-
“世聯(lián)的客服經(jīng)理態(tài)度熱情親切,對(duì)我們提出的要求都落實(shí)到位,回答我們的問(wèn)題也非常有耐心。譯員十分專業(yè),工作盡職盡責(zé),獲得與其共事的公司總部同事們的一致高度認(rèn)可。”
-
“我公司與馬來(lái)西亞政府有相關(guān)業(yè)務(wù)往來(lái),急需翻譯項(xiàng)目報(bào)備材料。在經(jīng)過(guò)對(duì)各個(gè)翻譯公司的服務(wù)水平和質(zhì)量的權(quán)衡下,我們選擇了世聯(lián)翻譯公司。翻譯很成功,公司領(lǐng)導(dǎo)非常滿意!
-
“客服經(jīng)理能一貫熱情負(fù)責(zé)的完成每一次翻譯工作的組織及溝通。為客戶與譯員之間搭起順暢的溝通橋梁。能協(xié)助我方建立專業(yè)詞庫(kù),并向譯員準(zhǔn)確傳達(dá)落實(shí),準(zhǔn)確及高效的完成統(tǒng)一風(fēng)格!
-
“貴公司與我社對(duì)翻譯項(xiàng)目進(jìn)行了幾次詳細(xì)的會(huì)談,期間公司負(fù)責(zé)人和廖小姐還親自來(lái)我社拜訪,對(duì)待工作熱情,專業(yè)度高,我們雙方達(dá)成了很好的共識(shí)。對(duì)貴公司的服務(wù)給予好評(píng)!”
-
“非常感謝世聯(lián)翻譯!我們對(duì)此次緬甸語(yǔ)訪談翻譯項(xiàng)目非常滿意,世聯(lián)在充分了解我司項(xiàng)目的翻譯意圖情況下,即高效又保質(zhì)地完成了譯文!
-
“在合作過(guò)程中,世聯(lián)翻譯保質(zhì)、保量、及時(shí)的完成我們交給的翻譯工作?蛻艚(jīng)理工作積極,服務(wù)熱情、周到,能全面的了解客戶的需求,在此表示特別的感謝。”
-
“我們通過(guò)圖書(shū)翻譯項(xiàng)目與你們相識(shí)乃至建立友誼,你們報(bào)價(jià)合理、服務(wù)細(xì)致、翻譯質(zhì)量可靠。請(qǐng)?jiān)试S我們借此機(jī)會(huì)向你們表示衷心的感謝!”
-
“很滿意世聯(lián)的翻譯質(zhì)量,交稿準(zhǔn)時(shí),中英互譯都比較好,措辭和句式結(jié)構(gòu)都比較地道,譯文忠實(shí)于原文。TNC是一家國(guó)際環(huán)保組織,發(fā)給我們美國(guó)總部的同事后,他們反應(yīng)也不錯(cuò)!
-
“原英國(guó)首相布萊爾來(lái)訪,需要非常專業(yè)的同聲傳譯服務(wù),因是第一次接觸,心中仍有著一定的猶豫,但是貴司專業(yè)的譯員與高水準(zhǔn)的服務(wù),給我們留下了非常深刻的印象!
-
“在與世聯(lián)翻譯合作期間,世聯(lián)秉承著“上善若水、厚德載物”的文化理念,以上乘的品質(zhì)和質(zhì)量,信守對(duì)客戶的承諾,出色地完成了我公司交予的翻譯工作!
-
“由于項(xiàng)目要求時(shí)間相當(dāng)緊湊,所以世聯(lián)在保證質(zhì)量的前提下,盡力按照時(shí)間完成任務(wù)。使我們?cè)谑啦⿻?huì)俄羅斯館日活動(dòng)中準(zhǔn)備充足,并受到一致好評(píng)。”
-
“貴公司針對(duì)客戶需要,挑選優(yōu)秀的譯員承接項(xiàng)目,翻譯過(guò)程客戶隨時(shí)查看中途稿,并且與客戶溝通術(shù)語(yǔ)方面的知識(shí),能夠更準(zhǔn)確的了解到客戶的需求,確保稿件高質(zhì)量!