


C# entwickelt das WeChat-Portal und wendet den WeChat Fission Red Envelope an
Mar 07, 2017 am 09:48 AMIm vorherigen Aufsatz ?C#-Entwicklung des WeChat-Portals und der WeChat-Anwendung (33) – Kapselung und Verwendung von roten WeChat-Bargeldumschl?gen“ haben wir die Kapselung und Verwendung gew?hnlicher roter Bargeldumschl?ge vorgestellt Nachdem wir den roten Umschlag erhalten haben, sind wir fertig. Wenn wir Benutzern erlauben, den roten Umschlag zu erhalten, k?nnen wir ihn weiterhin an mehrere Benutzer senden, sodass sie einen festen oder zuf?lligen Betrag erhalten k?nnen . Dies wird als spaltende rote Hülle bezeichnet. Dieser Aufsatz setzt das obige Thema fort und stellt weiterhin die C#-Codekapselung und die Verwendung der Fission Red Envelope vor.
1. Einführung in Fission Red-Umschl?ge
Benutzer, die Corporate Fission Red-Umschl?ge erhalten haben, k?nnen ihren Freunden weiterhin helfen, rote Umschl?ge zu erhalten und Corporate Red-Umschl?ge in Form von Fission an weitere Freunde zu verteilen. So macht Marketing mehr Spa? und Freude! Fission Red-Umschl?ge verst?rken kontinuierlich die Wirkung der Unternehmensmarke und bilden die Fission-Kommunikation, die ein Marketinginstrument zur Markenf?rderung ist. Unternehmen müssen lediglich die Anzahl und den Gesamtbetrag einer Gruppe roter Umschl?ge angeben, und WeChat Pay berechnet den Betrag jedes roten Umschlags, was einfach und bequem ist.
WeChat Pay Fission Red-Umschl?ge werden für WeChat Pay-H?ndler entwickelt. Die spezifischen Funktionen sind wie folgt:
1 Wenn der H?ndler die Schnittstelle aufruft, gibt er einen Satz Fission Red-Umschl?ge aus den Sendebetrag und die Angabe eines Absenders
2. Nachdem der angegebene Absender den roten Umschlag erhalten hat, wird das Geld direkt an WeChat überwiesen, sodass Benutzer problemlos über WeChat bezahlen k?nnen
3. Der angegebene Absender kann die verbleibenden roten Umschl?ge in der Kombination an Freunde weitergeben, die ihn weiterhin erhalten k?nnen, wodurch ein Kommunikationseffekt entsteht und der Markenwert des Unternehmens verst?rkt wird.
Der gesamte Verarbeitungsprozess und die Schnittstelle von Fission Red-Umschl?ge unterscheiden sich nicht wesentlich von gew?hnlichen Cash Red-Umschl?gen. Nachdem Sie die Cash Red-Umschl?ge verstanden haben, sollte die Einkapselung von Fission Red-Umschl?gen und der Prozess ihrer Verwendung ein Kinderspiel sein.
Die Fission-Red-Umschl?ge-Schnittstelle wird von Unternehmen verwendet, um Fission-Red-Umschl?ge an einzelne WeChat-Benutzer zu senden.
Derzeit unterstützt es die Ausgabe von Fission-Red-Umschl?gen mit bestimmten Betr?gen an die OpenID der ausgewiesenen WeChat-Benutzer. (Um die OpenID zu erhalten, lesen Sie bitte die Entwicklerdokumentation für die ?ffentliche WeChat-Plattform: Webseitenautorisierung, um grundlegende Benutzerinformationen zu erhalten.)
Die entsprechende Beziehung zwischen den Schnittstellenparametern und der tats?chlichen Auswirkung der Benutzeranwendung ist wie folgt:
Beschreibung der Schnittstellenaufrufanforderung
請求Url | https://api.mch.weixin.qq.com/mmpaymkttransfers/sendgroupredpack |
---|---|
是否需要證書 | 是(證書及使用說明詳見商戶證書) |
請求方式 | POST |
?hnlich wie der zuvor eingeführte Cash-Red-Umschlag k?nnen wir auch die Parameter des Fission-Red-Umschlags in zwei Teile unterteilen, einer ist der regul?re Parameter und der andere ist der Gesch?ftsparameter, as unten dargestellt.
2. C#-Code-Kapselung der Spaltungsrothülle
Aus den oben übergebenen Parametern k?nnen wir sie in zwei Teile aufteilen Parameter
<xml> <sign><![CDATA[E1EE61A91C8E90F299DE6AE075D60A2D]]></sign> <mch_billno><![CDATA[0010010404201411170000046545]]></mch_billno> <mch_id><![CDATA[1000888888]]></mch_id> <wxappid><![CDATA[wxcbda96de0b165486]]></wxappid> <send_name><![CDATA[send_name]]></send_name> <re_openid><![CDATA[onqOjjmM1tad-3ROpncN-yUfa6uI]]></re_openid> <total_amount><![CDATA[600]]></total_amount> <amt_type><![CDATA[ALL_RAND]]></amt_type> <total_num><![CDATA[3]]></total_num> <wishing><![CDATA[恭喜發(fā)財]]></wishing> <act_name><![CDATA[新年紅包]]></act_name> <remark><![CDATA[新年紅包]]></remark> <nonce_str><![CDATA[50780e0cca98c8c8e814883e5caa672e]]></nonce_str> </xml>
Nachdem die oben genannten eingehenden Parameter an die Adresse gesendet wurden: https://api.mch.weixin.qq.com/mmpaymkttransfers/sendgroupredpack, wird nach Erfolg das folgende XML zurückgegeben.
<xml> <return_code><![CDATA[SUCCESS]]></return_code> <return_msg><![CDATA[發(fā)放成功.]]></return_msg> <result_code><![CDATA[SUCCESS]]></result_code> <err_code><![CDATA[0]]></err_code> <err_code_des><![CDATA[發(fā)放成功.]]></err_code_des> <mch_billno><![CDATA[0010010404201411170000046545]]></mch_billno> <mch_id>10010404</mch_id> <wxappid><![CDATA[wx6fa7e3bab7e15415]]></wxappid> <re_openid><![CDATA[onqOjjmM1tad-3ROpncN-yUfa6uI]]></re_openid> <total_amount>3</total_amount> <send_time><![CDATA[20150227091010]]></send_time> <send_listid><![CDATA[1000000000201502270093647546]]></send_listid> </xml>
Wenn dies fehlschl?gt, fehlen dem zurückgegebenen XML viele Informationen, wie unten gezeigt.
<xml> <return_code><![CDATA[FAIL]]></return_code> <return_msg><![CDATA[系統(tǒng)繁忙,請稍后再試.]]></return_msg> <result_code><![CDATA[FAIL]]></result_code> <err_code><![CDATA[268458547]]></err_code> <err_code_des><![CDATA[系統(tǒng)繁忙,請稍后再試.]]></err_code_des> <mch_billno><![CDATA[0010010404201411170000046542]]></mch_billno> <mch_id>10010404</mch_id> <wxappid><![CDATA[wx6fa7e3bab7e15415]]></wxappid> <re_openid><![CDATA[onqOjjmM1tad-3ROpncN-yUfa6uI]]></re_openid> <total_amount>3</total_amount> </xml>
Gem?? diesen Regeln haben wir die Schnittstelle und den Implementierungscode des Fission Red Envelope zur besseren Verwendung gekapselt.
Auf der Grundlage der ?hnlichen Eigenschaften der Entit?tsklassen gew?hnlicher Cash-Red-Umschl?ge und Fission-Red-Umschl?ge haben wir beispielsweise mehrere Klassen zum Speichern von Informationen entworfen. Die Objektbeziehung der eingehenden Parameter ist in dargestellt Abbildung unten.
In ?hnlicher Weise haben wir für die Sendeergebnisse des zurückgegebenen roten Umschlags die Beziehung zwischen den Rückgabeergebnisklassen entworfen, da wir die fehlerhafte Informationsrückgabe und die erfolgreiche Informationsrückgabe berücksichtigen müssen wie folgt zeigen.
Basierend auf den oben genannten Designideen lautet der von uns entworfene Klassencode wie folgt.
/// <summary> /// 發(fā)送裂變紅包的數(shù)據(jù)信息 /// </summary> public class SendGroupRedPackJson : BaseRedPackJson { /// <summary> /// 紅包金額設置方式 /// ALL_RAND—全部隨機,商戶指定總金額和紅包發(fā)放總人數(shù),由微信支付隨機計算出各紅包金額 /// </summary> public string amt_type { get; set; } public SendGroupRedPackJson() { this.amt_type = "ALL_RAND"; } }
Der Code der Ergebnisobjektklasse lautet wie folgt.
/// <summary> /// 發(fā)送紅包的返回結果 /// </summary> public class SendRedPackResult : PayResult { /// <summary> /// 商戶訂單號 /// </summary> public string mch_billno { get; set; } /// <summary> /// 商戶appid,接口傳入的所有appid應該為公眾號的appid(在mp.weixin.qq.com申請的),不能為APP的appid(在open.weixin.qq.com申請的)。 /// </summary> public string wxappid { get; set; } /// <summary> /// 接受收紅包的用戶 /// 用戶在wxappid下的openid /// </summary> public string re_openid { get; set; } /// <summary> /// 付款金額,單位分 /// </summary> public int total_amount { get; set; } /// <summary> /// 紅包發(fā)送時間 /// </summary> public string send_time { get; set; } /// <summary> /// 紅包訂單的微信單號 /// </summary> public string send_listid { get; set; } }
Auf diese Weise folgen wir mit den Codes dieser Objekte immer noch der im vorherigen Aufsatz eingeführten Schnittstellendesignmethode gem?? der Schnittstellenbeschreibung, um den Code zu implementieren Verarbeitung von spaltungsroten Umschl?gen.
/// <summary> /// 微信紅包、搖一搖紅包的操作API接口 /// </summary> public interface ILotteryApi { /// <summary> /// 用于企業(yè)向微信用戶個人發(fā)現(xiàn)金紅包。需要商戶證書 /// 目前支持向指定微信用戶的openid發(fā)放指定金額紅包。 /// </summary> /// <returns></returns> SendRedPackResult SendRedPack(SendRedPackJson json); /// <summary> /// 用于企業(yè)向微信用戶個人發(fā)裂變紅包。需要商戶證書 /// 目前支持向指定微信用戶的openid發(fā)放指定金額裂變紅包。 /// </summary> /// <returns></returns> SendRedPackResult SendGroupRedPack(SendGroupRedPackJson json); .............
Dann lautet der Schnittstellencode zur Implementierung wie folgt.
/// <summary> /// 微信紅包管理類 /// </summary> public class LotteryApi : ILotteryApi { #region 裂變紅包說明 //微信支付裂變紅包向微信支付商戶開發(fā),具體能力如下: //1、商戶調(diào)用接口時,通過指定發(fā)送金額以及指定一位發(fā)送對象的方式發(fā)放一組裂變紅包 //2、指定發(fā)送對象領取到紅包后,資金直接進入微信零錢,帶給用戶微信支付原生的流暢體驗 //3、指定發(fā)送對象能夠?qū)⒔M合中的剩余紅包分享給好友,好友可繼續(xù)領取,形成傳播效應,放大企業(yè)品牌價值 #endregion /// <summary> /// 用于企業(yè)向微信用戶個人發(fā)裂變紅包。需要商戶證書 /// 目前支持向指定微信用戶的openid發(fā)放指定金額裂變紅包。 /// </summary> /// <returns></returns> public SendRedPackResult SendGroupRedPack(SendGroupRedPackJson json) { CheckAccount();//檢查AccountInfo的對象屬性值 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);//紅包發(fā)放總金額,即一組紅包金額總和,包括分享者的紅包和裂變的紅包,單位分 data.SetValue("total_num", json.total_num);//紅包發(fā)放總人數(shù),即總共有多少人可以領到該組紅包(包括分享者) data.SetValue("wishing", json.wishing);//紅包祝福語 data.SetValue("act_name", json.act_name); data.SetValue("remark", json.remark); data.SetValue("amt_type", json.amt_type); data.SetValue("sign", data.MakeSign(AccountInfo.PayAPIKey));//最后生成簽名 var url = "https://api.mch.weixin.qq.com/mmpaymkttransfers/sendgroupredpack"; return Helper.GetPayResultWithCert<SendRedPackResult>(data, url, AccountInfo.CertPath, AccountInfo.CertPassword); } ...............
3. Aufruf und Anzeige der Fission-Red-Envelope-Schnittstelle
Oben haben wir die Schnittstelle der Fission-Red-Envelope gekapselt, falls erforderlich Senden Sie einen roten Spaltungsumschlag. Wenn Sie rote Umschl?ge senden, k?nnen Sie die obige Schnittstelle direkt aufrufen, um den Vorgang des Sendens roter Umschl?ge zu realisieren.
Der Code zum Aufrufen der Schnittstelle lautet beispielsweise wie folgt.
//裂變紅包 SendGroupRedPackJson groupJson = new SendGroupRedPackJson() { act_name = "恭喜發(fā)財", remark = "企業(yè)紅包", wishing = "企業(yè)紅包", total_amount = 600, total_num = 4, re_openid = tosendOpenId, //發(fā)送給用戶的OpenID }; var groupResult = hbApi.SendGroupRedPack(groupJson); message = string.Format("企業(yè)發(fā)送裂變紅包:{0} {1}", groupResult.Success ? "成功" : "失敗", groupResult.Message); Console.WriteLine(message); Console.WriteLine(groupResult.ToJson());
Der Objektinitialisierungscode von hbApi lautet wie folgt
ILotteryApi hbApi = new LotteryApi(accountInfo);
Endlich k?nnen wir den auf WeChat gesendeten spaltungsroten Umschlag sehen.
Da die Menge der versendeten roten Umschl?ge mehr als 1 Yuan betragen muss, gilt: Wenn die Menge, die wir versenden, gr??er ist, dann an alle wird es aufteilen. Die Anzahl der roten Umschl?ge variiert, wie im Bild unten gezeigt.
Das Obige befasst sich mit der Schnittstellenkapselung und dem Verwendungsprozess von Cash Red Envelopes und Fission Red Envelopes. Vielen Dank Eure Unterstützung.
Weitere Artikel zur C#-Entwicklung des WeChat-Portals und zur Anwendung von WeChat Fission Red Envelopes finden Sie auf der chinesischen PHP-Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)