支付寶支付-刷卡支付(條碼支付)

在官方的產(chǎn)品是叫做當(dāng)面付

1曹傀、什么是當(dāng)面付呢辐脖?

簡(jiǎn)單的講就是條碼支付(刷卡支付)、掃碼支付皆愉、聲波支付嗜价。

官方是這樣解釋的
商戶可通過(guò)以下任一方式在線下完成交易收款都是當(dāng)面付
1、商家通過(guò)掃描線下買(mǎi)家支付寶錢(qián)包中的條碼幕庐、二維碼等方式將買(mǎi)家的交易資金直接打入賣(mài)家支付寶賬戶久锥,資金實(shí)時(shí)到賬;
2异剥、線下買(mǎi)家通過(guò)使用支付寶錢(qián)包掃描商家的二維碼等方式完成支付瑟由,提升商家收銀效率,資金實(shí)時(shí)到賬冤寿;
3歹苦、線下買(mǎi)家使用支付寶錢(qián)包中的當(dāng)面付功能青伤,通過(guò)聲波支付的方式向商家完成付款,資金實(shí)時(shí)到賬殴瘦。

2狠角、申請(qǐng)條件

  1. 申請(qǐng)前必須擁有企業(yè)或個(gè)人支付寶賬號(hào),且通過(guò)支付寶實(shí)名認(rèn)證審核蚪腋;
  1. 營(yíng)業(yè)執(zhí)照主體需與簽約主體一致丰歌,如不一致者需提供有效授權(quán)函;授權(quán)函要求:公司類型必須蓋公章屉凯、個(gè)體工商戶需兩選一:
    a. 法人身份證原件+法人簽字
    b. 法人身份證原件+個(gè)體工商戶蓋章立帖;
  2. 部分行業(yè)暫未開(kāi)放簽約,如保險(xiǎn)神得、黃金期貨厘惦、借貸(P2P)、POS等支付業(yè)務(wù)等哩簿;

3宵蕉、產(chǎn)品費(fèi)率

單筆費(fèi)率 0.6%

4、簽約認(rèn)證流程

如果你只是想了解支付流程可以不進(jìn)行簽約节榜,我們可以使用沙箱環(huán)境進(jìn)行測(cè)試羡玛。

簽約認(rèn)證流程
開(kāi)發(fā)平臺(tái)-研發(fā)服務(wù)-沙箱環(huán)境

5、聊聊條碼支付(刷卡支付)

官方文檔 當(dāng)面付詳細(xì)的產(chǎn)品介紹在這里

條碼支付是支付寶給到線下傳統(tǒng)行業(yè)的一種收款方式宗苍。商家使用掃碼槍等條碼識(shí)別設(shè)備掃描用戶支付寶錢(qián)包上的條碼/二維碼稼稿,完成收款。用戶僅需出示付款碼讳窟,所有收款操作由商家端完成让歼。

業(yè)務(wù)流程

使用步驟:

1、用戶登錄支付寶錢(qián)包丽啡,點(diǎn)擊首頁(yè)“付款”谋右,進(jìn)入付款碼界面;
2补箍、收銀員在商家收銀系統(tǒng)操作生成訂單改执,用戶確認(rèn)支付金額;
3坑雅、用戶出示錢(qián)包的“付款碼”辈挂,收銀員用掃碼設(shè)備來(lái)掃描用戶手機(jī)上的條碼/二維碼后,商家收銀系統(tǒng)提交支付裹粤;
4终蒂、付款成功后商家收銀系統(tǒng)會(huì)拿到支付成功或者失敗的結(jié)果。

使用步驟

6、如何接入條碼支付(刷卡支付)呢后豫?

官方接入介紹資料 當(dāng)面付快速接入

前三步任何支付方式對(duì)接必不可少,這些按照文檔操作應(yīng)該沒(méi)有問(wèn)題悉尾。如遇到問(wèn)題歡迎留言

前三步任何支付方式對(duì)接必不可少

今天的主角要登場(chǎng)了>>>>>>條碼支付

調(diào)用時(shí)序圖

這里主要涉及到三個(gè)接口

這里我們使用官方提供的服務(wù)端SDK(開(kāi)放平臺(tái)服務(wù)端SDK)來(lái)快速接入

7、選擇正確的接入環(huán)境

??上面提到過(guò)如果是測(cè)試或者不上線應(yīng)用可以不用簽約直接使用沙箱環(huán)境

正式環(huán)境支付網(wǎng)關(guān):https://openapi.alipay.com/gateway.do
沙盒環(huán)境支付網(wǎng)關(guān):https://openapi.alipaydev.com/gateway.do

8挫酿、使用SDK封裝接口

添加支付寶相關(guān)的配置文件 alipay.properties

############################
# 支付寶相關(guān)的配置
############################

appId=xxx //測(cè)試號(hào)的APPID
privateKey=xxx //測(cè)試號(hào)的私鑰 建議使用RSA2
alipayPulicKey=xxx //支付寶公鑰
serverUrl=https://openapi.alipaydev.com/gateway.do //支付網(wǎng)關(guān)
notify_domain = xxx //通知域名
8.1 在SDK調(diào)用前需要進(jìn)行初始化
    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);
    }
8.2 封裝交易支付接口alipay.trade.pay
/**
     * 條形碼支付
     * 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);// 填充業(yè)務(wù)參數(shù)
        return alipayClient.execute(request); // 通過(guò)alipayClient調(diào)用API构眯,獲得對(duì)應(yīng)的response類
    }
8.3 交易查詢接口alipay.trade.query
/**
     * 交易查詢接口
     * 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);
    }
8.4 交易撤銷接口alipay.trade.cancel
/**
     * 交易撤銷接口
     * 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;
    }

9、使用沙盒環(huán)境測(cè)試

下載沙箱模式下的app【沙箱錢(qián)包

9.1 交易支付接口alipay.trade.pay測(cè)試

/**
     * 條碼支付
     * 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 支付寶條形碼支付測(cè)試";
        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();
        }
    }

打開(kāi)沙箱錢(qián)包>付款>輸入條形碼測(cè)試

返回的結(jié)果

{
  "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=="
}
9.2 交易查詢接口alipay.trade.query測(cè)試
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();
        }
    }

返回的結(jié)果

{
  "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=="
}
9.3 交易撤銷接口alipay.trade.cancel測(cè)試
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=="
}
測(cè)試結(jié)果圖
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末早龟,一起剝皮案震驚了整個(gè)濱河市惫霸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌葱弟,老刑警劉巖壹店,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異芝加,居然都是意外死亡硅卢,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)藏杖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)将塑,“玉大人,你說(shuō)我怎么就攤上這事蝌麸〉懔龋” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵来吩,是天一觀的道長(zhǎng)敢辩。 經(jīng)常有香客問(wèn)我,道長(zhǎng)弟疆,這世上最難降的妖魔是什么戚长? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮怠苔,結(jié)果婚禮上同廉,老公的妹妹穿的比我還像新娘。我一直安慰自己嘀略,他們只是感情好恤溶,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布乓诽。 她就那樣靜靜地躺著帜羊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鸠天。 梳的紋絲不亂的頭發(fā)上讼育,一...
    開(kāi)封第一講書(shū)人閱讀 49,031評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼奶段。 笑死饥瓷,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的痹籍。 我是一名探鬼主播呢铆,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蹲缠!你這毒婦竟也來(lái)了棺克?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤线定,失蹤者是張志新(化名)和其女友劉穎娜谊,沒(méi)想到半個(gè)月后呜象,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體搀别,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年绽昼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了芭商。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片派草。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蓉坎,靈堂內(nèi)的尸體忽然破棺而出澳眷,到底是詐尸還是另有隱情,我是刑警寧澤蛉艾,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布钳踊,位于F島的核電站,受9級(jí)特大地震影響勿侯,放射性物質(zhì)發(fā)生泄漏拓瞪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一助琐、第九天 我趴在偏房一處隱蔽的房頂上張望祭埂。 院中可真熱鬧,春花似錦兵钮、人聲如沸蛆橡。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)泰演。三九已至,卻和暖如春葱轩,著一層夾襖步出監(jiān)牢的瞬間睦焕,已是汗流浹背藐握。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留垃喊,地道東北人猾普。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像本谜,于是被迫代替她去往敵國(guó)和親初家。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容