您好,登錄后才能下訂單哦!
用戶在商戶網(wǎng)站上完成支付一、商戶申請流程和業(yè)務(wù)場景即時(shí)到賬:網(wǎng)上交易時(shí),買家的交易資金直接打入賣家支付寶賬戶,快速回籠交易資金。申請條件:
1) 申請前必須擁有經(jīng)過實(shí)名認(rèn)證的支付寶賬戶;
2) 企業(yè)或個(gè)體工商戶可申請;
3) 需提供真實(shí)有效的營業(yè)執(zhí)照,且支付寶賬戶名稱需與營業(yè)執(zhí)照主體一致;
4) 網(wǎng)站能正常訪問且頁面顯示完整,網(wǎng)站需要明確經(jīng)營內(nèi)容且有完整的商品信息;
5) 網(wǎng)站必須通過ICP備案。如為個(gè)體工商戶,網(wǎng)站備案主體需要與支付寶賬戶主體名稱一致;
6) 如為個(gè)體工商戶,則團(tuán)購不開放,且古玩、珠寶等奢侈品、投資類行業(yè)無法申請本產(chǎn)品;
使用場景:
買家選擇產(chǎn)品
買家選擇付款方式
買家選擇手機(jī)掃一掃付款或 買家選擇在電腦端登錄賬戶付款
買家選擇在電腦端登錄賬戶付款,并完成交易
買家選擇手機(jī)掃一掃并完成付款
查看交易記錄
商戶登入注冊入口:https://b.alipay.com/signing/productDetail.htm?productId=I1011000290000001000#J_detailItem3
支付寶支付實(shí)例下載:https://doc.open.alipay.com/doc2/detail?treeId=62&articleId=103566&docType=1
支付寶支付開發(fā)者API:https://doc.open.alipay.com/docs/api.htm?docType=4&apiId=850
二、開發(fā)步驟及說明
下載DEMO的java版本 -
代碼結(jié)構(gòu):
1. index.jsp支付寶即時(shí)到賬接口調(diào)用頁面
<div class="content"> <form action="alipayapi.jsp" class="alipayform" method="POST" target="_blank"> <div class="element" > <div class="legend">支付寶即時(shí)到賬交易接口快速通道 </div> </div> <div class="element"> <div class="etitle">商戶訂單號:</div> <div class="einput"><input type="text" name="WIDout_trade_no" id="out_trade_no"></div> <br> <div class="mark">注意:商戶訂單號(out_trade_no).必填(建議是英文字母和數(shù)字,不能含有特殊字符</div> </div> <div class="element"> <div class="etitle">商品名稱:</div> <div class="einput"><input type="text" name="WIDsubject" value="test商品123"></div> <br> <div class="mark">注意:產(chǎn)品名稱(subject),必填(建議中文,英文,數(shù)字,不能含有特殊字符)</div> </div> <div class="element"> <div class="etitle">付款金額:</div> <div class="einput"><input type="text" name="WIDtotal_fee" value="0.01"></div> <br> <div class="mark">注意:付款金額(total_fee),必填(格式如:1.00,請精確到分)</div> </div> <div class="element"> <div class="etitle">商品描述:</div> <div class="einput"><input type="text" name="WIDbody" value="即時(shí)到賬測試"></div> <br> <div class="mark">注意:商品描述(body),選填(建議中文,英文,數(shù)字,不能含有特殊字符)</div> </div> <div class="element"> <input type="submit" class="alisubmit" value ="確認(rèn)支付"> </div> </form> </div>
準(zhǔn)備用戶產(chǎn)品參數(shù)
點(diǎn)擊確認(rèn):提交到alipayapi.jsp
2.alipayapi.jsp獲取調(diào)用接口配置公共參數(shù)
////////////////////////////////////請求參數(shù)////////////////////////////////////// //商戶訂單號,商戶網(wǎng)站訂單系統(tǒng)中唯一訂單號,必填 String out_trade_no = new String(request.getParameter("WIDout_trade_no").getBytes("ISO-8859-1"),"UTF-8"); //訂單名稱,必填 String subject = new String(request.getParameter("WIDsubject").getBytes("ISO-8859-1"),"UTF-8"); //付款金額,必填 String total_fee = new String(request.getParameter("WIDtotal_fee").getBytes("ISO-8859-1"),"UTF-8"); //商品描述,可空 String body = new String(request.getParameter("WIDbody").getBytes("ISO-8859-1"),"UTF-8"); ////////////////////////////////////////////////////////////////////////////////// //把請求參數(shù)打包成數(shù)組 Map<String, String> sParaTemp = new HashMap<String, String>(); sParaTemp.put("service", AlipayConfig.service); sParaTemp.put("partner", AlipayConfig.partner); sParaTemp.put("seller_id", AlipayConfig.seller_id); sParaTemp.put("_input_charset", AlipayConfig.input_charset); sParaTemp.put("payment_type", AlipayConfig.payment_type); sParaTemp.put("notify_url", AlipayConfig.notify_url); sParaTemp.put("return_url", AlipayConfig.return_url); sParaTemp.put("anti_phishing_key", AlipayConfig.anti_phishing_key); sParaTemp.put("exter_invoke_ip", AlipayConfig.exter_invoke_ip); sParaTemp.put("out_trade_no", out_trade_no); sParaTemp.put("subject", subject); sParaTemp.put("total_fee", total_fee); sParaTemp.put("body", body); //其他業(yè)務(wù)參數(shù)根據(jù)在線開發(fā)文檔,添加參數(shù).文檔地址:https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.O9yorI&treeId=62&articleId=103740&docType=1 //如sParaTemp.put("參數(shù)名","參數(shù)值"); //建立請求 String sHtmlText = AlipaySubmit.buildRequest(sParaTemp,"get","確認(rèn)"); out.println(sHtmlText);
調(diào)用AlipaySubmit.buildRequest(sParaTemp,”get”,”確認(rèn)”);
3.AlipaySubmit組裝調(diào)用支付寶網(wǎng)管接口
/** * 建立請求,以表單HTML形式構(gòu)造(默認(rèn)) * @param sParaTemp 請求參數(shù)數(shù)組 * @param strMethod 提交方式。兩個(gè)值可選:post、get * @param strButtonName 確認(rèn)按鈕顯示文字 * @return 提交表單HTML文本 */ public static String buildRequest(Map<String, String> sParaTemp, String strMethod, String strButtonName) { //待請求參數(shù)數(shù)組 Map<String, String> sPara = buildRequestPara(sParaTemp); List<String> keys = new ArrayList<String>(sPara.keySet()); StringBuffer sbHtml = new StringBuffer(); sbHtml.append("<form id=\"alipaysubmit\" name=\"alipaysubmit\" action=\"" + ALIPAY_GATEWAY_NEW + "_input_charset=" + AlipayConfig.input_charset + "\" method=\"" + strMethod + "\">"); for (int i = 0; i < keys.size(); i++) { String name = (String) keys.get(i); String value = (String) sPara.get(name); sbHtml.append("<input type=\"hidden\" name=\"" + name + "\" value=\"" + value + "\"/>"); } //submit按鈕控件請不要含有name屬性 sbHtml.append("<input type=\"submit\" value=\"" + strButtonName + "\" style=\"display:none;\"></form>"); sbHtml.append("<script>document.forms['alipaysubmit'].submit();</script>"); return sbHtml.toString(); }
組裝成隱藏form表單自動(dòng)提交。
同步和異步返回頁面進(jìn)行對返回參數(shù)的獲取和對商戶本身業(yè)務(wù)邏輯處理
4.說明
public class AlipayConfig { //↓↓↓↓↓↓↓↓↓↓請?jiān)谶@里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ // 合作身份者ID,簽約賬號,以2088開頭由16位純數(shù)字組成的字符串,查看地址:https://b.alipay.com/order/pidAndKey.htm public static String partner = ""; // 收款支付寶賬號,以2088開頭由16位純數(shù)字組成的字符串,一般情況下收款賬號就是簽約賬號 public static String seller_id = partner; // MD5密鑰,安全檢驗(yàn)碼,由數(shù)字和字母組成的32位字符串,查看地址:https://b.alipay.com/order/pidAndKey.htm public static String key = ""; // 服務(wù)器異步通知頁面路徑 需http://格式的完整路徑,不能加?id=123這類自定義參數(shù),必須外網(wǎng)可以正常訪問 public static String notify_url = "http://商戶網(wǎng)址/create_direct_pay_by_user-JAVA-UTF-8/notify_url.jsp"; // 頁面跳轉(zhuǎn)同步通知頁面路徑 需http://格式的完整路徑,不能加?id=123這類自定義參數(shù),必須外網(wǎng)可以正常訪問 public static String return_url = "http://商戶網(wǎng)址/create_direct_pay_by_user-JAVA-UTF-8/return_url.jsp"; // 簽名方式 public static String sign_type = "MD5"; // 調(diào)試用,創(chuàng)建TXT日志文件夾路徑,見AlipayCore.java類中的logResult(String sWord)打印方法。 public static String log_path = "C:\\"; // 字符編碼格式 目前支持 gbk 或 utf-8 public static String input_charset = "utf-8"; // 支付類型 ,無需修改 public static String payment_type = "1"; // 調(diào)用的接口名,無需修改 public static String service = "create_direct_pay_by_user"; //↑↑↑↑↑↑↑↑↑↑請?jiān)谶@里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ //↓↓↓↓↓↓↓↓↓↓ 請?jiān)谶@里配置防釣魚信息,如果沒開通防釣魚功能,為空即可 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ // 防釣魚時(shí)間戳 若要使用請調(diào)用類文件submit中的query_timestamp函數(shù) public static String anti_phishing_key = ""; // 客戶端的IP地址 非局域網(wǎng)的外網(wǎng)IP地址,如:221.0.0.1 public static String exter_invoke_ip = ""; //↑↑↑↑↑↑↑↑↑↑請?jiān)谶@里配置防釣魚信息,如果沒開通防釣魚功能,為空即可 ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ }
按照說明配置
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。