cao死我好湿好紧好爽动态视屏|精选久久久久久久久久|中文无码精品一区二区三区四季|AAA国语精品刺激对白视频|

當(dāng)前位置:首頁 > 軟件開放 > 正文內(nèi)容

微信網(wǎng)站開發(fā)源代碼(微信網(wǎng)站開發(fā)源代碼是什么)

軟件開放6個(gè)月前 (07-08)415

緣起

今年公司某個(gè)項(xiàng)目需要全面接入微信支付 V3 版 API。起初覺得,2014 年微信支付就已上線了 V3 版 API,這都 2021 年了,就算官方不給力,怎么著社區(qū)也該有幾個(gè)造好的 .NET 的輪子了吧?于是興沖沖地到 NuGet 上開始搜索“微信支付”四個(gè)大字,結(jié)果……

倒不是沒有現(xiàn)成的輪子,但基本都是只包含一些簡單 API(如下單、查單、退款等等),與需求不符;偶爾有一些看似封裝全的,點(diǎn)進(jìn)去一看卻是基于 V2 版 API 的。

沒辦法,自己動(dòng)手,豐衣足食!

接入了微信支付后想著,既然微信支付都有了,為啥不把公眾號、小程序、企業(yè)微信之類的也接入了呢?

于是乎 SKIT.FlurlHttpClient.Wechat 這個(gè)項(xiàng)目就誕生了。

項(xiàng)目介紹

SKIT.FlurlHttpClient.Wechat 是一個(gè)基于 Flurl.Http 的微信 API HTTP 客戶端。

包含以下特性:

支持 .NET Framework 4.6.1+、.NET Standard 2.0+、.NET Core 2.0+、.NET 5。

支持 Windows / Linux / macOS 多平臺(tái)部署。

支持 System.Text.Json(默認(rèn))和 Newtonsoft.Json 兩種序列化方式。

異步式編程。

強(qiáng)類型接口模型。

提供攔截器功能。

提供微信 API 所需的 MD5、SHA-1、SHA-256、AES、RSA 等算法工具類。

完整、完善、完全的微信 API 封裝,同時(shí)可靈活自行擴(kuò)展。

現(xiàn)有以下模塊:

公眾平臺(tái)(公眾號、小程序、小游戲、小商店) 開放平臺(tái)模塊: SKIT.FlurlHttpClient.Wechat.Api

商戶平臺(tái)(微信支付)模塊: SKIT.FlurlHttpClient.Wechat.TenpayV3

企業(yè)微信(企業(yè)號)模塊: SKIT.FlurlHttpClient.Wechat.Work

廣告平臺(tái)(廣點(diǎn)通)模塊: SKIT.FlurlHttpClient.Wechat.Ads

以接入微信支付為例,其他模塊的開發(fā)流程與之十分類似。

安裝: dotnet add package SKIT.FlurlHttpClient.Wechat.TenpayV3

初始化:

usingSKIT.FlurlHttpClient.Wechat;

usingSKIT.FlurlHttpClient.Wechat.TenpayV3;

usingSKIT.FlurlHttpClient.Wechat.TenpayV3.Settings;

/* 平臺(tái)證書管理器,具體用法請參見文檔 */

varcertManager = newInMemoryCertificateManager;

/* 僅列出必須配置項(xiàng)。也包含一些諸如超時(shí)時(shí)間、UserAgent 等的配置項(xiàng) */

varoptions = newWechatTenpayClientOptions

{

MerchantId = "微信商戶號",

MerchantV3Secret = "微信商戶 v3 API 密鑰",

MerchantCertSerialNumber = "微信商戶證書序列號",

MerchantCertPrivateKey = "-----BEGIN PRIVATE KEY-----微信商戶證書私鑰-----END PRIVATE KEY-----",

CertificateManager = certManager

};

varclient = newWechatTenpayClient(options);

usingSKIT.FlurlHttpClient.Wechat.TenpayV3;

usingSKIT.FlurlHttpClient.Wechat.TenpayV3.Models;

/* 以 JSAPI 統(tǒng)一下單接口為例 */

varrequest = newCreatePayTransactionJsapiRequest

{

微信網(wǎng)站開發(fā)源代碼(微信網(wǎng)站開發(fā)源代碼是什么)

OutTradeNumber = "商戶訂單號",

AppId = "微信 AppId",

Deion = "訂單描述",

ExpireTime = DateTimeOffset.Now.AddMinutes(15),

NotifyUrl = "https://example.com",

Amount = newCreatePayTransactionJsapiRequest.Types.Amount

{

Total = 100

},

Payer = newCreatePayTransactionJsapiRequest.Types.Payer

{

OpenId = "微信 OpenId"

}

};

varresponse = awaitclient.ExecuteCreatePayTransactionJsapiAsync(request);

if(response.IsSuccessful)

{

Console.WriteLine( "PrepayId:"+ response.PrepayId);

}

else

{

Console.WriteLine( "HTTP 狀態(tài):"+ response.RawStatus);

Console.WriteLine( "錯(cuò)誤代碼:"+ response.ErrorCode);

Console.WriteLine( "錯(cuò)誤描述:"+ response.ErrorMessage);

}

展開全文

/* 一般情況下可以跳過驗(yàn)證響應(yīng)的簽名 */

boolvalid = client.VerifyResponseSignature(response);

/* 字典結(jié)構(gòu),包含客戶端 JS-SDK 調(diào)起支付所需的完整參數(shù) */

varparamMap = client.GenerateParametersForJsapiPayRequest(request.AppId, response.PrepayId);

stringcallbackJson = "{ 微信商戶平臺(tái)發(fā)來的 JSON 格式的通知內(nèi)容 }";

stringcallbackTimestamp = "微信回調(diào)通知中的 Wechatpay-Timestamp 標(biāo)頭";

stringcallbackNonce = "微信回調(diào)通知中的 Wechatpay-Nonce 標(biāo)頭";

stringcallbackSignature = "微信回調(diào)通知中的 Wechatpay-Signature 標(biāo)頭";

stringcallbackSerialNumber = "微信回調(diào)通知中的 Wechatpay-Serial 標(biāo)頭";

boolvalid = client.VerifyEventSignature(callbackTimestamp, callbackNonce, callbackJson, callbackSignature, callbackSerialNumber);

if(valid)

{

/* 將 JSON 反序列化得到通知對象 */

/* 你也可以將 WechatTenpayEvent 類型直接綁定到 MVC 模型上,這樣就不再需要手動(dòng)反序列化 */

varcallbackModel = client.DeserializeEvent(callbackJson);

if( "TRANSACTION.SUCCESS".Equals(callbackModel.EventType))

{

/* 根據(jù)事件類型,解密得到支付通知敏感數(shù)據(jù) */

varcallbackResource = client.DecryptEventResourceEvents.TransactionResource(callbackModel);

stringoutTradeNumber = callbackResource.OutTradeNumber;

stringtransactionId = callbackResource.TransactionId;

Console.WriteLine( "訂單 {0} 已完成支付,交易單號為 {1}", outTradeNumber, transactionId);

}

}

更多使用說明請閱讀項(xiàng)目倉庫中的開發(fā)文檔。

項(xiàng)目倉庫中還包含了一個(gè)示例項(xiàng)目,以供開發(fā)者快速掌握本庫的使用方法。

FAQ 1. Flurl.Http 是什么?

Flurl.Http 是一個(gè)輕量級 HTTP 庫,是 .NET 中最受歡迎擴(kuò)展庫之一,在 NuGet 上的累計(jì)下載量超過 1700 萬、日均下載量超過 6 千、GitHub 2.6k Stars(數(shù)據(jù)統(tǒng)計(jì)截至 2021-06-01)。

與另一個(gè)流行的 HTTP 庫 RestSharp 相比, Flurl.Http 底層基于 System.Net.Http.HttpClient ,而 RestSharp 底層則基于 System.Net.HttpWebRequest ,前者在多核多線程環(huán)境下的性能基準(zhǔn)測試中表現(xiàn)要遠(yuǎn)優(yōu)于后者,同時(shí)也是微軟官方目前推薦的 HTTP 客戶端方案。

2. 本庫與盛派微信 SDK(Senparc.Weixin)有什么區(qū)別?

本庫 專注于 API 本身的封裝 ,捎帶提供了一些用于加解密、序列化的工具類, 使用更靈活 ;盛派微信 SDK 提供了大而全的功能,可與 MVC / WebAPI 深度集成。

本庫 遵循微軟官方推薦的 C# 屬性命名方式(大駝峰命名法) 對接口模型進(jìn)行定義;盛派微信 SDK 提供的是微信接口本身的命名方式(蛇形命名法和小駝峰命名法混雜)。

本庫 封裝了目前微信官方提供的所有 API ;盛派微信 SDK 只提供了常用的 API。

直接原因是本庫的依賴庫最低支持到 .NET Framework 4.6.1。

間接原因是為了支持跨平臺(tái)的 .NET Standard 2.0,只能兼容到 .NET Framework 4.6.1。

根本原因是微軟官方已于 2016 年 1 月 12 日終止了對 .NET Framework 4.6.1 以下版本的技術(shù)支持。也就是說,微軟已經(jīng)不再為此提供安全更新,在大部分技術(shù)合規(guī)要求中這一點(diǎn)都是扣分項(xiàng),所以建議各位開發(fā)者目標(biāo)框架能升級就升級。

倉庫

GitHub:https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat

Gitee:https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat

以上倉庫地址同步更新,均可接受 Issue 或 Pull Request。

掃描二維碼推送至手機(jī)訪問。

版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請注明出處。

本文鏈接:http://www.smallwaterjetsystem.com/post/118052.html

“微信網(wǎng)站開發(fā)源代碼(微信網(wǎng)站開發(fā)源代碼是什么)” 的相關(guān)文章

交易平臺(tái)凍結(jié)資金讓充錢解凍怎么舉報(bào)(交易平臺(tái)資金凍結(jié)了需要充錢解凍嗎)

交易平臺(tái)凍結(jié)資金讓充錢解凍怎么舉報(bào)(交易平臺(tái)資金凍結(jié)了需要充錢解凍嗎)

今天給各位分享交易平臺(tái)凍結(jié)資金讓充錢解凍怎么舉報(bào)的知識(shí),其中也會(huì)對交易平臺(tái)資金凍結(jié)了需要充錢解凍嗎進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、游戲平臺(tái)把我的資金凍結(jié)了,要求我給他們打500過去才能解凍,不然會(huì)被永久凍結(jié),該怎么辦,錢還能拿回 2、我在...

十大手游交易平臺(tái)排行榜dd373(十大可交易的手游平臺(tái))

十大手游交易平臺(tái)排行榜dd373(十大可交易的手游平臺(tái))

本篇文章給大家談?wù)勈笫钟谓灰灼脚_(tái)排行榜dd373,以及十大可交易的手游平臺(tái)對應(yīng)的知識(shí)點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、手游在哪里交易 2、游戲交易平臺(tái)有哪些? 3、賣游戲賬號哪個(gè)平臺(tái)好? 4、手游交易平臺(tái)哪個(gè)好 5、游戲幣交易平臺(tái)哪個(gè)最好? 手游在...

外賣俠cps源碼(外賣cps小程序源碼)

外賣俠cps源碼(外賣cps小程序源碼)

本篇文章給大家談?wù)勍赓u俠cps源碼,以及外賣cps小程序源碼對應(yīng)的知識(shí)點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、經(jīng)常點(diǎn)外賣怎么最省錢 2、“垃圾桶有小孩”銀川外賣小哥在垃圾桶發(fā)現(xiàn)一新生兒,頭上有血,怎么回事? 3、他們叫“外賣俠” 4、外賣小哥垃圾桶救出新生兒是怎...

怎么自己搭建服務(wù)器(怎么自己搭建服務(wù)器連接)

怎么自己搭建服務(wù)器(怎么自己搭建服務(wù)器連接)

本篇文章給大家談?wù)勗趺醋约捍罱ǚ?wù)器,以及怎么自己搭建服務(wù)器連接對應(yīng)的知識(shí)點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、如何自己架設(shè)服務(wù)器 2、如何用自己的電腦搭建服務(wù)器 3、如何在家搭個(gè)小型服務(wù)器? 4、如何搭建自己的服務(wù)器 5、怎么用自己的電腦做服務(wù)器?...

免費(fèi)交友軟件不需充值暢聊不用登陸(不充值聊天交友軟件)

免費(fèi)交友軟件不需充值暢聊不用登陸(不充值聊天交友軟件)

今天給各位分享免費(fèi)交友軟件不需充值暢聊不用登陸的知識(shí),其中也會(huì)對不充值聊天交友軟件進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、不用充值的免費(fèi)交友軟件有沒有? 2、免費(fèi)交友聊天不花錢軟件有哪些? 3、免費(fèi)無限暢聊的聊天軟件 不用充值的免費(fèi)交友軟件...

聚寶坊手游交易平臺(tái)多久到賬(聚寶齋交易后多久到賬)

聚寶坊手游交易平臺(tái)多久到賬(聚寶齋交易后多久到賬)

今天給各位分享聚寶坊手游交易平臺(tái)多久到賬的知識(shí),其中也會(huì)對聚寶齋交易后多久到賬進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、諾亞傳說聚寶樓幾天可以到款 2、問道手游聚寶寨提現(xiàn)要多久,4天了還在申請中 3、問道手游聚寶齋買角色定金交了什么時(shí)候可以拿到...