微信支付-原生支付(Native)-模式二


業務流程:

     商戶后台系統調用微信支付統一下單生成預付交易,將接口返回的鏈接生成二維碼,用戶掃碼后輸入密碼完成支付交易。注意:該模式的預付單有效期為2小時,過期后無法支付。

這種模式比較簡單,直接生成二維碼供用戶掃碼進行支付

代碼:

        public JsonResult GetQrCode2(string no)
        {

            string timeStamp = Senparc.Weixin.MP.TenPayLibV3.TenPayV3Util.GetTimestamp();
            string nonceStr = Senparc.Weixin.MP.TenPayLibV3.TenPayV3Util.GetNoncestr();
            string body = "Test-Native";//商品或支付單簡要描述
            string out_trade_no = no;//商戶系統內部的訂單號,32個字符內,可包含字母,其他說明見商戶訂單號
            int total_fee = 2;//Convert.ToInt32(trade.TRADE_PAYMENT.Value*100);//訂單總金額,只能是整數。
            string spbill_create_ip = Request.UserHostAddress;//APP和網頁支付提交用戶端IP,Native支付填調用微信支付API的機器IP
            string notify_url = "http://×××/PayNotifyUrl";//接收微信支付異步通知回調地址
            string trade_type = "NATIVE";//JSAPI,NATIVE,APP,WAP
            string product_id = no;
           
            //創建支付應答對象
            Senparc.Weixin.MP.TenPayLibV3.RequestHandler packageReqHandler = new Senparc.Weixin.MP.TenPayLibV3.RequestHandler(null);
            //初始化
            packageReqHandler.Init();

            //設置package訂單參數
            packageReqHandler.SetParameter("appid", AppId);
            packageReqHandler.SetParameter("mch_id", MchId);
            packageReqHandler.SetParameter("nonce_str", nonceStr);
            packageReqHandler.SetParameter("body", body);
            packageReqHandler.SetParameter("out_trade_no", out_trade_no);
            packageReqHandler.SetParameter("total_fee", total_fee.ToString());
            packageReqHandler.SetParameter("spbill_create_ip", spbill_create_ip);
            packageReqHandler.SetParameter("notify_url", notify_url);
            packageReqHandler.SetParameter("trade_type", trade_type);
            packageReqHandler.SetParameter("product_id", product_id);

            string sign = packageReqHandler.CreateMd5Sign("key", Key);

            packageReqHandler.SetParameter("sign", sign);

            string data = packageReqHandler.ParseXML();

            //調用統一下訂單接口。
            var UnifiedorderResult = Senparc.Weixin.MP.AdvancedAPIs.TenPayV3.Unifiedorder(data);
            var res = System.Xml.Linq.XDocument.Parse(UnifiedorderResult);

            string code_url = res.Element("xml").Element("code_url").Value;

            string url = "http://qr.liantu.com/api.php?text=" + code_url;

            return Json(url);
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM