HaoDaAuthQueryHelper.cs 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Threading;
  4. using System.Threading.Tasks;
  5. using System.Linq;
  6. using Microsoft.Extensions.Hosting;
  7. using MySystem;
  8. using MySystem.Models;
  9. using LitJson;
  10. using Library;
  11. using MySystem.Models.Main;
  12. public class HaoDaAuthQueryHelper
  13. {
  14. public readonly static HaoDaAuthQueryHelper Instance = new HaoDaAuthQueryHelper();
  15. private HaoDaAuthQueryHelper()
  16. {
  17. }
  18. public void Start()
  19. {
  20. Thread th = new Thread(StartDo);
  21. th.IsBackground = true;
  22. th.Start();
  23. }
  24. private void StartDo()
  25. {
  26. while (true)
  27. {
  28. string content = RedisDbconn.Instance.RPop<string>("HaoDaAuthQueryHelper");
  29. if (!string.IsNullOrEmpty(content))
  30. {
  31. JsonData json = JsonMapper.ToObject(content);
  32. QueryAuthStatus(json["MerchantId"].ToString(), json["MchtNo"].ToString(), json["StoreNo"].ToString());
  33. }
  34. else
  35. {
  36. Thread.Sleep(10000);
  37. }
  38. }
  39. }
  40. public void QueryAuthStatus(string MerchantId, string MchtNo, string StoreNo)
  41. {
  42. try
  43. {
  44. var Id = int.Parse(MerchantId);
  45. var jsonObj = JsonMapper.ToObject(HaoDaHelper.Instance.QueryAuthStatus(MchtNo, StoreNo));
  46. //成功(已认证)
  47. if (jsonObj["resultCode"].ToString() == "1")
  48. {
  49. WebCMSEntities db = new WebCMSEntities();
  50. MerchantAddInfo info = db.MerchantAddInfo.FirstOrDefault(m => m.Id == Id) ?? new MerchantAddInfo();
  51. MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == Id) ?? new MerchantInfo();
  52. var wxcheck = jsonObj["wechatVerifyState"].ToString();
  53. var alicheck = jsonObj["aliVerifyState"].ToString();
  54. if (wxcheck == "1")
  55. {
  56. info.Status = 2;
  57. info.WeChatMerchantId = jsonObj["wechatMerchantId"].ToString();
  58. merchant.Status = 2;
  59. info.WeChatRemark = "";
  60. }
  61. if (alicheck == "1")
  62. {
  63. info.QueryCount = 2;
  64. info.AliMerchantId = jsonObj["aliMerchantId"].ToString();
  65. merchant.QueryCount = 2;
  66. info.AlipayRemark = "";
  67. }
  68. if (wxcheck != "1" || alicheck != "1")
  69. {
  70. RedisDbconn.Instance.AddList("HaoDaAuthQueryHelper", "{\"MerchantId\":\"" + MerchantId + "\",\"MchtNo\":\"" + info.OutMchtNo + "\",\"StoreNo\":\"" + info.StoreNo + "\"}");
  71. }
  72. db.SaveChanges();
  73. }
  74. }
  75. catch (Exception ex)
  76. {
  77. function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "查询实名认证状态异常");
  78. }
  79. }
  80. }