亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

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

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


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

前言

相較于支付寶,微信支付對 .Net 的支持就沒那么充分,官方?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 來應(yīng)用,主要介紹退款和退款狀態(tài)查詢兩個接口。

一、接入準(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 簡介地址:https://www.nuget.org/packages/SKIT.FlurlHttpClient.Wechat.TenpayV3。

 

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

1.2 必要的賬戶信息

 

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

普通商戶

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

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

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

服務(wù)商

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

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

自身不能直接收款,需通過申請的“特約商戶”才能收款;

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

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

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

二、接口調(diào)用

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

var manager = new InMemoryCertificateManager();

var options = new WechatTenpayClientOptions()

{

    MerchantId = "商戶號", // 商戶號

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

    MerchantCertificateSerialNumber = "商戶 API 證書序列號", // 商戶 API 證書序列號

    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示例了必要的字段,其他詳情見官方文檔。

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

var request = new CreateRefundDomesticRefundRequest()

{

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

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

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

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

    Reason = "測試退款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); // 【微信支付退款號】 微信支付退款號

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

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

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

}

else

{

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

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

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

}

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

以下是退款狀態(tài)查詢接口的代碼,入?yún)?shí)際上就只有一個:商戶退款單號。文檔中是要求直接跟在接口請求路徑之后,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); // 【微信支付退款號】 微信支付退款號

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

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

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

}

else

{

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

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

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

}

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

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

 

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

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



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