?? ??? "C# WeChat ?? ? ?????? ??(33) - WeChat ?? ?? ??? ??? ? ??"?? ?? ?? ?? ??? ??? ? ??? ?? ??????. ?? ??? ?? ??? ???? ?? ??? ??? ???? ???? ?? ????? ??? ?? ?? ?? ??? ??? ?? ? ????. ??? ??? ?? ???? ???. ? ???? ?? ??? ???? C# ?? ??? ? ??? ??? ??? ???? ???? ?????.
1. ??? ?? ?? ??
?? ??? ?? ??? ?? ???? ???? ??? ?? ??? ?? ? ??? ????, ?? ?? ??? ???? ??? ? ?? ????? ??? ? ???, ???? ?? ??? ???? ?????! ??? ?? ??? ?? ??? ??? ????? ???? ??? ??? ?? ??? ??? ??? ??????? ?????. ??? ?? ?? ??? ?? ??? ???? WeChat Pay? ? ?? ??? ??? ????? ???? ?????.
WeChat Pay ???? ?? ??? ???? ??? ??? ????.
1. ???? ?????? ???? ??? ???? ??? ??? ?? ??? ?????.
2. ??? ???? ?? ??? ?? ? ??? WeChat ?????? ?? ???? ????? ??? WeChat ?? ??? ?????. 3. ??? ???? ??? ?? ?? ??? ???? ?? ?? ? ?? ???? ???? ?????? ??? ???? ?? ??? ??? ??????.
???? ?? ???? ? ????? ??? ?? ??? ?? ?? ?? ??? ?? ??? ????. ?? ?? ??? ???? ?? ??? ?? ??? ???? ??? ???? ??? ?? ????.
??? ??? ?? ?????? ???? ?? WeChat ????? ??? ??? ??? ??? ? ?????.
?? ?? ??? ??? ??? ??? openid? ???? ?? ?????. ??? WeChat ??? ?. (openid? ???? WeChat ?? ??? ??? ??: ?? ??? ??? ?? ?? ? ??? ??? ??????.)
????? ????? ??? ??????? ?? ?? ?? ?? ??? ??? ????.
????? ?? ?? ??
?? ??? ?? ?? ??? ???? ??? ?? ??? ?? ??? ? ???? ?? ? ????. ??? ?? ?? ???? ?? ??? ???? ?? ?????. ??? ?????.
2. ??? ??? ??? C# ?? ???
?? ??? ?????? ??? ???? ? ???? ?? ? ????. ????
<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>
?? ?? ????? https://api.mch.weixin.qq.com/mmpaymkttransfers/sendgroupredpack ??? ???? ?? ? ?? XML? ?????.
<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>
??? ?? ??? XML?? ??? ?? ?? ??? ???? ???.
<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>
??? ??? ?? ? ?? ??? ?? ??? ?? ??? ?????? ?? ??? ???????.
?? ?? ?? ?? ?? ??? ??? ?? ??? ??? ???? ??? ??? ???? ??? ???? ?? ???? ??????. ?? ??.
?????, ??? ?? ?? ?? ??? ???? ?? ?? ??? ???? ?? ??? ???? ??? ?? ?? ??? ?? ??? ??????. ??? ?? ?????.
?? ??? ????? ???? ??? ???? ??? ??? ??? ????.
/// <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"; } }
?? ?? ???? ??? ??? ????.
/// <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; } }
?? ??? ??? ??? ??? ???? ??? ????? ??? ?? ?? ????? ??? ????? ??? ??? ?? ?? ?? ??? ?????. ??? ?? ??.
/// <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); .............
??? ?? ???? ?? ????? ??? ??? ????.
/// <summary> /// 微信紅包管理類 /// </summary> public class LotteryApi : ILotteryApi { #region 裂變紅包說明 //微信支付裂變紅包向微信支付商戶開發(fā),具體能力如下: //1、商戶調用接口時,通過指定發(fā)送金額以及指定一位發(fā)送對象的方式發(fā)放一組裂變紅包 //2、指定發(fā)送對象領取到紅包后,資金直接進入微信零錢,帶給用戶微信支付原生的流暢體驗 //3、指定發(fā)送對象能夠將組合中的剩余紅包分享給好友,好友可繼續(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位一天內不能重復的數(shù)字。 //接口根據(jù)商戶訂單號支持重入,如出現(xiàn)超時可再調用。 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. ??? ?? ?? ?????? ?? ? ?? ??
??? ??? ?? ??? ?????? ???????. ?? ?? ?? ?? ?????? ?? ???? ?? ??? ??? ??? ??? ? ????.
?? ?? ?????? ???? ??? ??? ????.
//裂變紅包 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());
hbApi? ?? ??? ??? ??? ????.
ILotteryApi hbApi = new LotteryApi(accountInfo);
????? ???? ??? ??? ?? ??? ? ? ????.
??? ?? ??? ?? 1?? ????? ???, ??? ?? ? ??? ??? ?????. ?? ??? ?? ?? ??? ?? ?????.
?? ??????? ???????? ????? ??? ? ????? ?? ?????, ?? ??? ??? ???? ?????. ??? ??.
WeChat ?? C# ?? ? WeChat ??? ?? ?? ??? ?? ? ?? ??? ??? PHP ??? ????? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)