CashBase.cs 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using MySystem.Models;
  5. using Library;
  6. using LitJson;
  7. using System.Threading;
  8. using System.Security.Cryptography;
  9. namespace MySystem
  10. {
  11. public class PayApply
  12. {
  13. public string taskNo { get; set; }
  14. public string entOrderNo { get; set; }
  15. public string payeeName { get; set; }
  16. public string payeeIdCard { get; set; }
  17. public string payeePhone { get; set; }
  18. public string payeeAccount { get; set; }
  19. public string paymentModel { get; set; }
  20. public string amount { get; set; }
  21. public string callbackUrl { get; set; }
  22. public string remark { get; set; }
  23. }
  24. public class CashBase
  25. {
  26. public readonly static CashBase Instance = new CashBase();
  27. private CashBase()
  28. { }
  29. public string PrivateKey = ""; //私钥
  30. public string PublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoZa64mEChZCYmn6t+33ZksHoV9Me/SR2oOkbNifkwP8EmhtopMZE00yumd3zKY0enJvqZ+22x486MUUu3d658n+nl6k8taSAYVrUb6vIfFueUYcbvorxzZNLvdi3AnQGJybRGJis/9WOYJc0XioNq9ywP/RLWMNGmuF+RBFYoRic9dGMoPF2I4Y/RazxUNN9mJRQwIacAd7r+miikBzrQ0kdC0QdNR4eEc2u8UEy2VhMuMqc9oKXVSdlVV+8Cx5m9kZzyRL0UryvUV6VYk8zMxoQVHpTtu0GjL8nXBfiJzglCqIpum989AIxrafgIwvwj8fTMnET4eTwT7nUyskgewIDAQAB"; //公钥
  31. public string EnterpriseNo = "8880010000269"; //平台分配的企业编码
  32. public string ChannelNo = "8880010000267"; //平台分配的渠道编码
  33. public string RequestUrl = "http://yhs-service-pay2data.juheba.top:8888/"; //请求地址
  34. //查询签约状态
  35. public string QuerySignStatus(string IdCard)
  36. {
  37. Dictionary<string, object> data = new Dictionary<string, object>();
  38. data.Add("apiCode", "3003"); //接口编号,固定:3003
  39. data.Add("enterpriseNo", EnterpriseNo); //平台分配的企业编码
  40. data.Add("channelNo", ChannelNo); //平台分配的渠道编码
  41. data.Add("timestamp", function.GetCurTimestamp()); //时间戳(毫秒)
  42. data.Add("idCard", IdCard); //从业者身份证号
  43. return PostData("api/personal/signed/result", data, new Dictionary<string, object>());
  44. }
  45. //从业者数据提交
  46. public string CreateInfo(string Name, string IdCard, string Phone, string FrontCertImg, string BackCertImg)
  47. {
  48. Dictionary<string, object> data = new Dictionary<string, object>();
  49. data.Add("apiCode", "3000"); //接口编号,固定:3003
  50. data.Add("enterpriseNo", EnterpriseNo); //平台分配的企业编码
  51. data.Add("channelNo", ChannelNo); //平台分配的渠道编码
  52. data.Add("timestamp", function.GetCurTimestamp()); //时间戳(毫秒)
  53. data.Add("name", Name); //从业者姓名
  54. data.Add("idCard", IdCard); //从业者身份证号
  55. data.Add("phone", Phone); //从业者手机号
  56. Dictionary<string, object> fileData = new Dictionary<string, object>();
  57. fileData.Add("frontCertImg", FrontCertImg); //身份证正面照
  58. fileData.Add("backCertImg", BackCertImg); //身份证反面照
  59. return PostData("api/personal/create", data, fileData);
  60. }
  61. //发起签约确认
  62. public string ConfirmSign(string IdCard)
  63. {
  64. Dictionary<string, object> data = new Dictionary<string, object>();
  65. data.Add("apiCode", "3004"); //接口编号,固定:3003
  66. data.Add("enterpriseNo", EnterpriseNo); //平台分配的企业编码
  67. data.Add("channelNo", ChannelNo); //平台分配的渠道编码
  68. data.Add("timestamp", function.GetCurTimestamp()); //时间戳(毫秒)
  69. data.Add("idCard", IdCard); //从业者身份证号
  70. return PostData("api/personal/sign", data, new Dictionary<string, object>());
  71. }
  72. //提价代付申请
  73. public string PayApply(PayApply ReqData)
  74. {
  75. Dictionary<string, object> data = new Dictionary<string, object>();
  76. data.Add("apiCode", "3004"); //接口编号,固定:3003
  77. data.Add("enterpriseNo", EnterpriseNo); //平台分配的企业编码
  78. data.Add("channelNo", ChannelNo); //平台分配的渠道编码
  79. data.Add("timestamp", function.GetCurTimestamp()); //时间戳(毫秒)
  80. data.Add("taskNo", ReqData.taskNo); //企业后台创建的任务编码
  81. data.Add("entOrderNo", ReqData.entOrderNo); //企业流水号
  82. data.Add("payeeName", ReqData.payeeName); //收款人姓名
  83. data.Add("payeeIdCard", ReqData.payeeIdCard); //收款人身份证号
  84. data.Add("payeePhone", ReqData.payeePhone); //收款人手机号
  85. data.Add("payeeAccount", ReqData.payeeAccount); //收款人帐号(银行卡号、支付宝帐号)
  86. data.Add("paymentModel", ReqData.paymentModel); //支付类型
  87. data.Add("amount", ReqData.amount); //金额(单位:分)
  88. data.Add("callbackUrl", ReqData.callbackUrl); //通知地址
  89. data.Add("remark", ReqData.remark); //结算单备注信息
  90. return PostData("api/pay/apply", data, new Dictionary<string, object>());
  91. }
  92. //公用请求方法
  93. public string PostData(string path, Dictionary<string, object> data, Dictionary<string, object> fileData)
  94. {
  95. Dictionary<string, object> main = new Dictionary<string, object>();
  96. main.Add("enterpriseNo", EnterpriseNo);
  97. main.Add("channelNo", ChannelNo);
  98. function.WriteLog(DateTime.Now.ToString(), "代付公用请求方法");
  99. function.WriteLog("path:" + path, "代付公用请求方法");
  100. string body = Newtonsoft.Json.JsonConvert.SerializeObject(data);
  101. function.WriteLog("body:" + body, "代付公用请求方法");
  102. body = Encrypt(body);
  103. main.Add("body", body);
  104. if (fileData.Keys.Count > 0)
  105. {
  106. main.Add("fileData", fileData);
  107. }
  108. string req = Newtonsoft.Json.JsonConvert.SerializeObject(main);
  109. function.WriteLog("req:" + req, "代付公用请求方法");
  110. string result = function.PostWebRequest(RequestUrl + path, req, "application/json");
  111. function.WriteLog("result:" + result, "代付公用请求方法");
  112. function.WriteLog("-----------------", "代付公用请求方法");
  113. return result;
  114. }
  115. //加密
  116. public string Encrypt(string content)
  117. {
  118. // var toDecryptArray = System.Text.Encoding.UTF8.GetBytes(content);
  119. // var keyArray = System.Text.Encoding.UTF8.GetBytes(PublicKey);
  120. // var rsa = RSA.Create();
  121. // rsa.ImportRSAPublicKey(keyArray, out _);
  122. // var contentArray = rsa.Encrypt(toDecryptArray, RSAEncryptionPadding.Pkcs1);
  123. // return Convert.ToBase64String(contentArray);
  124. return new RSAHelper(RSAType.RSA, System.Text.Encoding.UTF8, "", PublicKey).Encrypt(content);
  125. }
  126. }
  127. }