using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data.SqlClient; using System.Data; using Microsoft.Practices.EnterpriseLibrary.Data; using DSWeb.Areas.Mobile.Models.Login; using DSWeb.TruckMng.Helper; using DSWeb.Areas.Mobile.Models; using DSWeb.Areas.Mobile.Models.TemplateMessage; using System.Net; using System.IO; using DSWeb.Areas.Mobile.DAL.TemplateMessage; using System.Configuration; namespace DSWeb.Areas.Mobile.DAL { public class TemplateMessageDAL { /// /// /// /// /// 0:付费申请 /// 1:应收应付审批 /// /// [WorkFlow_Using].BSNO 业务编号 /// public static void Send ( int tempid,string bsno) { DBLog.Log("Send","Begin","-2"); try { DBLog.Log("Send", "-1"); var appid = ConfigurationManager.AppSettings["appid"]; DBLog.Log("Send", "0"); if (appid == null || appid.ToString() == "") { DBLog.Log("Send", "1"); DBLog.Log("appid == null || appid.ToString() != \"\""); return; } //判断该票业务是否需要微信推送 ////ch_fee_payapplication.wxpush字段是否为1 string checkSql = "select wxpush from ch_fee_payapplication where billno = '" + bsno + "'"; Database db = DatabaseFactory.CreateDatabase(); DBLog.Log("Send", "2"); var rst = db.ExecuteScalar(CommandType.Text, checkSql); DBLog.Log("Send", "3"); int wxpush = 0; if (rst != null && rst != DBNull.Value && rst.ToString() != "") { wxpush = Convert.ToInt32(rst); } if (wxpush == 0) { DBLog.Log("send", "wxpush==0", "bsno:" + bsno); return; } string accessToken = AccessTokenDAL.GetAccessToken(); List list = TemplateMessageModelConverter.CreateModel(tempid, bsno); string url = string.Format("https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={0}", accessToken); DBLog.Log("Send", "List.Count", list.Count.ToString()); foreach (TMBase tm in list) { string jsonData = JsonConvert.Serialize(new { tm }); //格式化为微信接口需要的字符串格式 jsonData = jsonData.Substring(11); jsonData = jsonData.Substring(0, jsonData.Length - 1); string postrst = HttpHelper.HttpPost(url, jsonData); DBLog.Log("Send", "Result", postrst); } } catch (Exception ex) { DBLog.Log("send","error",ex.Message+ex.Source+ex.StackTrace+ex.TargetSite+ex.InnerException); throw; } } } }