微信支付-掃碼支付(模式二)

接口文檔:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_1php

【模式二】:商戶後臺系統調用微信支付【統一下單API】生成預付交易,將接口返回的連接生成二維碼,用戶掃碼後輸入密碼完成支付交易。注意:該模式的預付單有效期爲2小時,過時後沒法支付。java

前期準備

設置支付目錄api

主要填寫好支付回調URL微信

統一下單接口

URL地址:https://api.mch.weixin.qq.com/pay/unifiedorderapp

/**
     * 掃碼支付 統一下單 模式二
     * @param body 商品簡單描述
     * @param outTradeNo 訂單號
     * @param totalFee 總金額 分
     * @param spbillCreateIp 下單人ip
     * @param productId 商品 id
     * @return 微信返回的xml
     */
    public static Map<String, String> unifiedorderOfScan(String body, String outTradeNo, Integer totalFee, String spbillCreateIp, String productId, SetBean setBean){
        Map<String, String> params = new HashMap<String, String>();
        params.put("appid", setBean.getAppId());
        params.put("mch_id", setBean.getMchId());
        params.put("body", body);

        // 商品ID trade_type=NATIVE,此參數必傳。此id爲二維碼中包含的商品ID,商戶自行定義。
        params.put("product_id", productId);
        // 商戶訂單號 商戶系統內部的訂單號,32個字符內、可包含字母, 其餘說明見商戶訂單號
        params.put("out_trade_no",outTradeNo);
        params.put("total_fee", String.valueOf(totalFee));//支付總金額 單位 分
        params.put("spbill_create_ip", spbillCreateIp);//下單用戶的客戶端ip
        params.put("trade_type","NATIVE");
        params.put("nonce_str", nonceStr());//隨機字符串
        params.put("notify_url", setBean.getNotifyUrl());//支付成功後的通知地址
        String sign=createSign(params,setBean.getPayKey());//生成請求籤名
        params.put("sign",sign);
        String xmlResult= HttpKit.post(unifiedOrderUrl,toXml(params));//統一下單返回的結果
        Map<String, String> result = xmlToMap(xmlResult);
        return result;
        //返回的map
//        nonce_str    YhXsQPviD5PCbivy
//        code_url    weixin://wxpay/bizpayurl?pr=Xeb9VH5 將此連接生成二維碼 用戶掃碼便可支付
//        appid    wxbXXXXXXXXXXXX
//        sign    C89118E990BE0A3132670CB269E33937
//        trade_type    NATIVE
//        return_msg    OK
//        result_code    SUCCESS
//        mch_id    12345678914
//        return_code    SUCCESS
//        prepay_id    wx201704281819305c471c92810030210111
    }
相關文章
相關標籤/搜索