微信JSAPI支付 統一下單 (.net後臺)

来源:http://www.cnblogs.com/wangxianggong/archive/2016/06/26/5617189.html
-Advertisement-
Play Games

交流QQ群 ASP.NET鷹組 460845632 我會傾囊相授 我們要做微信支付當配置好微信微信商戶和支付配置之後我們首先應該看 https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1# 這是微信統一下單的參數,我將這個參數做成 ...


 交流QQ群  ASP.NET鷹組 460845632  我會傾囊相授

我們要做微信支付當配置好微信微信商戶和支付配置之後我們首先應該看   https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1#

這是微信統一下單的參數,我將這個參數做成了一個數據模型

 

 

 

當做好這個數據模型之後仔細看一下裡面那些參數是必須的,支付金額要註意,微信是按來計算的

 

接下來我們就要生成簽名,我這寫好了個類  生成簽名後 返回提交的值.....先給大家看圖

  註意我這裡是先生成簽名,再把簽名拼接到訂單的參數裡面並且簽名排序了,下麵的代碼可以直接拿來用

 

 

接下來是代碼

 

 public string OrderSign(WXOrder order)  

{       

       Dictionary<string, string> dic = ClassToObject.ClassToType.Test(order);

       dic = dic.OrderBy(m => m.Key).ToDictionary(m => m.Key, m => m.Value);  

       StringBuilder sb = new StringBuilder();      

       StringBuilder sbXml = new StringBuilder();     

        sbXml.Append("<xml>");    

        foreach (var item in dic)        

      { 

                sbXml.Append("<" + item.Key + ">" + item.Value + "</" + item.Key + ">");

                sb.Append(item.Key + "=" + item.Value + "&");       

      }          

       sb.Append("key=" + WXConfig.Config.KEY);          

       string str = sb.ToString().Replace(" ", "");      

       string sign = Common.Tool.GetMD5(str);        

      sbXml.Append("<sign>" + sign + "</sign></xml>");     

        return sbXml.ToString().Replace(" ", "");

}

 

接下來就是統一下單的請求了,

上面的方法會返回一個XML ,將這個XML  POST請求到 https://api.mch.weixin.qq.com/pay/unifiedorder

 

請求之後如果正確返回值是一個XML  解析方方法如下

 

 

將xml解析之後會返回一個鍵值對集合  我只提取了需要的四個值,註意 prepay_id是統一下單後訂單的的信息,jsapi靠這個獲取支付信息

 

之後將使用jsapi 發起支付    如果沒有做過jsapi的請查看我的博客,有非常詳細的講解

 

我們看一下jsapi是怎麼發起支付的

我是用ajax 請求的後臺拿到上面的數據,返回的json  , 到此微信jsapi支付完成

 

如果你有什麼不懂得可以加我的 QQ群  ASP.NET鷹組 460845632  我會傾囊相授

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 橋接模式:實現系統可能有多角度分類,每一種分類都有可能的變化,那麼就把這種多角度分離出來讓他們獨立變化,減少它們之間的耦合 下麵的實例是一個手機軟體的實例,對於手機來說,我們可以從手機的品牌進行分類,也可以從軟體角度分類(功能機),同時手機品牌與手機軟體是一個 聚合的關係。 代碼如下: 運行結果: ...
  • ASP.NET MVC5入門基礎,添加一個模型、視圖、控制器,完成增刪改查的功能。 ...
  • 一、前言 上篇運用了.Net Remoting技術解決了本地與伺服器版本對比,並下載更新包的過程。 本篇主要是應用Process,來實現重啟程式的過程。 情景假設: Revit2016正載入某dll,其版本為1.0.0.0。伺服器的更新dll版本為1.0.0.10。 下載完後,Revit2016關閉 ...
  • 寫在前面 在學非同步,有位園友推薦了《async in C#5.0》,沒找到中文版,恰巧也想提高下英文,用我拙劣的英文翻譯一些重要的部分,純屬娛樂,簡單分享,保持學習,謹記謙虛。 如果你覺得這件事兒沒意義翻譯的又差,盡情的踩吧。如果你覺得值得鼓勵,感謝留下你的贊,在今後每一次應該猛烈突破的時候,不選擇 ...
  • 國內知名B2C系統  Urselect 很不錯的asp.net 架構參考與nopCommerce abp等國外開源系統,針對國內定製,採用領域模型設計,不過該系統很適合企業做B2C,品牌電商,商城操作簡單實用,功能也相當強大,是目前.net 系統裡面技術實力較強的後起之秀。 ...
  • 0. 沒有找到一款中意的分頁插件,又不想使用現成的(醜到爆),所以自己動手造一個吧 先看下效果(其實也不咋滴...): 我的小站地址:我的Bootstrap小站; PS:(問博客園:為什麼老是刪我的置頂隨便?上一篇閱讀量都快500了,也分分鐘給我從首頁刪掉...真是無語了<博客園地址:http:// ...
  • 第一次寫,小緊張! 即將畢業了,現在將我畢業設計中用到的小的編程技術以及自己的一些理解分享出來,希望可以做點小貢獻。 首先要感謝網上各路大神無私的分享,沒有你們,就沒有我的收穫。 在大四之前,對於編程只是學習過簡單的C語言,從來沒有接觸過工程實踐。最後的畢業設計肯定要開發程式,於是認真學習了一段時間 ...
  • Async in C# 5.0(C#中的非同步編程Async) 蝸牛翻譯之第一章 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...