using System; using System.Collections.Generic; using System.Linq; using MySystem.Models; using Library; using LitJson; namespace MySystem { public class MerchantConfirmService { public readonly static MerchantConfirmService Instance = new MerchantConfirmService(); private MerchantConfirmService() { } public void Start(string MerchantIdString) { try { int MerchantId = int.Parse(function.CheckInt(MerchantIdString)); WebCMSEntities db = new WebCMSEntities(); MerchantAddInfo AddInfo = db.MerchantAddInfo.FirstOrDefault(m => m.Id == MerchantId); MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == MerchantId); if (AddInfo != null && merchant != null) { string BusinessCode = AddInfo.BusinessCode; if (string.IsNullOrEmpty(BusinessCode)) { BusinessCode = "KXS" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(5); AddInfo.BusinessCode = BusinessCode; db.SaveChanges(); } List merchants = TendisDbconn.Instance.GetList("MerchantList:" + merchant.UserId, 1, 10000000); //微信 string result = new WeChatFunction().MerchantCreate(AddInfo, merchant); if (result.Contains("\"applyment_id\":")) { JsonData jsonObj = JsonMapper.ToObject(result); List signs = TendisDbconn.Instance.GetList("MerchantSignList", 1, 10000000); bool op = signs.Any(m => m.BusinessCode == BusinessCode); if (!op) { TendisDbconn.Instance.AddList("WeChatSignList", new MerchantSign() { BusinessCode = BusinessCode, MerchantAddInfoId = MerchantId, Status = "" }); } signs.Clear(); if (merchants.Any(m => m.Id == merchant.Id) == false) { BothdisDbconn.Instance.AddList("MerchantList:" + merchant.UserId, merchant); } } else if (result.Contains("\"message\":")) { JsonData jsonObj = JsonMapper.ToObject(result); AddInfo.Status = -1; string Season = function.CheckNull(AddInfo.SeoDescription); if (string.IsNullOrEmpty(Season)) { Season = "WeChat:" + jsonObj["message"].ToString() + ";"; } else { Season += "WeChat:" + jsonObj["message"].ToString()+ ";"; } AddInfo.SeoDescription = Season; db.SaveChanges(); if (merchants.Any(m => m.Id == merchant.Id) == false) { BothdisDbconn.Instance.AddList("MerchantList:" + merchant.UserId, merchant); } List signs = TendisDbconn.Instance.GetList("WeChatSignList", 1, 10000000); MerchantSign sign = signs.FirstOrDefault(m => m.BusinessCode == BusinessCode); if (sign != null) { signs.Remove(sign); TendisDbconn.Instance.Clear("WeChatSignList"); TendisDbconn.Instance.AddList("WeChatSignList", signs.ToArray()); } } //支付宝 bool checkAlipay = true; string content = new AlipayFunction().GetBatchNo(AddInfo.MobilePhone, AddInfo.IdCardName, AddInfo.MobilePhone, AddInfo.ContactEmail); JsonData json = JsonMapper.ToObject(content); if (json["alipay_open_agent_create_response"]["code"].ToString() == "1000") { string batch_no = json["alipay_open_agent_create_response"]["batch_no"].ToString(); string Qualifications = AddInfo.Qualifications; if (!string.IsNullOrEmpty(Qualifications)) { Qualifications = function.getPath("/bsserver_com" + Qualifications); } content = new AlipayFunction().CommonSign(batch_no, "D_D05_7372", AddInfo.LicenseNumber, function.getPath("/bsserver_com" + AddInfo.LicenseCopy), Qualifications); json = JsonMapper.ToObject(content); if (json["alipay_open_agent_common_sign_response"]["code"].ToString() == "1000") { List signs = TendisDbconn.Instance.GetList("MerchantSignList", 1, 10000000); bool op = signs.Any(m => m.BusinessCode == batch_no); if (!op) { TendisDbconn.Instance.AddList("AlipaySignList", new MerchantSign() { BusinessCode = batch_no, MerchantAddInfoId = MerchantId, Status = "" }); } signs.Clear(); if (merchants.Any(m => m.Id == merchant.Id) == false) { BothdisDbconn.Instance.AddList("MerchantList:" + merchant.UserId, merchant); } } else { checkAlipay = false; } } else { checkAlipay = false; } if(!checkAlipay) { JsonData jsonObj = JsonMapper.ToObject(content); AddInfo.QueryCount = -1; string Season = function.CheckNull(AddInfo.SeoDescription); if (string.IsNullOrEmpty(Season)) { Season = "Alipay:" + jsonObj["alipay_open_agent_create_response"]["sub_msg"].ToString() + ";"; } else { Season = "Alipay:" + jsonObj["alipay_open_agent_create_response"]["sub_msg"].ToString()+ ";" + Season; } AddInfo.SeoDescription = Season; db.SaveChanges(); if (merchants.Any(m => m.Id == merchant.Id) == false) { BothdisDbconn.Instance.AddList("MerchantList:" + merchant.UserId, merchant); } List signs = TendisDbconn.Instance.GetList("AliaySignList", 1, 10000000); MerchantSign sign = signs.FirstOrDefault(m => m.BusinessCode == BusinessCode); if (sign != null) { signs.Remove(sign); TendisDbconn.Instance.Clear("AliaySignList"); TendisDbconn.Instance.AddList("AliaySignList", signs.ToArray()); } } } db.Dispose(); } catch (Exception ex) { TendisDbconn.Instance.AddList("public_service", DateTime.Now.ToString() + ":" + ex.ToString()); } } } }