国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Jadual Kandungan
1、現(xiàn)金紅包的概念及使用
2、 現(xiàn)金紅包API接口的說明及C#的封裝
接口調(diào)用請求說明
請求參數(shù)
3、微信紅包的使用結(jié)果
Rumah applet WeChat pembangunan WeChat C#開發(fā)微信門戶及應用微信現(xiàn)金紅包的封裝及使用

C#開發(fā)微信門戶及應用微信現(xiàn)金紅包的封裝及使用

Mar 07, 2017 am 09:54 AM

在上篇隨筆后,經(jīng)過對整個微信框架的完善和重構(gòu),已經(jīng)完成了對微信支付、企業(yè)付款、現(xiàn)金紅包、代金券及各種卡劵進行了封裝完成,并把其中微信支付及搖一搖紅包部分等內(nèi)容作為公眾號和企業(yè)號通用的部分,這些支付相關(guān)的接口在公眾號和企業(yè)號里面,都可以進行調(diào)用的,在經(jīng)過一系列的優(yōu)化整理后,把這些內(nèi)容逐一進行介紹,希望大家喜歡支持。

1、現(xiàn)金紅包的概念及使用

1)使用場景

微信支付現(xiàn)金紅包向微信支付商戶開發(fā),具體能力如下:

◆?商戶調(diào)用接口時,通過指定發(fā)送對象以及發(fā)送金額的方式發(fā)放紅包,這樣的方式,允許商戶靈活的應用于各種各樣豐富的活動場景

◆?領(lǐng)取到紅包后,用戶的資金直接進入微信零錢,避免繁復的領(lǐng)獎流程,帶給用戶微信支付原生的流暢體驗

?

2)微信紅包發(fā)送規(guī)則

發(fā)送頻率規(guī)則

◆ 每分鐘發(fā)送紅包數(shù)量不得超過1800個;

◆ 同一個商戶號,每分鐘最多給同一個用戶發(fā)送一個紅包;

紅包規(guī)則

◆ 單個紅包金額介于[1.00元,200.00元]之間;

◆ 同一個紅包只能發(fā)送給一個用戶;(如果以上規(guī)則不滿足您的需求,請發(fā)郵件至wxhongbao@tencent.com獲取升級指引)

◆ 紅包發(fā)放后72小時未被領(lǐng)取將進行退款

?

3)?微信紅包接口調(diào)用流程

◆ 后臺API調(diào)用:待進入聯(lián)調(diào)過程時與開發(fā)進行詳細溝通;

◆ 告知服務器:告知服務器接收微信紅包的用戶openID,告知服務器該用戶獲得的金額;

◆ 從商務號扣款:服務器獲取信息后從對應的商務號扣取對應的金額;

◆ 調(diào)用失?。阂虿环习l(fā)送規(guī)則,商務號余額不足等原因造成調(diào)用失敗,反饋至調(diào)用方;

◆ 發(fā)送成功:以微信紅包公眾賬號發(fā)送對應紅包至對應用戶;

C#開發(fā)微信門戶及應用微信現(xiàn)金紅包的封裝及使用


2、 現(xiàn)金紅包API接口的說明及C#的封裝

用于企業(yè)向微信用戶個人發(fā)現(xiàn)金紅包,目前支持向指定微信用戶的openid發(fā)放指定金額紅包。

雖然可以通過微信的商戶后臺進行現(xiàn)金紅包的發(fā)放,但我們也可以利用微信提供的接口API進行現(xiàn)金紅包的發(fā)送。


接口調(diào)用請求說明


請求Url https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack
是否需要證書 是(證書及使用說明詳見商戶證書)
請求方式 POST


請求參數(shù)


字段名 字段 必填 示例值 類型 說明
隨機字符串 nonce_str 5K8264ILTKCH16CQ2502SI8ZNMTM67VS String(32) 隨機字符串,不長于32位
簽名 sign C380BEC2BFD727A4B6845133519F3AD6 String(32) 詳見簽名生成算法
商戶訂單號 mch_billno 10000098201411111234567890 String(28)

商戶訂單號(每個訂單號必須唯一)

組成:mch_id+yyyymmdd+10位一天內(nèi)不能重復的數(shù)字。

接口根據(jù)商戶訂單號支持重入,如出現(xiàn)超時可再調(diào)用。

商戶號 mch_id 10000098 String(32) 微信支付分配的商戶號
公眾賬號appid wxappid wx8888888888888888 String(32) 微信分配的公眾賬號ID(企業(yè)號corpid即為此appId)。接口傳入的所有appid應該為公眾號的appid(在mp.weixin.qq.com申請的),不能為APP的appid(在open.weixin.qq.com申請的)。
商戶名稱 send_name 天虹百貨 String(32) 紅包發(fā)送者名稱
用戶openid re_openid oxTWIuGaIt6gTKsQRLau2M0yL16E String(32)

接受紅包的用戶

用戶在wxappid下的openid

付款金額 total_amount 1000 int 付款金額,單位分
紅包發(fā)放總?cè)藬?shù) total_num 1 int

紅包發(fā)放總?cè)藬?shù)

total_num=1

紅包祝福語 wishing 感謝您參加猜燈謎活動,祝您元宵節(jié)快樂! String(128) 紅包祝福語
Ip地址 client_ip 192.168.0.1 String(15) 調(diào)用接口的機器Ip地址
活動名稱 act_name 猜燈謎搶紅包活動 String(32) 活動名稱
備注 remark 猜越多得越多,快來搶! String(256) 備注信息

數(shù)據(jù)示例:


<xml><xml>?
??<sign><![CDATA[E1EE61A91C8E90F299DE6AE075D60A2D]]></sign>??
??<mch_billno><![CDATA[0010010404201411170000046545]]></mch_billno>??
??<mch_id><![CDATA[888]]></mch_id>??
??<wxappid><![CDATA[wxcbda96de0b165486]]></wxappid>??
??<send_name><![CDATA[send_name]]></send_name>??
??<re_openid><![CDATA[onqOjjmM1tad-3ROpncN-yUfa6uI]]></re_openid>??
??<total_amount><![CDATA[200]]></total_amount>??
??<total_num><![CDATA[1]]></total_num>??
??<wishing><![CDATA[恭喜發(fā)財]]></wishing>??
??<client_ip><![CDATA[127.0.0.1]]></client_ip>??
??<act_name><![CDATA[新年紅包]]></act_name>??
??<remark><![CDATA[新年紅包]]></remark>??
??<nonce_str><![CDATA[50780e0cca98c8c8e814883e5caa672e]]></nonce_str>?
??</xml>

上面是接口及輸入?yún)?shù)的說明,一般情況下,我們需要根據(jù)這些來決定如何實現(xiàn)C#代碼的封裝,首先我們來定義我們需要的接口和類,如下所示。

C#開發(fā)微信門戶及應用微信現(xiàn)金紅包的封裝及使用

通過分析上面的接口說明,我們可以發(fā)現(xiàn),其中接口有部分是固定的常規(guī)參數(shù),也就是一般公眾號或者企業(yè)號的身份信息,有部分是業(yè)務參數(shù),因此我們把它們分別分離出來,這樣有利于我們對接口的封裝和使用,那些常規(guī)的參數(shù)我們通過公眾號身份獲取就可以了,業(yè)務信息,我們可以定義一個實體類來進行數(shù)據(jù)的存儲交換即可。

C#開發(fā)微信門戶及應用微信現(xiàn)金紅包的封裝及使用

對應上圖的固定的常規(guī)參數(shù),在接口說明中如下所示。

C#開發(fā)微信門戶及應用微信現(xiàn)金紅包的封裝及使用

因此,這些信息我們從賬號里面設(shè)置及獲取即可,我們可以在管理后臺對它們進行配置,然后在代碼邏輯里面取出來使用即可。

C#開發(fā)微信門戶及應用微信現(xiàn)金紅包的封裝及使用

C#開發(fā)微信門戶及應用微信現(xiàn)金紅包的封裝及使用

根據(jù)上面的介紹,我們可以定義紅包接口代碼如下所示。

///?<summary>
????///?微信紅包(搖一搖紅包)操作API
????///?</summary>
????public?interface?ILotteryApi
????{??????????????
????????///?<summary>
????????///?用于企業(yè)向微信用戶個人發(fā)現(xiàn)金紅包。需要商戶證書
????????///?目前支持向指定微信用戶的openid發(fā)放指定金額紅包。
????????///?</summary>
????????///?<returns></returns>
????????SendRedPackResult?SendRedPack(SendRedPackJson?json);

其中的?SendRedPackJson 是我們變化的業(yè)務參數(shù),我們定義了一個類來進行信息的承載,方便想接口傳遞信息。

///?<summary>
????///?現(xiàn)金紅包和裂變紅包的基礎(chǔ)信息
????///?</summary>
????public?class?BaseRedPackJson
????{
????????///?<summary>
????????///?接受紅包的用戶
????????///?用戶openid????
????????///?</summary>
????????public?string?re_openid?{?get;?set;?}

????????///?<summary>
????????///?付款金額,單位分
????????///?</summary>
????????public?int?total_amount?{?get;?set;?}

????????///?<summary>
????????///?紅包發(fā)放總?cè)藬?shù)
????????///?</summary>
????????public?int?total_num?{?get;?set;?}

????????///?<summary>
????????///?紅包祝福語
????????///?</summary>
????????public?string?wishing?{?get;?set;?}

????????///?<summary>
????????///?活動名稱
????????///?</summary>
????????public?string?act_name?{?get;?set;?}

????????///?<summary>
????????///?備注信息
????????///?</summary>
????????public?string?remark?{?get;?set;?}
????}

????///?<summary>
????///?發(fā)送紅包的數(shù)據(jù)信息
????///?</summary>
????public?class?SendRedPackJson?:BaseRedPackJson
????{
????????///?<summary>
????????///?調(diào)用接口的機器Ip地址
????????///?</summary>
????????public?string?client_ip?{?get;?set;?}

????????public?SendRedPackJson()
????????{
????????????this.total_num?=?1;//紅包發(fā)放總?cè)藬?shù)
????????}
????}

根據(jù)上面參數(shù)的定義,我們在現(xiàn)金紅包的接口實現(xiàn)里面,具體代碼如下所示,里面的邏輯內(nèi)容,主要就是傳入常規(guī)參數(shù)和業(yè)務參數(shù)兩部分,然后調(diào)用接口的地址進行數(shù)據(jù)的提交(POST),獲取返回結(jié)果并進行解析即可。

///?<summary>
????????///?用于企業(yè)向微信用戶個人發(fā)現(xiàn)金紅包。需要商戶證書
????????///?目前支持向指定微信用戶的openid發(fā)放指定金額紅包。
????????///?</summary>
????????///?<returns></returns>
????????public?SendRedPackResult?SendRedPack(SendRedPackJson?json)
????????{
????????????CheckAccount();//檢查AccountInfo的對象屬性值

????????????//加入常規(guī)的參數(shù)
????????????WxPayData?data?=?new?WxPayData();
????????????data.SetValue("wxappid",?AccountInfo.UniteAppId);//公眾賬號appid
????????????data.SetValue("mch_id",?AccountInfo.MchID);//商戶號
????????????data.SetValue("nonce_str",?data.GenerateNonceStr());//隨機字符串
????????????data.SetValue("send_name",?AccountInfo.Name);//????紅包發(fā)送者名稱
????????????
????????????//商戶訂單號(每個訂單號必須唯一)?組成:mch_id+yyyymmdd+10位一天內(nèi)不能重復的數(shù)字。
????????????//接口根據(jù)商戶訂單號支持重入,如出現(xiàn)超時可再調(diào)用。
????????????data.SetValue("mch_billno",?data.GenerateOutTradeNo(AccountInfo.MchID));

????????????data.SetValue("re_openid",?json.re_openid);
????????????data.SetValue("total_amount",?json.total_amount);
????????????data.SetValue("total_num",?json.total_num);
????????????data.SetValue("wishing",?json.wishing);
????????????data.SetValue("client_ip",?json.client_ip);
????????????data.SetValue("act_name",?json.act_name);
????????????data.SetValue("remark",?json.remark);

????????????data.SetValue("sign",?data.MakeSign(AccountInfo.PayAPIKey));//最后生成簽名

????????????var?url?=?"https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack";
????????????return?Helper.GetPayResultWithCert<SendRedPackResult>(data,?url,?AccountInfo.CertPath,?AccountInfo.CertPassword);
????????}

其中發(fā)送紅包操作是需要證書的,因此需要添加對應的證書,證書是從微信的商戶平臺上進行下載的。

在商戶后臺的【API安全】項目上下載證書供我們開發(fā)環(huán)境使用。

C#開發(fā)微信門戶及應用微信現(xiàn)金紅包的封裝及使用

下載證書后,在Windows環(huán)境,我們一般需要雙擊安裝,輸入所需的商戶號作為密碼即可。

C#開發(fā)微信門戶及應用微信現(xiàn)金紅包的封裝及使用

在代碼里面,我們可以使用證書類進行添加

HttpHelper?helper?=?new?HttpHelper();

????????????helper.ClientCertificates?=?new?X509CertificateCollection();
????????????certPath?=?Path.Combine(System.Environment.CurrentDirectory,?certPath);
????????????helper.ClientCertificates.Add(new?X509Certificate2(certPath,?certPassword));
????????????string?response?=?helper.GetHtml(url,?xml,?true);

?

3、微信紅包的使用結(jié)果

?例如,我們在測試例子里面調(diào)用代碼如下所示。

//現(xiàn)金紅包
????????????????SendRedPackJson?packJson?=?new?SendRedPackJson()
????????????????{
????????????????????act_name?=?"恭喜發(fā)財",
????????????????????client_ip?=?NetworkUtil.GetIPAddress(),
????????????????????remark?=?"企業(yè)紅包",
????????????????????wishing?=?"企業(yè)紅包",
????????????????????total_amount?=?100,
????????????????????total_num?=?1,
????????????????????re_openid?=?tosendOpenId?//發(fā)送給用戶的OpenID
????????????????};
????????????????var?result?=?hbApi.SendRedPack(packJson);
????????????????var?message?=?string.Format("企業(yè)發(fā)送紅包:{0}?{1}",?result.Success???"成功"?:?"失敗",?result.Message);
????????????????Console.WriteLine(message);
????????????????Console.WriteLine(result.ToJson());

其中的hbApi是上面接口的構(gòu)造,如下代碼所示。

AccountInfo??accountInfo?=?new?AccountInfo()
????{
???????Name?=?this.SendName,
????????AppID?=?this.AppId,
????????AppSecret?=?this.AppSecret,
????????MchID?=?this.MchID,
????????PayAPIKey?=?this.PayAPIKey,
????????CertPath?=?this.CertPath,
????????CertPassword?=?this.CertPassword,
?????????PayNotifyUrl?=?this.PayNotifyUrl
?????};
?ILotteryApi?hbApi?=?new?LotteryApi(accountInfo);

成功調(diào)用后,我們可以在公眾號的對話里面看到紅包的信息結(jié)果,如下是整個紅包發(fā)送及拆開的過程。

C#開發(fā)微信門戶及應用微信現(xiàn)金紅包的封裝及使用 ? ? ? ?C#開發(fā)微信門戶及應用微信現(xiàn)金紅包的封裝及使用 ? ? ?C#開發(fā)微信門戶及應用微信現(xiàn)金紅包的封裝及使用

?更多C#開發(fā)微信門戶及應用微信現(xiàn)金紅包的封裝及使用?相關(guān)文章請關(guān)注PHP中文網(wǎng)!


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1502
276