在官方的產品是叫做當面付
簡單的講就是條碼支付(刷卡支付)、掃碼支付、聲波支付。
【官方是這樣解釋的】 商戶可通過以下任一方式在線下完成交易收款都是當面付: 1、商家通過掃描線下買家支付寶錢包中的條碼、二維碼等方式將買家的交易資金直接打入賣家支付寶賬戶,資金實時到賬; 2、線下買家通過使用支付寶錢包掃描商家的二維碼等方式完成支付,提升商家收銀效率,資金實時到賬; 3、線下買家使用支付寶錢包中的當面付功能,通過聲波支付的方式向商家完成付款,資金實時到賬。
單筆費率 0.6%
如果你只是想了解支付流程可以不進行簽約,我們可以使用沙箱環境進行測試。
簽約認證流程
開發平臺-研發服務-沙箱環境
官方文檔 當面付詳細的產品介紹在這里
條碼支付是支付寶給到線下傳統行業的一種收款方式。商家使用掃碼槍等條碼識別設備掃描用戶支付寶錢包上的條碼/二維碼,完成收款。用戶僅需出示付款碼,所有收款操作由商家端完成。
業務流程
使用步驟:
1、用戶登錄支付寶錢包,點擊首頁“付款”,進入付款碼界面; 2、收銀員在商家收銀系統操作生成訂單,用戶確認支付金額; 3、用戶出示錢包的“付款碼”,收銀員用掃碼設備來掃描用戶手機上的條碼/二維碼后,商家收銀系統提交支付; 4、付款成功后商家收銀系統會拿到支付成功或者失敗的結果。
使用步驟
官方接入介紹資料 當面付快速接入
前三步任何支付方式對接必不可少,這些按照文檔操作應該沒有問題。如遇到問題歡迎留言
前三步任何支付方式對接必不可少
今天的主角要登場了>>>>>>條碼支付
調用時序圖
這里主要涉及到三個接口
這里我們使用官方提供的服務端SDK(開放平臺服務端SDK)來快速接入
?上面提到過如果是測試或者不上線應用可以不用簽約直接使用沙箱環境
正式環境支付網關:https://openapi.alipay.com/gateway.do
沙盒環境支付網關:https://openapi.alipaydev.com/gateway.do
添加支付寶相關的配置文件 alipay.properties
############################# 支付寶相關的配置############################appId=xxx //測試號的APPIDprivateKey=xxx //測試號的私鑰 建議使用RSA2alipayPulicKey=xxx //支付寶公鑰serverUrl=https://openapi.alipaydev.com/gateway.do //支付網關notify_domain = xxx //通知域名
private static final Prop prop = PropKit.use("alipay.properties"); public static AlipayClient alipayClient; public static String charset = "UTF-8"; public static String privateKey = prop.get("privateKey"); public static String alipayPulicKey = prop.get("alipayPulicKey"); public static String serverUrl = prop.get("serverUrl"); public static String appId = prop.get("appId"); public static String format = "json"; public static String signType = "RSA2"; public static String notify_domain = prop.get("notify_domain"); static { alipayClient = new DefaultAlipayClient(serverUrl, appId, privateKey, format, charset, alipayPulicKey, signType); }
/** * 條形碼支付 * https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.Yhpibd&treeId=194&articleId=105170&docType=1#s4 * @throws AlipayApiException */ public static String tradePay(AlipayTradePayModel model) throws AlipayApiException { AlipayTradePayResponse response = tradePayToResponse(model); return response.getBody(); } public static AlipayTradePayResponse tradePayToResponse(AlipayTradePayModel model) throws AlipayApiException{ AlipayTradePayRequest request = new AlipayTradePayRequest(); request.setBizModel(model);// 填充業務參數 return alipayClient.execute(request); // 通過alipayClient調用API,獲得對應的response類 }
/** * 交易查詢接口 * https://doc.open.alipay.com/docs/api.htm?spm=a219a.7395905.0.0.8H2JzG&docType=4&apiId=757 * @param bizContent * @return * @throws AlipayApiException */ public static boolean isTradeQuery(AlipayTradeQueryModel model) throws AlipayApiException{ AlipayTradeQueryResponse response = tradeQuery(model); if(response.isSuccess()){ return true; } return false; } public static AlipayTradeQueryResponse tradeQuery(AlipayTradeQueryModel model) throws AlipayApiException{ AlipayTradeQueryRequest request = new AlipayTradeQueryRequest(); request.setBizModel(model); return alipayClient.execute(request); }
/** * 交易撤銷接口 * https://doc.open.alipay.com/docs/api.htm?spm=a219a.7395905.0.0.XInh6e&docType=4&apiId=866 * @param bizContent * @return * @throws AlipayApiException */ public static boolean isTradeCancel(AlipayTradeCancelModel model) throws AlipayApiException{ AlipayTradeCancelResponse response = tradeCancel(model); if(response.isSuccess()){ return true; } return false; } public static AlipayTradeCancelResponse tradeCancel(AlipayTradeCancelModel model) throws AlipayApiException{ AlipayTradeCancelRequest request = new AlipayTradeCancelRequest(); request.setBizModel(model); AlipayTradeCancelResponse response = alipayClient.execute(request); return response; }
下載沙箱模式下的app【沙箱錢包】
/** * 條碼支付 * https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.Yhpibd&treeId=194&articleId=105170&docType=1#s4 */ public void tradePay() { String authCode = getPara("auth_code"); String subject = "Javen 支付寶條形碼支付測試"; String totalAmount = "100"; AlipayTradePayModel model = new AlipayTradePayModel(); model.setAuthCode(authCode); model.setSubject(subject); model.setTotalAmount(totalAmount); model.setOutTradeNo(StringUtils.getOutTradeNo()); model.setScene("bar_code"); try { String resultStr = AliPayApi.tradePay(model); renderText(resultStr); } catch (Exception e) { e.printStackTrace(); } }
打開沙箱錢包>付款>輸入條形碼測試
返回的結果
{ "alipay_trade_pay_response": { "code": "10000", "msg": "Success", "buyer_logon_id": "abp***@sandbox.com", "buyer_pay_amount": "100.00", "buyer_user_id": "2088102169474200", "fund_bill_list": [ { "amount": "100.00", "fund_channel": "ALIPAYACCOUNT" } ], "gmt_payment": "2017-05-07 20:28:35", "invoice_amount": "100.00", "open_id": "20881035070193409461376162014620", "out_trade_no": "050720283214941", "point_amount": "0.00", "receipt_amount": "100.00", "total_amount": "100.00", "trade_no": "2017050721001004200200238428" }, "sign": "FZVBkb4tuqjM/3OZnAJJ8YFkGSmpcMIum+WdhCNURy+jSs5mZT2RZLlDuzVNHYoZQpItpVscDR86n87wFni/lhaNK0UvCkjQmSeBrmzuntFDrD8rh/KX3U3kpsQEmSzbI/E1VNYM3zL/lVPCnjkc9etVky8w690yHVqsRTBpjXDYUw91zdlm7iXjrRAv1vNWEhfaAgBh3toz8Asra03vFPMXaaGp4ARTI3AkjatH4zPO0JmDu3fMd+jk759FYW1qGf89LpLD/6ng+VNhu4rr3FC4RpLtYed9lKSrehlujGHSkhnWJcr0JZ6doYYF4aJuH7Eflyt+FCg/1JFzd0Mygw=="}
public void tradeQuery(){ try { AlipayTradeQueryModel model = new AlipayTradeQueryModel(); model.setOutTradeNo("050720283214941"); model.setTradeNo("2017050721001004200200238428"); boolean isSuccess = AliPayApi.isTradeQuery(model); renderJson(isSuccess); } catch (AlipayApiException e) { e.printStackTrace(); } }
或者
public void tradeQueryByStr(){ String out_trade_no = getPara("out_trade_no"); AlipayTradeQueryModel model = new AlipayTradeQueryModel(); model.setOutTradeNo(out_trade_no); try { String resultStr = AliPayApi.tradeQuery(model).getBody(); renderText(resultStr);; } catch (AlipayApiException e) { e.printStackTrace(); } }
返回的結果
{ "alipay_trade_query_response": { "code": "10000", "msg": "Success", "buyer_logon_id": "abp***@sandbox.com", "buyer_pay_amount": "100.00", "buyer_user_id": "2088102169474200", "fund_bill_list": [ { "amount": "100.00", "fund_channel": "ALIPAYACCOUNT" } ], "invoice_amount": "100.00", "open_id": "20881035070193409461376162014620", "out_trade_no": "050720283214941", "point_amount": "0.00", "receipt_amount": "100.00", "send_pay_date": "2017-05-07 20:28:34", "total_amount": "100.00", "trade_no": "2017050721001004200200238428", "trade_status": "TRADE_SUCCESS" }, "sign": "DE6qYfU0Nziv3Dxpaj0gUROcqMNmREwYUw/t9qlnLiuM1JkKEdNJtbyJZ8OCoOIkgXEOSs7+mOrGgyxmOQqccwwhkDDsYXhPnc0cy4M7L4sNl5S3nUaveBaZjk3SMMGif43UaYtVI6SF4kq74uyoH15tCWDJ0N3nYct2epgc7r6kprAFqQxszgYp4tfKLw0qPCKnUyo7+WRbrc6UWQVuK+xDlVcvivW5cXjAf/HFyb8o+ddj6g+QQ4jUN2WTc2QGpbtfum6G7oPHT99cjAURVRw2NmU5WfUXNazzSvisa2oYsl8EH7+XHvsAMyIUZw0Ix8ymuAXdMkrUPFY4PfzjIg=="}
public void tradeCancelByStr(){ try { AlipayTradeCancelModel model = new AlipayTradeCancelModel(); model.setOutTradeNo("050720283214941"); model.setTradeNo("2017050721001004200200238428"); AlipayTradeCancelResponse response = AliPayApi.tradeCancel(model); renderJson(response.getBody()); } catch (AlipayApiException e) { e.printStackTrace(); } }
{ "alipay_trade_cancel_response": { "code": "10000", "msg": "Success", "out_trade_no": "050720283214941", "retry_flag": "N" }, "sign": "QFwTwACi/x/qZu7YCapToWKpYDatg7Y06KAxij01PHSQrq0+l9eeFGdNIRpD2rSmkCVN75RQManw4PvIEurN5uW6YSZlZQ0Rj2EeH0eVyNWqNRWmVGeSaLQ+hpAt3vG/cy5vXJ1Zl7yr/VbtRiuSYrbzPhgkG1UNYf9JIb4Nj2iSpo8Ct6Bbhiq848w7ZEN6itBmd04N3O4HkBoueuXtgUmKoaTegDfrtNtQ7dRAkCRnoa43QbHYysqwOO751JjI6HOeviZUrTspegUFbqhSXInaZ4LMqeiPWXeXc7dRmtOlPOSRY5wYzYYNCmEe89HdyLFSzd447QS2b5Ky3wAY3w=="}
測試結果圖
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
CC英語CC是什么意思?TO: to.(寫信給某某)CC:抄送,意思是給寫信給某人的人送一份,主要是給,但因為其他人也需要了解情況,所以抄送給抄送的人。為什么很多女生網名叫cc?我覺得女生網名cc的意思是純潔的意思。每個女孩都希望自己永遠保持年輕純潔,不被世俗化,能保持生命之初擁有的優秀品質。女生的網名cc就有上面的意思,所以很多女生都愿意給自己的網名取名cc。為什么很多女生網名叫cc?可能性如是...
成都到重慶的火車經過哪些地方?;1.如果從成都坐高鐵到重慶,高鐵經過璧山、永川、大足、榮昌、隆昌、內江、資陽,到達成都。2.景點大概是重慶的區縣,永川,大足,榮昌,永川茶山竹海,樂和樂都,大足石雕,龍水湖,榮昌路孔古鎮。資陽沒什么特別的。隆昌的石牌坊也被稱為牌坊之鄉。3.如果是高鐵,從成都到重慶,要走大成鐵路,金堂,遂寧然后向南轉到重慶。4.如果是普通列車,走成渝鐵路,簡陽,資陽,內江,隆昌,最后...
cfosspeed怎么設置啊~?cFossSpeed設置方法:步驟1:暫時掛起所有訪問Internet的程序,以便ADSL網絡沒有任何數據流量。第二步:右鍵點擊系統圖標欄中的cfossspeed圖標,從彈出菜單中選擇“設置”“連接”命令,激活流量調整設置界面。由于程序會自動列出所有可用的網絡訪問,因此有必要根據實際情況將訪問模式設置為“使用”。如果您不確定要使用哪種連接模式,可以將所有連接項設置為...