狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

微信支付退款和退款結(jié)果查詢接口簡(jiǎn)單實(shí)現(xiàn)(.Net 7.0)


2024年8月7日 15:32 本文熱度 1113

前言

相較于支付寶,微信支付對(duì) .Net 的支持就沒(méi)那么充分,官方?jīng)]有提供 SDK。

 

但值得慶幸的是,在社區(qū)有大佬封裝了 v3 版 .Net SDK。

原文鏈接:https://developers.weixin.qq.com/community/develop/article/doc/00020aadc384a0a5f01c3526b56813。

SDK 名稱:SKIT.FlurlHttpClient.Wechat.TenpayV3,支持 .NET Core / Framework,完整封裝全部 v3 API。

本文也將以此 SDK 來(lái)應(yīng)用,主要介紹退款和退款狀態(tài)查詢兩個(gè)接口。

一、接入準(zhǔn)備

1.1 引入 SDK

名稱:SKIT.FlurlHttpClient.Wechat.TenpayV3,支持 .Net Standard 2.0、.Net Framework 4.6.2-4.7.1、.Net 6.0 等版本。

NuGet 簡(jiǎn)介地址:https://www.nuget.org/packages/SKIT.FlurlHttpClient.Wechat.TenpayV3。

 

簡(jiǎn)介:基于 Flurl.Http 的微信支付 API v3 版客戶端,支持商戶(直連)、合作伙伴(服務(wù)商、渠道商、機(jī)構(gòu)、銀行)模式,支持基礎(chǔ)支付、代金券、商家券、委托營(yíng)銷、消費(fèi)卡、支付有禮、銀行定向促活、微信支付分、微信先享卡、支付即服務(wù)、點(diǎn)金計(jì)劃、智慧商圈、電商收付通、平臺(tái)收付通、二級(jí)商戶進(jìn)件、小微商戶進(jìn)件、消費(fèi)者投訴、商戶風(fēng)控管理、商戶違規(guī)通知、批量轉(zhuǎn)賬到零錢、銀行組件、海關(guān)報(bào)關(guān)、融合錢包、微工卡、電子發(fā)票、電子小票、車主平臺(tái)、教育續(xù)費(fèi)通、校園輕松付等功能。

1.2 必要的賬戶信息

 

關(guān)于微信的服務(wù)商和普通商戶:

普通商戶

資金由微信直接與商戶結(jié)算,不涉及資金凍結(jié)和分賬;

可獨(dú)立申請(qǐng),可自行通過(guò)接口進(jìn)行支付、退款等操作;

適合大型企業(yè)或品牌商戶,有自己技術(shù)團(tuán)隊(duì)和支付系統(tǒng)。

服務(wù)商

資金會(huì)先被微信凍結(jié),服務(wù)商發(fā)起分賬后微信才進(jìn)行分賬;

可免費(fèi)申請(qǐng)不限個(gè)數(shù)的子商戶,但服務(wù)商的商戶號(hào)需要每年支付認(rèn)證費(fèi)用;

自身不能直接收款,需通過(guò)申請(qǐng)的“特約商戶”才能收款;

“特約商戶”可以像普通商戶一樣收款,但退款接口必須由服務(wù)商發(fā)起;

適合于提供支付解決方案給多個(gè)特約商戶的第三方機(jī)構(gòu),特別是那些需要處理多商戶分賬或收取服務(wù)費(fèi)的復(fù)雜場(chǎng)景。

特別注意:特約商戶,也就是服務(wù)商下邊的子商戶,是沒(méi)有權(quán)限直接調(diào)用退款接口的,只能根據(jù)服務(wù)商的賬戶信息加上子商戶號(hào)來(lái)。

二、接口調(diào)用

2.1 根據(jù)賬戶信息創(chuàng)建共用客戶端對(duì)象 

var manager = new InMemoryCertificateManager();

var options = new WechatTenpayClientOptions()

{

    MerchantId = "商戶號(hào)", // 商戶號(hào)

    MerchantV3Secret = "商戶 API v3 密鑰", // 商戶 API v3 密鑰

    MerchantCertificateSerialNumber = "商戶 API 證書序列號(hào)", // 商戶 API 證書序列號(hào)

    MerchantCertificatePrivateKey = "-----BEGIN PRIVATE KEY-----\r\nMIIEv ... ... Q71AG\r\n-----END PRIVATE KEY-----", // 商戶 API 證書私鑰

    PlatformCertificateManager = manager

};

var client = new WechatTenpayClient(options);

2.2 退款接口

以下是退款接口的代碼,其中入?yún)H示例了必要的字段,其他詳情見(jiàn)官方文檔。

官方文檔:https://pay.weixin.qq.com/docs/merchant/apis/refund/refunds/create.html

var request = new CreateRefundDomesticRefundRequest()

{

    //OutTradeNumber = "商戶訂單號(hào)", // 【商戶訂單號(hào)】 原支付交易對(duì)應(yīng)的商戶訂單號(hào),與transaction_id二選一

    TransactionId = "微信訂單號(hào)", // 【微信支付訂單號(hào)】 原支付交易對(duì)應(yīng)的微信訂單號(hào),與out_trade_no二選一

    // 商戶自定義退款唯一標(biāo)識(shí),要做好記錄,退款狀態(tài)查詢時(shí)入?yún)⒈靥?/p>

    OutRefundNumber = $"WX{DateTime.Now.ToString("yyyyMMddHHmmssffffff")}", 

    Reason = "測(cè)試退款080611",

    //NotifyUrl = "https://...", // 回調(diào)地址

    Amount = new CreateRefundDomesticRefundRequest.Types.Amount()

    {

        Total = 100, // 單位:分

        Refund = 99, // 單位:分

        Currency = "CNY" // 【退款幣種】 目前只支持人民幣:CNY。

    },

};

//string json = Json_Object.ObjectToJsonstr(request);

var response = await client.ExecuteCreateRefundDomesticRefundAsync(request);

if (response.IsSuccessful())

{

    Console.WriteLine("RefundId:", response.RefundId); // 【微信支付退款號(hào)】 微信支付退款號(hào)

    Console.WriteLine("OutRefundNumber:", response.OutRefundNumber); // 【商戶退款單號(hào)】 商戶系統(tǒng)內(nèi)部的退款單號(hào),商戶系統(tǒng)內(nèi)部唯一

    Console.WriteLine("TransactionId:", response.TransactionId); // 【微信支付訂單號(hào)】

    Console.WriteLine("OutRefundNumber:", response.OutTradeNumber); // 【商戶訂單號(hào)】 原支付交易對(duì)應(yīng)的商戶訂單號(hào)

}

else

{

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

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

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

}

2.3 退款狀態(tài)查詢接口

以下是退款狀態(tài)查詢接口的代碼,入?yún)?shí)際上就只有一個(gè):商戶退款單號(hào)。文檔中是要求直接跟在接口請(qǐng)求路徑之后,SDK 中是封裝到 Request 模型中。

官方文檔:https://pay.weixin.qq.com/docs/merchant/apis/refund/refunds/query-by-out-refund-no.html

var request = new GetRefundDomesticRefundByOutRefundNumberRequest()

{

    OutRefundNumber = "WX20240806104450972506",

};

//string json = Json_Object.ObjectToJsonstr(request);

var response = await client.ExecuteGetRefundDomesticRefundByOutRefundNumberAsync(request);

if (response.IsSuccessful())

{

    Console.WriteLine("RefundId:", response.RefundId); // 【微信支付退款號(hào)】 微信支付退款號(hào)

    Console.WriteLine("OutRefundNumber:", response.OutRefundNumber); // 【商戶退款單號(hào)】 商戶系統(tǒng)內(nèi)部的退款單號(hào),商戶系統(tǒng)內(nèi)部唯一

    Console.WriteLine("OutRefundNumber:", response.TransactionId); // 【微信支付訂單號(hào)】

    Console.WriteLine("OutRefundNumber:", response.OutTradeNumber); // 【商戶訂單號(hào)】 原支付交易對(duì)應(yīng)的商戶訂單號(hào)

}

else

{

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

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

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

}

2.4 接口的 Request、Response 模型的對(duì)應(yīng)邏輯

下面列一下以上使用到的兩個(gè)接口信息:

 

由上表對(duì)照可以看出,對(duì)應(yīng)的模型實(shí)際上就是以接口地址為基礎(chǔ)的,其他接口就可以按照這個(gè)邏輯去一一對(duì)應(yīng)。

轉(zhuǎn)載本文請(qǐng)注明原文鏈接:https://www.cnblogs.com/hnzhengfy/p/18339226/Wecha_refunds 



該文章在 2024/8/8 8:56:32 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved