微信紅包的坑~參數詳解和密鑰的坑

来源:http://www.cnblogs.com/lori/archive/2017/01/19/6305411.html
-Advertisement-
Play Games

對於之前微信支付的文章中,我們談過了它的很多"坑",而在進行紅包開發時,這種坑依然不少,主要是微信為我們提供的各種賬號和密鑰太多,把開發人員都搞暈了,下麵大叔總結一下: 一 微信支付的密鑰 統一使用公眾號密鑰:Key 二 微信紅包的密鑰 統一使用商戶賬號的密鑰:AppSecret 三 紅包進行簽名要 ...


對於之前微信支付的文章中,我們談過了它的很多"坑",而在進行紅包開發時,這種坑依然不少,主要是微信為我們提供的各種賬號和密鑰太多,把開發人員都搞暈了,下麵大叔總結一下:

一 微信支付的密鑰

統一使用公眾號密鑰:Key

二 微信紅包的密鑰

統一使用商戶賬號的密鑰:AppSecret

三 紅包進行簽名要註意的

使用場景可以排除,如果大於200元時才需要這個參數,如果你隨便寫一個場景,而商戶平臺沒有開通,反而會報錯

四 向微信發送紅包請求時要帶上證書

需要現時讀取apiclient_cert.p12的簽名內容,因為https是雙向檢驗的,在.net平臺,程式要載入p12這個證書,併發到微信;在操作系統上,還要安裝這個證書,兩者缺一不可.

public static string Post(string url, string param)
        {
            try
            {
                string cert = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "apiclient_cert.p12");
                string password = WxPayConfig.MCHID;
                ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
                X509Certificate cer = new X509Certificate(cert, password);

                HttpWebRequest webrequest = (HttpWebRequest)HttpWebRequest.Create(url);
                webrequest.ClientCertificates.Add(cer);
                webrequest.Method = "post";

                byte[] someBytes = System.Text.Encoding.UTF8.GetBytes(param);
                webrequest.ContentLength = someBytes.Length;
                Stream reqStream = webrequest.GetRequestStream();
                reqStream.Write(someBytes, 0, someBytes.Length);
                reqStream.Close(); //必須要關閉 請求

                HttpWebResponse webreponse = (HttpWebResponse)webrequest.GetResponse();
                Stream stream = webreponse.GetResponseStream();
                string resp = string.Empty;
                using (StreamReader reader = new StreamReader(stream))
                {
                    resp = reader.ReadToEnd();
                }
                return resp;
            }
            catch (Exception e)
            {
                Lind.DDD.Logger.LoggerFactory.Instance.Logger_Info(string.Format("微信紅包介面日誌:錯誤代碼:{0} {1}", e.Message, e.StackTrace));
                throw;
            }

五 簽名時的key一定要用AppSecret,下麵代碼是錯誤的

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

-Advertisement-
Play Games
更多相關文章
  • 操作系統: CentOS 6.5_x64開發語言: Python 適用場景:程式異常退出後需要及時啟動的情況。 源碼地址: https://github.com/mike-zhang/processGuarder 原理 通過ps檢查進程是否存在,如果不存在則啟動 使用 ./processGuarde ...
  • maven-compiler-plugin 編譯Java源碼,一般只需設置編譯的jdk版本 maven-dependency-plugin 用於複製依賴的jar包到指定的文件夾里 maven-jar-plugin 打成jar時,設定manifest的參數,比如指定運行的Main class,還有依賴 ...
  • 今天在牛客網上做了一道題,題意就是求左旋轉字元串。我使用輾轉相除法解之,一次性AC通過。實話說,每次寫演算法一次性通過,甚至一點編譯錯誤都沒有,我覺得這就是對我最好的嘉獎。 題目描述: 彙編語言中有一種移位指令叫做迴圈左移(ROL),現在有個簡單的任務,就是用字元串模擬這個指令的運算結果。對於一個給定 ...
  • 本教程上接Django 1.10中文文檔-第一個應用Part2-模型和管理站點。我們將繼續開髮網頁投票這個應用,主要講如何創建一個對用戶開放的界面。 概覽 視圖是Django應用中的一“類”網頁,它通常使用一個特定的函數提供服務,並且具有一個特定的模板。例如,在博客應用中,可能有以下視圖: 博客首頁 ...
  • 【轉自:http://www.cnblogs.com/disheng2016/p/6266523.html】 maven下載jar包的預設倉庫是http://my.repository.com/repo/path速度較慢,通過配置國內鏡像提高下載速度 1.打開eclipse >Window >Pre ...
  • 今天我們來講一下模板方法模式。 一、案例 我們在上中學的時候,會有這麼一種場景,老師在黑板上寫測試題,讓我們自己抄到紙上做。相信不少小伙伴們都經歷過這種歲月,想想還是很懷念的呢。這種做測試的方式,對當時的我們來講,有一個最致命的痛苦,就是這個題目會做,但是TM抄錯了題目了,擦擦擦。相信不少小伙伴肯定 ...
  • 在項目中或多或少的都存在著重覆的或者功能相似的代碼,如果要對代碼做改動,就要修改多個地方,所以我們需要將多處重覆的代碼提取到一個公共的地方供統一調用,以減少代碼量,提高代碼可維護性。 重構前代碼 重構後代碼 ...
  • 引言 2016年中,我所在的項目組將原來系統中的登錄模塊拆出來做成一套集中賬號管理系統,並對外提供單點登錄的服務。後來,公司中需要使用員工賬號進行登錄的系統越來越多,但這些系統都是各有各的實現方式,管理比較混亂。為了推廣我們組的賬號管理系統,統一公司的賬號體系,我寫了一篇“軟文”希望在公司技術月刊上 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...