public RedPacketSentResult Send(RedPacket redPacket) { if (redPacket == null) throw new ArgumentNullException("redPacket"); if (!redPacket.IsValid()) throw new ArgumentException("redPacket"); var amount = Amounter.GetAmount(redPacket.Amount); var amountString = amount.ToString(); var sendData = new SortedList<string, string>(StringComparer.Ordinal); sendData.Add("nonce_str", Guid.NewGuid().ToString("N")); sendData.Add("mch_billno", redPacket.BillNumber); sendData.Add("mch_id", _mchId); sendData.Add("wxappid", redPacket.AppId); sendData.Add("nick_name", redPacket.SendName); //简单起见使用send_name。 sendData.Add("send_name", redPacket.SendName); sendData.Add("re_openid", redPacket.OpenId); sendData.Add("total_amount", amountString); sendData.Add("min_value", amountString); sendData.Add("max_value", amountString); sendData.Add("total_num", "1"); sendData.Add("wishing", redPacket.Wishing); sendData.Add("client_ip", redPacket.IpAddress); sendData.Add("act_name", redPacket.ActName); sendData.Add("remark", redPacket.Remark); var xml = DictionaryToXml(sendData); var result = _sendCert.Post(xml); var result2 = Parse(result); result2.Amount = amount; result2.BillNumber = redPacket.BillNumber; return result2; }
public void TestSend() { var appId = "wx00f1a2e4c8da9fff"; var mchId = "1238660702"; var payKey = "DFB29A32C88F4BA9A30A33186681ADB2"; var billNo = mchId + DateTime.Now.ToString("yyyyMMdd") + DateTime.Now.ToString("ddHHmmssff"); var openId = "ocBLpjvEkE9-ml35Cl8lvi6hanYs"; var ipAddress = "127.0.0.1"; var actName = "测试"; var amount = Amounter.GetAmount(100, 1000); var remark = "备注"; var sendName = "商户名称"; var wishing = "祝福语"; var certPath = AppDomain.CurrentDomain.BaseDirectory.Replace(@"bin\Debug", "").Replace(@"bin\Obj", ""). Replace(@"bin\debug", "").Replace(@"bin\obj", "") + @"cert\apiclient_cert.p12"; var certPass = "******"; ICertFinder certFinder = new CertFindByFile(certPath, certPass); ISendCert sendCert = new SendCert(certFinder); var service = new RedPacketService(mchId, payKey, sendCert); var redPacket = new RedPacket { ActName = actName, Amount = amount, AppId = appId, BillNumber = billNo, IpAddress = ipAddress, OpenId = openId, Remark = remark, SendName = sendName, Wishing = wishing }; var result = service.Send(redPacket); Trace.WriteLine(JsonConvert.SerializeObject(result)); Assert.AreNotEqual(result.Succeeded, false); }
Task<RedPacketSentResult> IRedPacketService.SendAsync(RedPacket request) { throw new NotImplementedException(); }