/// <summary> /// 调用微信接口获取红包信息 /// </summary> public void GetRedPacketInfo() { using (var db = SugarDao_MsSql.GetInstance()) { var listOrderNo = db.Queryable <Business_Redpacket_Push_Information>().Where("isnull(RedpacketStatus,0) not in (3,4,6)").Select(i => i.OrderNumber).ToList(); foreach (string billNo in listOrderNo) { WxPayData data = new WxPayData(); data.SetValue("mch_billno", billNo); var result = WeChatTools.QueryWorkWxRedPacket(data); if (result.GetValue("return_code").ToString() != "SUCCESS" || result.GetValue("result_code").ToString() != "SUCCESS") { continue; } Business_Redpacket_Push_Information redpacket = new Business_Redpacket_Push_Information(); var status = result.GetValue("status").ToString(); //红包状态 var redPacketStatus = (int)((RedPacketStatus)Enum.Parse(typeof(RedPacketStatus), status)); redpacket.RedpacketStatus = redPacketStatus; var sendTime = result.GetValue("send_time").ToString(); redpacket.CreatedDate = DateTime.Parse(sendTime); switch (status) { case "RECEIVED": var rcvTime = result.GetValue("rcv_time").ToString(); //var rcvTime = hblist.Substring(hblist.Length - 19, 19); redpacket.ReceiveDate = DateTime.Parse(rcvTime); break; case "REFUND": var refundTime = result.GetValue("refund_time").ToString(); redpacket.ReceiveDate = DateTime.Parse(refundTime); break; case "FAILED": var reason = result.GetValue("reason").ToString(); redpacket.Reson = reason; break; default: redpacket.ReceiveDate = null; break; } redpacket.OrderNumber = billNo; UpdateRedPacketInfo(redpacket); } } }