/// <summary> /// 调用微信发送红包接口 /// 请求Url https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack /// 是否需要证书 是(证书及使用说明详见商户证书) /// 请求方式 POST /// </summary> /// <param name="certFilePath">证书位置</param> /// <param name="certPwd">证书密码</param> /// <param name="nonce_str">String(32) 随机字符串,不长于32位</param> /// <param name="sign"> /// String(32) /// 详见签名生成算法,https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=4_3 /// </param> /// <param name="mch_billno"> /// String(28) /// 商户订单号(每个订单号必须唯一) /// 组成:mch_id+yyyymmdd+10位一天内不能重复的数字。 /// 接口根据商户订单号支持重入,如出现超时可再调用。</param> /// <param name="mch_id">String(32) 微信支付分配的商户号</param> /// <param name="wxappid"> /// 微信分配的公众账号ID(企业号corpid即为此appId)。 /// 接口传入的所有appid应该为公众号的appid(在mp.weixin.qq.com申请的), /// 不能为APP的appid(在open.weixin.qq.com申请的)。 /// </param> /// <param name="send_name">String(32) 红包发送者名称</param> /// <param name="re_openid">String(32) 接受红包的用户 用户在wxappid下的openid</param> /// <param name="total_amount">付款金额,单位分</param> /// <param name="total_num">红包发放总人数,total_num=1</param> /// <param name="wishing">String(128) 红包祝福语</param> /// <param name="client_ip">String(15) 调用接口的机器Ip地址</param> /// <param name="act_name">String(32) 活动名称</param> /// <param name="remark">String(256) 备注信息</param> /// <returns></returns> public Entities.SendRedPackResult SendRedPack(string certFilePath, string certPwd, string nonce_str, string sign, string mch_billno, string mch_id, string wxappid, string send_name, string re_openid, int total_amount, int total_num, string wishing, string client_ip, string act_name, string remark) { //<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[恭喜发财]]></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> SortedDictionary <string, string> sortedDictParams = new SortedDictionary <string, string>(); sortedDictParams.Add("sign", sign); sortedDictParams.Add("mch_billno", mch_billno); sortedDictParams.Add("mch_id", mch_id); sortedDictParams.Add("wxappid", wxappid); sortedDictParams.Add("send_name", send_name); sortedDictParams.Add("re_openid", re_openid); sortedDictParams.Add("total_amount", total_amount.ToString()); sortedDictParams.Add("total_num", total_num.ToString()); sortedDictParams.Add("wishing", wishing); sortedDictParams.Add("client_ip", client_ip); sortedDictParams.Add("act_name", act_name); sortedDictParams.Add("remark", remark); sortedDictParams.Add("nonce_str", nonce_str); var postXmlData = WeiXinHelper.BuildPostXmlData(sortedDictParams); var url = string.Format("https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack"); var client = ToolFactory.Ioc.Get <IHttpClient>(); X509Certificate x509Certificate = new System.Security.Cryptography.X509Certificates.X509Certificate2(certFilePath, certPwd); var result = client.Post(url, postXmlData, x509Certificate, new RemoteCertificateValidationCallback(CheckValidationResult)); var sendRedPackResult = ToolFactory.CreateIXmlSerializeTool().DeserializeFromString <SendRedPackResult>(result); return(sendRedPackResult); }
public void XmlSerializeTest() { var ixml = ToolFactory.CreateIXmlSerializeTool(); var r = new GetAccessTokenResult() { access_token = "j;alskdjf;asldkfj", expires_in = 7200 }; CacheDto s = new CacheDto() { Value = r, Key = "lkjl", Expire = DateTime.Now.AddDays(2) }; List <CacheDto> l = new List <CacheDto>() { s }; ixml.SerializeToFile(l, "D:\\d.xml"); ixml.DeserializeFromFile <List <CacheDto> >("D:\\d.xml"); }
/// <summary> ///CreateByQRCodeImage 的测试 ///</summary> public void CreateByQRCodeImageTest() { IBasicAPI iBasicAPI = ToolFactory.Ioc.Get <IBasicAPI>(); IQRCodeAPI target = CreateIQRCodeAPI(); // TODO: 初始化为适当的值 var accessToken = iBasicAPI.GetAccessToken("wx5a15c9e5c52de05b", "740bceb8cc078267c67795bd91d8e203"); var qrCodePostDataDto = target.CreateTemporaryQRCodePostDataDto(accessToken.access_token, 60, 1); GetQRCodeTicketResultDto getQRCodeTicketResultDto = target.GetQRCodeTicket(accessToken.access_token, qrCodePostDataDto); int imageWidth = 400; // TODO: 初始化为适当的值 int imageHeight = 400; // TODO: 初始化为适当的值 GenericExecResult <Image> expected = null; // TODO: 初始化为适当的值 GenericExecResult <Image> actual; actual = new GenericExecResult <Image>() { Data = target.CreateQRCodeImageByQRCodePostDataDto(getQRCodeTicketResultDto, imageWidth, imageHeight) }; var ixml = ToolFactory.CreateIXmlSerializeTool(); ixml.SerializeToFile(getQRCodeTicketResultDto, "D:\\d.xml"); actual.Data.Save("D:\\t.png"); // Assert.AreEqual(expected, actual); Assert.Inconclusive("验证此测试方法的正确性。"); }
public ConfigFileHelper(string appSettingName) { this.AppSettingName = appSettingName; ISerializeTool = ToolFactory.CreateIXmlSerializeTool(); }