|
@@ -27,10 +27,16 @@ namespace MySystem
|
|
|
|
|
|
public void StartListen()
|
|
|
{
|
|
|
- // QueryMerchantStatus(2);//新建商户查询状态
|
|
|
- // QueryAuthStatus(2);//查询实名认证状态
|
|
|
- // QueryAuthStatus(2);//查询实名认证状态
|
|
|
- // QueryAuthStatus(2);//查询实名认证状态
|
|
|
+ //开户意愿申请
|
|
|
+ // RedisDbconn.Instance.AddList("AlipayForHaoDaQueue",824);
|
|
|
+ // RedisDbconn.Instance.AddList("WeChatForHaoDaQueue",824);
|
|
|
+ AlipayAddInfo(826);//提交支付宝开户意愿申请单
|
|
|
+ // AlipayAddInfo(824,"202309011037515410");//查询支付宝开户意愿申请状态
|
|
|
+ // WeChatAddInfo(826);//提交微信开户意愿申请单
|
|
|
+ // WeChatAddInfo(824,"202309011037515410");//查询微信开户意愿申请状态
|
|
|
+ // QueryMerchantStatus(824);//新建商户查询状态
|
|
|
+ // QueryAuthStatus(824);//查询实名认证状态
|
|
|
+ // ConfiemMer(808);//新建商户
|
|
|
// ChangeMerchantCard(1);//商户修改银行卡
|
|
|
}
|
|
|
|
|
@@ -44,6 +50,184 @@ namespace MySystem
|
|
|
db.Dispose();
|
|
|
}
|
|
|
|
|
|
+ //提交支付宝开户意愿申请单
|
|
|
+ public void AlipayAddInfo(int Id)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ WebCMSEntities db = new WebCMSEntities();
|
|
|
+ MerchantAddInfo info = db.MerchantAddInfo.FirstOrDefault(m => m.Id == Id) ?? new MerchantAddInfo();
|
|
|
+ string result = AlipayFunctionForHD.Instance.AuthOrderCreate(info, info.AlipayAuthToken);
|
|
|
+ JsonData jsonObj = JsonMapper.ToObject(result);
|
|
|
+ LogHelper.Instance.WriteLog(result, "提交支付宝商户意愿申请单");
|
|
|
+ if (jsonObj["alipay_merchant_indirect_authorder_create_response"]["code"].ToString() == "10000")
|
|
|
+ {
|
|
|
+ LogHelper.Instance.WriteLog("success", "提交支付宝商户意愿申请单");
|
|
|
+ string order_no = jsonObj["alipay_merchant_indirect_authorder_create_response"]["order_no"].ToString();
|
|
|
+ RedisDbconn.Instance.AddList("AlipayResultForHaoDaQueue", "{\"MerchantId\":\"" + Id + "\",\"order_no\":\"" + order_no + "\"}");
|
|
|
+ LogHelper.Instance.WriteLog("end", "提交支付宝商户意愿申请单");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ LogHelper.Instance.WriteLog("false", "提交支付宝商户意愿申请单");
|
|
|
+ MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == Id) ?? new MerchantInfo();
|
|
|
+ info.QueryCount = -1;
|
|
|
+ merchant.QueryCount = -1;
|
|
|
+ info.AlipayRemark = jsonObj["alipay_merchant_indirect_authorder_create_response"]["msg"].ToString();
|
|
|
+ LogHelper.Instance.WriteLog("end", "提交支付宝商户意愿申请单");
|
|
|
+ db.SaveChanges();
|
|
|
+
|
|
|
+ }
|
|
|
+ db.Dispose();
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ LogHelper.Instance.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "支付宝开户意愿申请异常");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //查询支付宝开户意愿申请状态
|
|
|
+ public void AlipayAddInfo(int Id, string OrderNo)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ LogHelper.Instance.WriteLog("start", "查询支付宝商户意愿申请状态");
|
|
|
+ WebCMSEntities db = new WebCMSEntities();
|
|
|
+ MerchantAddInfo info = db.MerchantAddInfo.FirstOrDefault(m => m.Id == Id) ?? new MerchantAddInfo();
|
|
|
+ string result = AlipayFunctionForHD.Instance.AuthOrderQuery(OrderNo);
|
|
|
+ JsonData jsonObj = JsonMapper.ToObject(result);
|
|
|
+ LogHelper.Instance.WriteLog(result, "查询支付宝商户意愿申请状态");
|
|
|
+ if (jsonObj["alipay_merchant_indirect_authorder_querystatus_response"]["code"].ToString() == "10000")
|
|
|
+ {
|
|
|
+ LogHelper.Instance.WriteLog("start1", "查询支付宝商户意愿申请状态");
|
|
|
+ string order_status = jsonObj["alipay_merchant_indirect_authorder_querystatus_response"]["order_status"].ToString();
|
|
|
+ if (order_status == "CONTACT_CONFIRM")
|
|
|
+ {
|
|
|
+ LogHelper.Instance.WriteLog("start1", "查询支付宝商户意愿申请状态");
|
|
|
+ MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == Id) ?? new MerchantInfo();
|
|
|
+ info.QueryCount = 1;
|
|
|
+ merchant.QueryCount = 1;
|
|
|
+ info.AlipayRemark = "";
|
|
|
+ info.AlipaySignUrl = jsonObj["alipay_merchant_indirect_authorder_querystatus_response"]["qr_code"].ToString();
|
|
|
+ db.SaveChanges();
|
|
|
+ RedisDbconn.Instance.AddList("HaoDaAuthQueryHelper", "{\"MerchantId\":\"" + Id + "\",\"MchtNo\":\"" + info.MchtNo + "\",\"StoreNo\":\"" + info.StoreNo + "\"}");
|
|
|
+ LogHelper.Instance.WriteLog("start1end", "查询支付宝商户意愿申请状态");
|
|
|
+ }
|
|
|
+ else if (order_status == "AUDIT_REJECT" || order_status == "AUDIT_FREEZE")
|
|
|
+ {
|
|
|
+ LogHelper.Instance.WriteLog("start2", "查询支付宝商户意愿申请状态");
|
|
|
+ MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == Id) ?? new MerchantInfo();
|
|
|
+ info.QueryCount = -1;
|
|
|
+ merchant.QueryCount = -1;
|
|
|
+ info.AlipayRemark = jsonObj["alipay_merchant_indirect_authorder_querystatus_response"]["msg"].ToString();
|
|
|
+ LogHelper.Instance.WriteLog("start2end", "查询支付宝商户意愿申请状态");
|
|
|
+ db.SaveChanges();
|
|
|
+ }
|
|
|
+ else if (order_status == "AUDIT_PASS")
|
|
|
+ {
|
|
|
+ LogHelper.Instance.WriteLog("start2", "查询支付宝商户意愿申请状态");
|
|
|
+ MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == Id) ?? new MerchantInfo();
|
|
|
+ info.QueryCount = 2;
|
|
|
+ merchant.QueryCount = 2;
|
|
|
+ info.AlipayRemark = "";
|
|
|
+ LogHelper.Instance.WriteLog("start2end", "查询支付宝商户意愿申请状态");
|
|
|
+ db.SaveChanges();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ RedisDbconn.Instance.AddList("AlipayResultForHaoDaQueue", "{\"MerchantId\":\"" + Id + "\",\"order_no\":\"" + OrderNo + "\"}");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == Id) ?? new MerchantInfo();
|
|
|
+ info.QueryCount = -1;
|
|
|
+ merchant.QueryCount = -1;
|
|
|
+ info.AlipayRemark = jsonObj["alipay_merchant_indirect_authorder_querystatus_response"]["msg"].ToString();
|
|
|
+ db.SaveChanges();
|
|
|
+ }
|
|
|
+ db.Dispose();
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ LogHelper.Instance.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "支付宝开户意愿申请异常");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //提交微信开户意愿申请单
|
|
|
+ public void WeChatAddInfo(int Id)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ WebCMSEntities db = new WebCMSEntities();
|
|
|
+ MerchantAddInfo info = db.MerchantAddInfo.FirstOrDefault(m => m.Id == Id) ?? new MerchantAddInfo();
|
|
|
+ string result = WeChatFunctionForHD.Instance.MerchantApply(info);
|
|
|
+ LogHelper.Instance.WriteLog(result, "提交微信商户意愿申请单");
|
|
|
+ if (result.Contains("\"applyment_id\":"))
|
|
|
+ {
|
|
|
+ LogHelper.Instance.WriteLog("success", "提交微信商户意愿申请单");
|
|
|
+ JsonData json = JsonMapper.ToObject(result);
|
|
|
+ string applyment_id = json["applyment_id"].ToString();
|
|
|
+ RedisDbconn.Instance.AddList("WeChatResultForHaoDaQueue", "{\"MerchantId\":\"" + Id + "\",\"ApplymentId\":\"" + applyment_id + "\"}");
|
|
|
+ LogHelper.Instance.WriteLog("end", "提交微信商户意愿申请单");
|
|
|
+ }
|
|
|
+ else if (result.Contains("\"message\":"))
|
|
|
+ {
|
|
|
+ LogHelper.Instance.WriteLog("false", "提交微信商户意愿申请单");
|
|
|
+ MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == Id) ?? new MerchantInfo();
|
|
|
+ JsonData jsonObj = JsonMapper.ToObject(result);
|
|
|
+ info.Status = -1;
|
|
|
+ merchant.Status = -1;
|
|
|
+ info.WeChatRemark = jsonObj["message"].ToString();
|
|
|
+ LogHelper.Instance.WriteLog("end", "提交微信商户意愿申请单");
|
|
|
+ db.SaveChanges();
|
|
|
+ }
|
|
|
+ db.Dispose();
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ LogHelper.Instance.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "微信开户意愿申请异常");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询微信开户意愿申请状态
|
|
|
+ public void WeChatAddInfo(int Id, string ApplymentId)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ WebCMSEntities db = new WebCMSEntities();
|
|
|
+ MerchantAddInfo info = db.MerchantAddInfo.FirstOrDefault(m => m.Id == Id) ?? new MerchantAddInfo();
|
|
|
+ string result = WeChatFunctionForHD.Instance.QueryMerchant(ApplymentId);
|
|
|
+ JsonData jsonObj = JsonMapper.ToObject(result);
|
|
|
+ if (jsonObj["applyment_state"].ToString() == "APPLYMENT_STATE_WAITTING_FOR_CONFIRM_CONTACT")
|
|
|
+ {
|
|
|
+ MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == Id) ?? new MerchantInfo();
|
|
|
+ info.Status = 1;
|
|
|
+ merchant.Status = 1;
|
|
|
+ info.WeChatRemark = "";
|
|
|
+ info.WeChatSignUrl = jsonObj["qrcode_data"].ToString();
|
|
|
+ db.SaveChanges();
|
|
|
+ RedisDbconn.Instance.AddList("HaoDaAuthQueryHelper", "{\"MerchantId\":\"" + Id + "\",\"MchtNo\":\"" + info.MchtNo + "\",\"StoreNo\":\"" + info.StoreNo + "\"}");
|
|
|
+ }
|
|
|
+ else if (jsonObj["applyment_state"].ToString() == "APPLYMENT_STATE_REJECTED")
|
|
|
+ {
|
|
|
+ MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == Id) ?? new MerchantInfo();
|
|
|
+ info.Status = -1;
|
|
|
+ merchant.Status = -1;
|
|
|
+ info.WeChatRemark = jsonObj["reject_reason"].ToString();
|
|
|
+ db.SaveChanges();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ RedisDbconn.Instance.AddList("WeChatResultForHaoDaQueue", "{\"MerchantId\":\"" + Id + "\",\"ApplymentId\":\"" + ApplymentId + "\"}");
|
|
|
+ }
|
|
|
+ db.Dispose();
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ LogHelper.Instance.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "微信开户意愿申请异常");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//添加分账接收方账户
|
|
|
public void AddOpenDivideAccounts(int MerchantId)
|
|
|
{
|
|
@@ -53,6 +237,105 @@ namespace MySystem
|
|
|
db.Dispose();
|
|
|
}
|
|
|
|
|
|
+ public void ConfiemMer(int MerchantId)
|
|
|
+ {
|
|
|
+ WebCMSEntities db = new WebCMSEntities();
|
|
|
+ Models.Main1.WebCMSEntities db1 = new Models.Main1.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 = "LKB" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(5);
|
|
|
+ AddInfo.BusinessCode = BusinessCode;
|
|
|
+ }
|
|
|
+ string pwd = AddInfo.MobilePhone.Substring(5);
|
|
|
+ merchant.LoginPwd = function.MD532(pwd);
|
|
|
+ MerchantParamSet query = db.MerchantParamSet.FirstOrDefault(m => m.Id == MerchantId);
|
|
|
+ if (query == null)
|
|
|
+ {
|
|
|
+ query = new MerchantParamSet();
|
|
|
+ query.IsAll = 1;
|
|
|
+ db.MerchantParamSet.Add(query);
|
|
|
+ db.SaveChanges();
|
|
|
+ }
|
|
|
+ MerchantForMobile merchantForMobile = db.MerchantForMobile.FirstOrDefault(m => m.Mobile == AddInfo.MobilePhone);
|
|
|
+ if (merchantForMobile == null)
|
|
|
+ {
|
|
|
+ merchantForMobile = db.MerchantForMobile.Add(new MerchantForMobile()
|
|
|
+ {
|
|
|
+ Mobile = AddInfo.MobilePhone,
|
|
|
+ }).Entity;
|
|
|
+ db.SaveChanges();
|
|
|
+ }
|
|
|
+ merchantForMobile.MerchantId = MerchantId;
|
|
|
+ db.SaveChanges();
|
|
|
+ Models.Main1.MerchantLoginInfo info = db1.MerchantLoginInfo.FirstOrDefault(m => m.LoginMobile == AddInfo.MobilePhone);
|
|
|
+ if (info == null)
|
|
|
+ {
|
|
|
+ info = db1.MerchantLoginInfo.Add(new Models.Main1.MerchantLoginInfo()
|
|
|
+ {
|
|
|
+ LoginMobile = AddInfo.MobilePhone,
|
|
|
+ }).Entity;
|
|
|
+ db1.SaveChanges();
|
|
|
+ }
|
|
|
+ info.LoginPwd = function.MD532(pwd);
|
|
|
+ db1.SaveChanges();
|
|
|
+ Models.Main1.MerchantAccountLinkInfo infolink = db1.MerchantAccountLinkInfo.FirstOrDefault(m => m.LoginId == info.Id && m.MerchantId == MerchantId && m.Kind == 2);
|
|
|
+ if (infolink == null)
|
|
|
+ {
|
|
|
+ infolink = db1.MerchantAccountLinkInfo.Add(new Models.Main1.MerchantAccountLinkInfo()
|
|
|
+ {
|
|
|
+ LoginId = info.Id,
|
|
|
+ MerchantId = MerchantId,
|
|
|
+ Kind = 2,
|
|
|
+ }).Entity;
|
|
|
+ db1.SaveChanges();
|
|
|
+ }
|
|
|
+ if (AddInfo.Status <= 0)
|
|
|
+ {
|
|
|
+ //好哒新建商户
|
|
|
+ string result = HaoDaHelper.Instance.AddNewMerchant(AddNewMerchantSetUtil.SetValue(AddInfo));
|
|
|
+ JsonData jsonObj = JsonMapper.ToObject(result);
|
|
|
+ //创建成功
|
|
|
+ if (jsonObj["resultCode"].ToString() == "1")
|
|
|
+ {
|
|
|
+ AddInfo.WeChatRemark = "";
|
|
|
+ if (string.IsNullOrEmpty(AddInfo.MchtNo))
|
|
|
+ {
|
|
|
+ AddInfo.MchtNo = jsonObj["data"]["mchtNo"].ToString();
|
|
|
+ }
|
|
|
+ AddInfo.Status = 0;
|
|
|
+ merchant.Status = 0;
|
|
|
+ db.SaveChanges();
|
|
|
+ QueryMerchantStatus queryMerchantStatus = new QueryMerchantStatus();
|
|
|
+ queryMerchantStatus.MerchantId = MerchantId.ToString();
|
|
|
+ queryMerchantStatus.MerchantNo = AddInfo.MchtNo;
|
|
|
+ RedisDbconn.Instance.AddList("WeChatSignHdQueue", queryMerchantStatus);
|
|
|
+ }
|
|
|
+ //创建失败
|
|
|
+ else
|
|
|
+ {
|
|
|
+ AddInfo.Status = -1;
|
|
|
+ merchant.Status = -1;
|
|
|
+ AddInfo.WeChatRemark = jsonObj["errorDesc"].ToString();
|
|
|
+ // if (string.IsNullOrEmpty(AddInfo.MchtNo))
|
|
|
+ // {
|
|
|
+ // if (jsonObj.ToJson().Contains("mchtNo"))
|
|
|
+ // {
|
|
|
+ // AddInfo.MchtNo = jsonObj["data"]["mchtNo"].ToString();
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ db.SaveChanges();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ db.Dispose();
|
|
|
+ db1.Dispose();
|
|
|
+ }
|
|
|
+
|
|
|
//商户开通分账
|
|
|
public void OpenDivideAccounts(int MerchantId)
|
|
|
{
|