• <sub id="xcyjv"></sub><nav id="xcyjv"><code id="xcyjv"><meter id="xcyjv"></meter></code></nav>
      <nav id="xcyjv"></nav>
    1. <form id="xcyjv"><th id="xcyjv"></th></form><nav id="xcyjv"><mark id="xcyjv"></mark></nav>

        .NET Core 實現微信小程序支付功能(統一下單)

         更新時間:2019年09月11日 11:07:40   作者:hailang8   我要評論
        最近公司研發了幾個電商小程序,還有一個核心的電商直播,只要是電商一般都會涉及到交易信息,離不開支付系統,這里我們統一實現小程序的支付流程。感興趣的朋友跟隨小編一起看看吧

        最近公司研發了幾個電商小程序,還有一個核心的電商直播,只要是電商一般都會涉及到交易信息,離不開支付系統,這里我們統一實現小程序的支付流程(與服務號實現步驟一樣)。

        開通小程序的支付能力

        開通小程序支付功能比較簡單,基本上按微信文檔一步一步的申請就好,如圖

        以上三個步驟就申請完成

        1、提交資料給微信

        2、微信審核并簽署協議

        3、商戶后臺綁定同主體的APPID

        商戶后臺綁定同一主體的APPID并授權

        1、登錄商戶后臺https://pay.weixin.qq.com,進入產品中心—APPID授權管理,進入授權頁面如圖:

        2、填寫相關已認證APPID信息,閱讀并簽署《微信支付商戶號與APPID授權協議》,點擊“確認”提交,發起授權申請,如下圖:

        3、發起授權申請后,商戶需自行前往對應平臺確認授權申請。

        小程序:前往公眾平臺,點擊“微信支付-商戶號管理”,查看相關商戶號信息,確認授權申請,或在“公眾平臺安全助手”下發的模板消息中確認授權信息;

        公眾號/訂閱號:前往公眾平臺,點擊“微信支付-商戶號管理”,查看相關商戶號信息,確認授權申請;

        APP:前往開放平臺,點擊“管理中心-查看-微信支付-商戶號管理”,查看相關商戶號信息,確認授權申請;

        4. 以上步驟綁定成功,可以實現微信支付功能。

        預先設置回調地址,商戶后臺設置開發的配置

        預先設置好回調地址后,方便支付成功后收到微信通知來處理業務,設置也比較簡單不用多說,如圖:

        根據自己的需求設置不同的回調地址。

        代碼實現統一支付

        1、統一支付,只要是微信公眾號平臺的同一主體都可以使用同一個支付,只需要在商戶后臺綁定APPID即可。

        微信小程序支付官方圖:

        微信支付文檔說明地址:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_1

        引用包:

        Senparc.Weixin.WxOpen

        Senparc.Weixin.TenPay

        注冊公眾號,小程序信息

        services.AddSenparcGlobalServices(Configuration)
        .AddSenparcWeixinServices(Configuration);

        前端調用統一下單接口,獲取prepayId

        IRegisterService register = RegisterService.Start(env, senparcSetting.Value).UseSenparcGlobal(false, null);
        register.UseSenparcWeixin(senparcWeixinSetting.Value, senparcSetting.Value)
         .RegisterTenpayV3(senparcWeixinSetting.Value, "appid");

        部分前端代碼如下:

        后端部分代碼截圖獲取prepayId,如需代碼請與我聯系

        提交統一支付成功后,會出現如下圖:

        注:一般正常獲取到prepayid就可以發起支付,請確保所給的參數正確。

        微信支付回調

        微信支付回調規則如下:

        回調代碼實現

        ///<summary>
        /// 微信支付回調地址
        /// </summary>
        /// <returns></returns>
        [HttpPost("PayNotifyUrl")]
        public ActionResult PayNotifyUrl()
        {
         ResponseResult result = new ResponseResult();
         ResponseHandler resHandler = new ResponseHandler(HttpContext);
         string return_code = resHandler.GetParameter("return_code");
         string return_msg = resHandler.GetParameter("return_msg");
        
         try
         {
          var mch_key = Senparc.Weixin.Config.SenparcWeixinSetting.TenPayV3_Key;
          resHandler.SetKey(mch_key);
        
          var notifyXml = resHandler.ParseXML();
          bool signFlag = resHandler.IsTenpaySign();
          if (signFlag && return_code.ToUpper() == "SUCCESS")
          {
           string attach = resHandler.GetParameter("attach");
           string device_info = resHandler.GetParameter("device_info");
           string out_trade_no = resHandler.GetParameter("out_trade_no");
           string transaction_id = resHandler.GetParameter("transaction_id");
           string total_fee = resHandler.GetParameter("total_fee");
        
           PayOrderNotifyParam param = new PayOrderNotifyParam()
           {
            PayNo = out_trade_no,
            Attach = attach,
            PayPrice = decimal.Parse(total_fee) / 100,
            TransactionNo = transaction_id,
           };
        
           //回調參數說明:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_7&index=3
           //Logger.Info(string.Format("支付回調接收參數成功,notifyXml={0},param={1}", notifyXml, param.SerializeObject()));
        
           result = Service.PayNotifyUrl(param);
           if (result.errno != 0)
           {
            //回調處理邏輯失敗
            Logger.Error(string.Format("支付回調處理失。褐Ц秵翁:{0},{1}", param.PayNo, result.errmsg));
           }
           else
           {
            Logger.Info(string.Format("支付回調處理成功,支付單號:{0}", param.PayNo));
            string xml = string.Format(@"<xml>
               <return_code><![CDATA[{0}]]></return_code>
               <return_msg><![CDATA[{1}]]></return_msg>
               </xml>", return_code, return_msg);
        
            return Content(xml, "text/xml");
           }
        
          }
          else
          {
           //錯誤的訂單處理
           Logger.Error(string.Format("支付回調接失敗,signFlag={0},notifyXml={1}", signFlag, notifyXml));
          }
        
        
         }
         catch (Exception ex)
         {
          Logger.Error(string.Format("支付回調異常:Message={0},StackTrace={1}", ex.Message, ex.StackTrace));
         }
        
         return Content("fail", "text/xml");
        }

        回調接口最好驗證下簽名是否正確,驗證簽名請先設置下商戶KEY,如簽名成功,微信支付成功,這時可以處理業務數據。

        注:如果業務處理成功最好返回SUCCESS告訴微信,否則微信會隔一段時間就會回調一次,直到回調次數用盡,這里也需要自己業務處理好狀態。

        總結

        以上流程就是微信支付過程,以上步驟由于一些隱私問題部分代碼采用了截圖,如有不明白之處請與我聯系,我們一起交流學習,下一篇文章我們將實現微信退款功能。

        以上所述是小編給大家介紹的.NET Core 實現微信小程序支付功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
        如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

        相關文章

        最新評論

        01彩票网app
      1. <sub id="xcyjv"></sub><nav id="xcyjv"><code id="xcyjv"><meter id="xcyjv"></meter></code></nav>
          <nav id="xcyjv"></nav>
        1. <form id="xcyjv"><th id="xcyjv"></th></form><nav id="xcyjv"><mark id="xcyjv"></mark></nav>
            齐齐哈尔 | 吉林长春 | 防城港 | 博尔塔拉 | 石河子 | 张北 | 怒江 | 楚雄 | 湘潭 | 三河 | 白银 | 鞍山 | 荆州 | 江西南昌 | 扬中 | 咸阳 | 包头 | 忻州 | 商洛 | 通辽 | 攀枝花 | 嘉善 | 德宏 | 伊春 | 陇南 | 济宁 | 临沂 | 宜昌 | 台北 | 运城 | 项城 | 桓台 | 江苏苏州 | 建湖 | 包头 | 陕西西安 | 单县 | 三亚 | 简阳 | 阿勒泰 | 钦州 | 铜仁 | 武夷山 | 徐州 | 嘉峪关 | 大庆 | 偃师 | 仙桃 | 惠州 | 乐山 | 咸阳 | 苍南 | 黄石 | 营口 | 台北 | 肇庆 | 黄冈 | 绵阳 | 吉林 | 济南 | 德宏 | 山西太原 | 包头 | 辽宁沈阳 | 临汾 | 阿坝 | 靖江 | 启东 | 黄南 | 广汉 | 资阳 | 五指山 | 抚州 | 蚌埠 | 长治 | 烟台 | 芜湖 | 昌吉 | 大丰 | 周口 | 山东青岛 | 茂名 | 阳春 | 鹤壁 | 柳州 | 新乡 | 嘉兴 | 辽阳 | 河北石家庄 | 文山 | 大庆 | 吴忠 | 六盘水 | 资阳 | 台州 | 日喀则 | 吉林长春 | 东营 | 万宁 | 黄冈 | 贵港 | 宣城 | 如东 | 恩施 | 宜昌 | 百色 | 喀什 | 咸阳 | 邹城 | 来宾 | 安岳 | 琼海 | 烟台 | 四平 | 益阳 | 南京 | 铜陵 | 青州 | 邳州 | 宿州 | 唐山 | 金坛 | 延安 | 慈溪 | 泰州 | 宁国 | 济南 | 海宁 | 吉安 | 海拉尔 | 塔城 | 长葛 | 瑞安 | 遵义 | 乐山 | 临沂 | 吉安 | 海门 | 明港 | 聊城 | 扬州 | 贵港 | 定西 | 葫芦岛 | 德宏 | 如皋 | 丹阳 | 玉树 | 和田 | 玉溪 | 昆山 | 新泰 | 白山 | 建湖 | 曲靖 | 济源 | 承德 | 大丰 | 桐乡 | 高雄 | 新余 | 昆山 | 建湖 | 建湖 | 韶关 | 亳州 | 齐齐哈尔 | 如东 | 徐州 | 丽水 | 山东青岛 | 单县 | 北海 | 大庆 | 威海 | 儋州 | 盐城 | 蚌埠 | 长兴 | 包头 | 柳州 | 香港香港 | 贵州贵阳 | 衡水 | 池州 | 双鸭山 | 乳山 | 克拉玛依 | 晋江 | 芜湖 | 五指山 | 扬中 | 乐平 | 高雄 | 济源 | 泸州 | 晋城 | 沭阳 | 连云港 | 陵水 | 清远 | 阿克苏 | 吕梁 | 威海 | 果洛 | 绥化 | 仁寿 | 昆山 | 德阳 | 克孜勒苏 | 泰兴 | 南平 | 宝鸡 | 鄢陵 | 甘孜 | 株洲 | 嘉善 | 阿坝 | 双鸭山 | 营口 | 吴忠 | 邳州 | 三沙 | 赤峰 | 葫芦岛 | 东营 | 开封 | 萍乡 | 定安 | 娄底 | 丽水 | 葫芦岛 | 鸡西 | 乌海 | 黔西南 | 广饶 | 长垣 | 朝阳 | 单县 | 六安 | 怒江 | 如皋 | 馆陶 | 张家口 | 海丰 | 改则 | 湖南长沙 | 包头 | 周口 | 三门峡 | 高雄 | 齐齐哈尔 | 仙桃 | 湖南长沙 | 黔南 | 甘肃兰州 | 乌兰察布 | 自贡 | 漯河 | 东方 | 葫芦岛 | 阿勒泰 | 澄迈 | 咸阳 | 湖南长沙 | 大兴安岭 | 馆陶 | 塔城 | 娄底 | 酒泉 | 亳州 | 南京 | 株洲 | 赣州 | 临海 | 仁寿 | 保定 | 天门 | 固原 | 南京 | 苍南 | 鞍山 | 仁怀 | 广安 | 普洱 | 滕州 | 大连 | 龙岩 | 东海 | 松原 | 贵港 | 泉州 | 辽宁沈阳 | 佳木斯 | 龙口 | 辽宁沈阳 | 湖南长沙 | 潮州 | 漯河 | 石嘴山 | 眉山 | 中卫 | 文山 | 保定 | 雄安新区 | 泰安 | 黔南 | 张北 | 乌兰察布 | 温岭 | 齐齐哈尔 | 日照 | 景德镇 | 新疆乌鲁木齐 | 辽宁沈阳 | 黔东南 | 聊城 | 邹平 | 抚州 | 驻马店 | 杞县 | 巢湖 | 三沙 | 仙桃 | 普洱 | 嘉兴 | 陕西西安 | 鄂州 | 滨州 | 钦州 | 普洱 | 晋中 | 泸州 | 简阳 | 任丘 | 庆阳 | 桓台 | 郴州 | 红河 | 辽阳 | 汉川 | 湛江 | 台中 | 台湾台湾 | 张掖 | 北海 | 株洲 | 儋州 | 临海 | 芜湖 | 白银 | 白沙 | 秦皇岛 | 宣城 | 巢湖 | 汕头 | 曲靖 | 六盘水 | 吉安 | 瑞安 | 湖南长沙 | 永州 | 贵州贵阳 | 鹤岗 | 衡阳 | 吐鲁番 | 瓦房店 | 通辽 | 安康 | 苍南 | 河源 | 定州 | 日土 | 项城 | 苍南 | 昌都 | 慈溪 | 铜仁 | 黄南 | 宝应县 | 达州 | 上饶 | 巢湖 | 章丘 | 兴安盟 | 诸暨 | 改则 | 吐鲁番 | 昌吉 | 柳州 | 中山 | 南京 | 蓬莱 | 蓬莱 | 平凉 | 龙口 | 安吉 | 台州 | 云浮 | 苍南 | 阳江 | 金昌 | 赣州 | 玉环 | 包头 | 垦利 | 改则 | 阿拉善盟 | 唐山 | 和田 | 建湖 | 滁州 | 宁波 | 营口 | 黔南 | 温岭 | 萍乡 | 信阳 | 淮安 | 灌南 | 荆门 | 红河 | 潜江 | 延安 | 六盘水 | 莒县 | 石狮 | 铜陵 | 五指山 | 金华 | 潜江 | 武安 | 梧州 | 吉安 | 湖北武汉 | 榆林 | 威海 | 三明 | 醴陵 | 诸暨 | 寿光 | 简阳 | 通辽 | 莆田 | 嘉兴 | 玉环 | 澳门澳门 | 陇南 | 巴中 | 双鸭山 | 丹阳 | 恩施 | 十堰 | 铁岭 | 黄南 | 慈溪 | 江西南昌 | 潜江 | 新沂 | 白山 | 惠州 | 芜湖 | 简阳 | 襄阳 | 昭通 | 东营 | 长治 | 通辽 | 宜昌 | 临沂 | 汉中 | 日照 | 曲靖 | 赣州 | 邹城 | 随州 | 临海 | 辽阳 | 株洲 | 咸阳 | 吴忠 | 中卫 | 吉林长春 | 林芝 | 商丘 | 白山 | 伊犁 | 青海西宁 | 江苏苏州 | 海安 | 龙口 | 广安 | 齐齐哈尔 | 辽阳 | 阜阳 | 辽源 | 文昌 | 宜昌 | 南充 | 吉林长春 | 邯郸 | 广元 | 长垣 | 自贡 | 陕西西安 | 淮安 | 邹平 | 天水 | 福建福州 | 松原 | 昭通 | 泉州 | 丽江 | 绵阳 | 乌兰察布 | 黔西南 | 驻马店 | 廊坊 | 禹州 | 铜仁 | 吉林 | 四平 | 玉林 | 湘潭 | 庄河 | 定州 | 牡丹江 | 防城港 | 商丘 | 莱州 | 东阳 | 海安 | 丽江 | 来宾 | 齐齐哈尔 | 迪庆 | 梅州 | 葫芦岛 | 东台 | 庆阳 | 阿拉善盟 | 吉林长春 | 徐州 | 安庆 | 东海 | 如皋 | 焦作 | 赣州 | 石嘴山 | 大丰 | 涿州 | 咸阳 | 燕郊 | 玉树 | 衢州 | 临猗 | 吉安 | 宜春 | 武安 | 保亭 | 平潭 | 单县 | 大理 | 德宏 | 阳春 | 正定 | 淄博 | 绵阳 | 辽源 | 芜湖 | 孝感 | 广汉 | 安庆 | 天门 | 醴陵 | 包头 | 正定 | 高雄 | 枣阳 | 章丘 | 新沂 | 莱州 | 曲靖 | 宜昌 | 建湖 | 保定 | 库尔勒 | 厦门 | 章丘 | 百色 | 葫芦岛 | 澳门澳门 | 巢湖 | 天门 | 楚雄 | 随州 | 鄢陵 | 南京 | 襄阳 | 乐清 | 澳门澳门 | 鹤壁 | 台湾台湾 | 白沙 | 阳泉 | 溧阳 | 咸阳 | 南安 | 襄阳 | 铜川 | 平顶山 | 清徐 | 长葛 | 龙岩 | 梧州 | 日土 | 海北 | 通辽 | 阿勒泰 | 安庆 | 中卫 | 扬中 | 基隆 | 信阳 | 吕梁 | 曲靖 | 伊犁 | 张掖 | 常州 | 南京 | 张北 | 义乌 | 库尔勒 | 赣州 | 濮阳 | 台湾台湾 | 蓬莱 | 张家口 | 襄阳 | 黔东南 | 遵义 | 潍坊 | 台南 | 汝州 | 汕头 | 台中 | 台南 | 博尔塔拉 | 阳江 | 云南昆明 | 盘锦 | 龙岩 | 晋城 | 金华 | 龙岩 | 扬州 | 朔州 | 东营 | 滕州 | 明港 | 枣阳 | 澄迈 | 潜江 | 武夷山 | 遵义 | 宁德 | 毕节 | 广西南宁 | 山东青岛 | 汉川 | 东营 | 东台 | 清远 | 鄂尔多斯 | 临夏 | 遵义 | 晋江 | 广州 | 宁德 | 河北石家庄 | 台中 | 黄南 | 临沧 | 扬州 | 塔城 | 曹县 | 沧州 | 天长 | 安阳 | 金昌 | 阿克苏 | 大庆 | 喀什 | 阿坝 | 汉川 | 鹤岗 | 漯河 | 楚雄 | 余姚 | 肇庆 | 安康 | 佛山 | 台州 | 齐齐哈尔 | 博尔塔拉 | 萍乡 | 吉安 | 锦州 | 白城 | 绵阳 | 龙岩 | 抚顺 | 澄迈 | 石嘴山 | 荆门 | 阿勒泰 | 怒江 | 东营 | 阿拉尔 | 西双版纳 | 陕西西安 | 扬中 | 克孜勒苏 | 乐平 | 和县 | 章丘 | 丽江 | 正定 | 天水 | 顺德 | 濮阳 | 崇左 | 松原 | 亳州 | 东莞 | 葫芦岛 | 昌吉 | 平潭 | 文昌 | 莒县 | 乌兰察布 | 阿勒泰 | 武安 | 仁寿 | 伊犁 | 庄河 | 中卫 | 河池 | 广元 | 任丘 | 枣庄 | 张北 | 南平 | 安吉 | 东台 | 大丰 | 仁寿 | 神农架 | 廊坊 | 山南 | 深圳 | 伊犁 | 德清 | 贵州贵阳 | 七台河 | 咸宁 | 大理 | 垦利 | 玉林 | 云浮 | 临猗 | 朔州 | 安阳 | 深圳 | 金华 | 衡阳 | 简阳 | 喀什 | 阿拉善盟 | 黄山 | 大理 | 四川成都 | 赵县 | 达州 | 白银 | 白城 | 安阳 | 文山 | 邵阳 | 天门 | 汕尾 | 三亚 | 海门 | 哈密 | 石狮 | 朔州 | 怀化 | 济南 | 新沂 | 文山 | 常州 | 博尔塔拉 | 景德镇 | 中卫 | 聊城 | 淮北 | 新乡 | 巴彦淖尔市 | 南平 | 大同 | 孝感 | 绵阳 | 澳门澳门 | 如皋 | 三沙 | 肇庆 | 诸暨 | 荣成 | 山西太原 | 酒泉 | 丽水 | 雄安新区 | 泸州 | 郴州 | 湖州 | 和县 | 甘肃兰州 | 汕尾 | 佛山 | 泰兴 | 南充 | 屯昌 | 晋中 | 铜仁 | 吐鲁番 | 鹤壁 | 马鞍山 | 库尔勒 | 赤峰 | 济源 | 焦作 | 绵阳 | 吉林长春 | 宜宾 | 崇左 | 简阳 | 怀化 | 禹州 | 屯昌 | 驻马店 | 三沙 | 博尔塔拉 | 平顶山 | 巴彦淖尔市 | 临夏 | 吉林 | 台中 | 池州 | 忻州 | 周口 | 昌吉 | 威海 | 承德 | 毕节 | 海丰 | 瑞安 | 蓬莱 | 广元 | 黑龙江哈尔滨 | 吉安 | 海西 | 商洛 | 阿拉尔 | 萍乡 | 阜新 | 嘉善 | 镇江 | 顺德 | 昌吉 | 大理 | 铜陵 | 中卫 | 南京 | 新沂 | 汉川 | 内蒙古呼和浩特 | 新沂 | 白沙 | 巴中 | 七台河 | 天水 | 汝州 | 海门 | 永新 | 铁岭 | 崇左 | 海东 | 山东青岛 | 蓬莱 | 晋江 | 东莞 | 惠州 | 大丰 | 海门 | 德阳 | 雅安 | 阿克苏 | 吉林 | 漯河 | 黄冈 | 大庆 | 广州 | 内蒙古呼和浩特 | 阿勒泰 | 安阳 | 铜仁 | 文山 | 锡林郭勒 | 四川成都 | 山东青岛 | 秦皇岛 | 临沂 | 毕节 | 琼海 | 义乌 | 云南昆明 | 宣城 | 泸州 | 定西 | 肥城 | 商丘 | 鄂州 | 和田 | 黔南 | 启东 | 博罗 | 高雄 | 铜陵 | 深圳 | 赣州 | 枣庄 | 昌吉 | 鸡西 | 芜湖 | 桓台 | 安吉 | 南充 | 湖北武汉 | 池州 | 本溪 | 许昌 | 芜湖 | 昭通 | 德阳 | 澳门澳门 | 徐州 | 伊犁 | 桓台 | 辽宁沈阳 | 晋城 | 迪庆 | 永新 | 赤峰 | 巴中 | 文山 | 榆林 | 灌南 | 齐齐哈尔 | 江西南昌 | 新泰 | 深圳 | 铜仁 | 邯郸 | 沛县 | 南通 | 醴陵 | 眉山 | 六盘水 | 滕州 | 阜阳 | 防城港 | 咸阳 | 雅安 | 南京 | 库尔勒 | 张家界 | 克孜勒苏 | 滕州 | 厦门 | 抚顺 | 玉树 | 白沙 | 图木舒克 | 辽源 | 云浮 | 乐清 | 常州 | 柳州 | 丽江 | 云南昆明 | 沧州 | 云浮 | 天门 | 楚雄 | 安康 | 海拉尔 | 南阳 | 北海 | 玉林 | 四川成都 | 庆阳 | 平凉 | 吐鲁番 | 宣城 | 三沙 | 石狮 | 青州 | 兴安盟 | 乐清 | 镇江 | 巴中 | 泸州 | 阿拉尔 | 葫芦岛 | 福建福州 | 眉山 | 日照 | 西双版纳 | 文山 | 龙口 | 雅安 | 黑龙江哈尔滨 | 保定 | 邵阳 | 鄢陵 | 红河 | 白银 | 潮州 | 黄南 | 邯郸 | 招远 | 吉安 | 山南 | 吉安 | 临汾 | 长垣 | 张家口 | 改则 | 图木舒克 | 肥城 | 赣州 | 林芝 | 宝应县 | 萍乡 | 驻马店 | 云浮 | 顺德 | 保亭 | 深圳 | 白山 | 黔南 | 烟台 | 临汾 | 濮阳 | 营口 | 张家口 | 泰州 | 扬州 | 阿坝 | 丹东 | 萍乡 | 宣城 | 株洲 | 桓台 | 锡林郭勒 | 义乌 | 深圳 | 玉环 | 汝州 | 岳阳 |