国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - ASP.NET教程 - .NET Core 實(shí)現(xiàn)微信小程序支付功能(統(tǒng)一下單)

.NET Core 實(shí)現(xiàn)微信小程序支付功能(統(tǒng)一下單)

2020-06-18 14:29hailang8 ASP.NET教程

最近公司研發(fā)了幾個(gè)電商小程序,還有一個(gè)核心的電商直播,只要是電商一般都會(huì)涉及到交易信息,離不開支付系統(tǒng),這里我們統(tǒng)一實(shí)現(xiàn)小程序的支付流程。感興趣的朋友跟隨小編一起看看吧

最近公司研發(fā)了幾個(gè)電商小程序,還有一個(gè)核心的電商直播,只要是電商一般都會(huì)涉及到交易信息,離不開支付系統(tǒng),這里我們統(tǒng)一實(shí)現(xiàn)小程序的支付流程(與服務(wù)號實(shí)現(xiàn)步驟一樣)。


目錄
1、開通小程序的支付能力
2、商戶后臺綁定同一主體的APPID并授權(quán)
3、預(yù)先設(shè)置回調(diào)地址,商戶后臺設(shè)置開發(fā)的配置
4、代碼實(shí)現(xiàn)統(tǒng)一支付5、微信支付回調(diào)
6、總結(jié)
 

開通小程序的支付能力

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

.NET Core 實(shí)現(xiàn)微信小程序支付功能(統(tǒng)一下單)

 

以上三個(gè)步驟就申請完成

1、提交資料給微信

2、微信審核并簽署協(xié)議

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

 

商戶后臺綁定同一主體的APPID并授權(quán)

1、登錄商戶后臺https://pay.weixin.qq.com,進(jìn)入產(chǎn)品中心—APPID授權(quán)管理,進(jìn)入授權(quán)頁面如圖:

.NET Core 實(shí)現(xiàn)微信小程序支付功能(統(tǒng)一下單)

 

2、填寫相關(guān)已認(rèn)證APPID信息,閱讀并簽署《微信支付商戶號與APPID授權(quán)協(xié)議》,點(diǎn)擊“確認(rèn)”提交,發(fā)起授權(quán)申請,如下圖:

.NET Core 實(shí)現(xiàn)微信小程序支付功能(統(tǒng)一下單)

 

3、發(fā)起授權(quán)申請后,商戶需自行前往對應(yīng)平臺確認(rèn)授權(quán)申請。

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

公眾號/訂閱號:前往公眾平臺,點(diǎn)擊“微信支付-商戶號管理”,查看相關(guān)商戶號信息,確認(rèn)授權(quán)申請;

APP:前往開放平臺,點(diǎn)擊“管理中心-查看-微信支付-商戶號管理”,查看相關(guān)商戶號信息,確認(rèn)授權(quán)申請;

.NET Core 實(shí)現(xiàn)微信小程序支付功能(統(tǒng)一下單)

 

4. 以上步驟綁定成功,可以實(shí)現(xiàn)微信支付功能。

 

預(yù)先設(shè)置回調(diào)地址,商戶后臺設(shè)置開發(fā)的配置

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

.NET Core 實(shí)現(xiàn)微信小程序支付功能(統(tǒng)一下單)

 

根據(jù)自己的需求設(shè)置不同的回調(diào)地址。

 

代碼實(shí)現(xiàn)統(tǒng)一支付

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

微信小程序支付官方圖:

.NET Core 實(shí)現(xiàn)微信小程序支付功能(統(tǒng)一下單)

 

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

 

引用包:

Senparc.Weixin.WxOpen

Senparc.Weixin.TenPay

 

注冊公眾號,小程序信息

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

 

前端調(diào)用統(tǒng)一下單接口,獲取prepayId

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

 

部分前端代碼如下:

.NET Core 實(shí)現(xiàn)微信小程序支付功能(統(tǒng)一下單)

 

 

.NET Core 實(shí)現(xiàn)微信小程序支付功能(統(tǒng)一下單)

 

后端部分代碼截圖獲取prepayId,如需代碼請與我聯(lián)系

.NET Core 實(shí)現(xiàn)微信小程序支付功能(統(tǒng)一下單)

 

提交統(tǒng)一支付成功后,會(huì)出現(xiàn)如下圖:

.NET Core 實(shí)現(xiàn)微信小程序支付功能(統(tǒng)一下單)

 

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

 

微信支付回調(diào)

微信支付回調(diào)規(guī)則如下:

.NET Core 實(shí)現(xiàn)微信小程序支付功能(統(tǒng)一下單)

 

回調(diào)代碼實(shí)現(xiàn)

 
///<summary>
/// 微信支付回調(diào)地址
/// </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,
            };

            //回調(diào)參數(shù)說明:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_7&index=3
            //Logger.Info(string.Format("支付回調(diào)接收參數(shù)成功,notifyXml={0},param={1}", notifyXml, param.SerializeObject()));

            result = Service.PayNotifyUrl(param);
            if (result.errno != 0)
            {
                //回調(diào)處理邏輯失敗
                Logger.Error(string.Format("支付回調(diào)處理失敗:支付單號:{0},{1}", param.PayNo, result.errmsg));
            }
            else
            {
                Logger.Info(string.Format("支付回調(diào)處理成功,支付單號:{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
        {
            //錯(cuò)誤的訂單處理
            Logger.Error(string.Format("支付回調(diào)接失敗,signFlag={0},notifyXml={1}", signFlag, notifyXml));
        }


    }
    catch (Exception ex)
    {
        Logger.Error(string.Format("支付回調(diào)異常:Message={0},StackTrace={1}", ex.Message, ex.StackTrace));
    }

    return Content("fail", "text/xml");
}
 

 

回調(diào)接口最好驗(yàn)證下簽名是否正確,驗(yàn)證簽名請先設(shè)置下商戶KEY,如簽名成功,微信支付成功,這時(shí)可以處理業(yè)務(wù)數(shù)據(jù)。

 

注:如果業(yè)務(wù)處理成功最好返回SUCCESS告訴微信,否則微信會(huì)隔一段時(shí)間就會(huì)回調(diào)一次,直到回調(diào)次數(shù)用盡,這里也需要自己業(yè)務(wù)處理好狀態(tài)。

 

總結(jié)

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

以上所述是小編給大家介紹的.NET Core 實(shí)現(xiàn)微信小程序支付功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對服務(wù)器之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

原文鏈接:https://www.cnblogs.com/hailang8/p/11504809.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美日韩在线精品 | 欧美成人自拍 | 亚洲一区二区三区视频 | 久久国产精品久久久久久 | 精品久久久久久久久久久下田 | 国产综合区 | 天天操天天干视频 | 中文字幕在线影院 | 精久久| 亚洲国产精品一区二区第一页 | 精品黄色 | 色爱区综合五月激情 | av成人毛片 | 久久人人爽人人爽人人片av不 | 国产中文字幕亚洲 | 特级黄一级播放 | 久久久久久av | 91一区二区 | 91av免费| 在线精品一区 | 97国产精品 | 精品伊人久久 | 亚洲国产精品久久久久久久久久久 | 欧美日韩在线精品 | 精品久久一区二区三区 | 99re国产| 日韩成人在线网站 | 久久久天堂国产精品女人 | 免费在线观看黄色 | 欧美一区二区日韩 | 欧美日韩在线不卡 | 欧美黄色网视频 | 久久蜜桃av一区二区天堂 | 成人午夜精品一区二区三区 | 精品国产精品三级精品av网址 | 久久国产欧美日韩精品 | 午夜精品福利在线观看 | 国产精品视频成人 | 日本中文在线视频 | 嫩草91 | 精品久久久久久 |