using System; using System.Collections.Generic; using System.Linq; using MySystem.Models; using Library; using LitJson; using System.Threading; using System.Security.Cryptography; namespace MySystem { public class PayApply { public string taskNo { get; set; } public string entOrderNo { get; set; } public string payeeName { get; set; } public string payeeIdCard { get; set; } public string payeePhone { get; set; } public string payeeAccount { get; set; } public string paymentModel { get; set; } public string amount { get; set; } public string callbackUrl { get; set; } public string remark { get; set; } } public class CashBase { public readonly static CashBase Instance = new CashBase(); private CashBase() { } public string PrivateKey = ""; //私钥 public string PublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoZa64mEChZCYmn6t+33ZksHoV9Me/SR2oOkbNifkwP8EmhtopMZE00yumd3zKY0enJvqZ+22x486MUUu3d658n+nl6k8taSAYVrUb6vIfFueUYcbvorxzZNLvdi3AnQGJybRGJis/9WOYJc0XioNq9ywP/RLWMNGmuF+RBFYoRic9dGMoPF2I4Y/RazxUNN9mJRQwIacAd7r+miikBzrQ0kdC0QdNR4eEc2u8UEy2VhMuMqc9oKXVSdlVV+8Cx5m9kZzyRL0UryvUV6VYk8zMxoQVHpTtu0GjL8nXBfiJzglCqIpum989AIxrafgIwvwj8fTMnET4eTwT7nUyskgewIDAQAB"; //公钥 public string EnterpriseNo = "8880010000269"; //平台分配的企业编码 public string ChannelNo = "8880010000267"; //平台分配的渠道编码 public string RequestUrl = "http://yhs-service-pay2data.juheba.top:8888/"; //请求地址 //查询签约状态 public string QuerySignStatus(string IdCard) { Dictionary data = new Dictionary(); data.Add("apiCode", "3003"); //接口编号,固定:3003 data.Add("enterpriseNo", EnterpriseNo); //平台分配的企业编码 data.Add("channelNo", ChannelNo); //平台分配的渠道编码 data.Add("timestamp", function.GetCurTimestamp()); //时间戳(毫秒) data.Add("idCard", IdCard); //从业者身份证号 return PostData("api/personal/signed/result", data, new Dictionary()); } //从业者数据提交 public string CreateInfo(string Name, string IdCard, string Phone, string FrontCertImg, string BackCertImg) { Dictionary data = new Dictionary(); data.Add("apiCode", "3000"); //接口编号,固定:3003 data.Add("enterpriseNo", EnterpriseNo); //平台分配的企业编码 data.Add("channelNo", ChannelNo); //平台分配的渠道编码 data.Add("timestamp", function.GetCurTimestamp()); //时间戳(毫秒) data.Add("name", Name); //从业者姓名 data.Add("idCard", IdCard); //从业者身份证号 data.Add("phone", Phone); //从业者手机号 Dictionary fileData = new Dictionary(); fileData.Add("frontCertImg", FrontCertImg); //身份证正面照 fileData.Add("backCertImg", BackCertImg); //身份证反面照 return PostData("api/personal/create", data, fileData); } //发起签约确认 public string ConfirmSign(string IdCard) { Dictionary data = new Dictionary(); data.Add("apiCode", "3004"); //接口编号,固定:3003 data.Add("enterpriseNo", EnterpriseNo); //平台分配的企业编码 data.Add("channelNo", ChannelNo); //平台分配的渠道编码 data.Add("timestamp", function.GetCurTimestamp()); //时间戳(毫秒) data.Add("idCard", IdCard); //从业者身份证号 return PostData("api/personal/sign", data, new Dictionary()); } //提价代付申请 public string PayApply(PayApply ReqData) { Dictionary data = new Dictionary(); data.Add("apiCode", "3004"); //接口编号,固定:3003 data.Add("enterpriseNo", EnterpriseNo); //平台分配的企业编码 data.Add("channelNo", ChannelNo); //平台分配的渠道编码 data.Add("timestamp", function.GetCurTimestamp()); //时间戳(毫秒) data.Add("taskNo", ReqData.taskNo); //企业后台创建的任务编码 data.Add("entOrderNo", ReqData.entOrderNo); //企业流水号 data.Add("payeeName", ReqData.payeeName); //收款人姓名 data.Add("payeeIdCard", ReqData.payeeIdCard); //收款人身份证号 data.Add("payeePhone", ReqData.payeePhone); //收款人手机号 data.Add("payeeAccount", ReqData.payeeAccount); //收款人帐号(银行卡号、支付宝帐号) data.Add("paymentModel", ReqData.paymentModel); //支付类型 data.Add("amount", ReqData.amount); //金额(单位:分) data.Add("callbackUrl", ReqData.callbackUrl); //通知地址 data.Add("remark", ReqData.remark); //结算单备注信息 return PostData("api/pay/apply", data, new Dictionary()); } //公用请求方法 public string PostData(string path, Dictionary data, Dictionary fileData) { Dictionary main = new Dictionary(); main.Add("enterpriseNo", EnterpriseNo); main.Add("channelNo", ChannelNo); function.WriteLog(DateTime.Now.ToString(), "代付公用请求方法"); function.WriteLog("path:" + path, "代付公用请求方法"); string body = Newtonsoft.Json.JsonConvert.SerializeObject(data); function.WriteLog("body:" + body, "代付公用请求方法"); body = Encrypt(body); main.Add("body", body); if (fileData.Keys.Count > 0) { main.Add("fileData", fileData); } string req = Newtonsoft.Json.JsonConvert.SerializeObject(main); function.WriteLog("req:" + req, "代付公用请求方法"); string result = function.PostWebRequest(RequestUrl + path, req, "application/json"); function.WriteLog("result:" + result, "代付公用请求方法"); function.WriteLog("-----------------", "代付公用请求方法"); return result; } //加密 public string Encrypt(string content) { // var toDecryptArray = System.Text.Encoding.UTF8.GetBytes(content); // var keyArray = System.Text.Encoding.UTF8.GetBytes(PublicKey); // var rsa = RSA.Create(); // rsa.ImportRSAPublicKey(keyArray, out _); // var contentArray = rsa.Encrypt(toDecryptArray, RSAEncryptionPadding.Pkcs1); // return Convert.ToBase64String(contentArray); return new RSAHelper(RSAType.RSA, System.Text.Encoding.UTF8, "", PublicKey).Encrypt(content); } } }