protected override void InitDoSomething(MerchantsBank bank) { MerchantsNumber = bank.MerchantsNumber; MerchantsKey = bank.MerchantsKey; Aisle = bank.Aisle; ThirdPayMerchantsType = bank.ThirdPayMerchantsType; }
public override void SaveDoSomething(MerchantsBank bank) { bank.MerchantsNumber = MerchantsNumber; bank.MerchantsKey = MerchantsKey; bank.Aisle = Aisle; bank.ThirdPayMerchantsType = ThirdPayMerchantsType; }
public override void SaveDoSomething(MerchantsBank bank) { if (ScanAffixId == null) { throw new ZzbException("请上传收款二维码"); } bank.ScanAffixId = ScanAffixId.Value; }
public ServiceResult Save() { if (BannerAffixId == null) { return(new ServiceResult(ServiceResultCode.Error, "请上传银行图片")); } MerchantsBank bank = new MerchantsBank(); if (MerchantsBankId >= 0) { bank = (from m in Context.MerchantsBanks where m.MerchantsBankId == MerchantsBankId select m).First(); } bank.BannerAffixId = BannerAffixId.Value; try { SaveDoSomething(bank); } catch (ZzbException e) { return(new ServiceResult(ServiceResultCode.Error, e.Message)); } bank.Type = BankType; bank.Name = Name; bank.Min = Min; bank.Max = Max; bank.IndexSort = IndexSort; bank.IsUseful = IsUseful; if (MerchantsBankId >= 0) { UserOperateLogService.Log($"编辑收款银行[{Name}]", Context); } else { Context.MerchantsBanks.Add(bank); UserOperateLogService.Log($"添加收款银行[{Name}]", Context); } Context.SaveChanges(); return(new ServiceResult(ServiceResultCode.Success)); }
public override void SaveDoSomething(MerchantsBank bank) { bank.BankUserName = BankUserName; bank.Account = Account; }
public abstract void SaveDoSomething(MerchantsBank bank);
protected virtual void InitDoSomething(MerchantsBank bank) { }
protected override ThirdPayModel ThirdPayUrl(Recharge recharge, decimal money, string url, MerchantsBank bank) { Dictionary <string, string> dic = new Dictionary <string, string>(); dic.Add("pickupUrl", HttpUtility.UrlDecode(url)); dic.Add("receiveUrl", HttpUtility.UrlDecode(_notifyUrl)); dic.Add("signType", "MD5"); dic.Add("orderNo", recharge.OrderNo); dic.Add("orderAmount", money.ToString()); dic.Add("orderCurrency", "CNY"); dic.Add("customerId", "15687957317"); StringBuilder sb = new StringBuilder(); sb.Append(HttpUtility.UrlDecode(url)); sb.Append(HttpUtility.UrlDecode(_notifyUrl)); sb.Append("MD5"); sb.Append(recharge.OrderNo); sb.Append(money.ToString()); sb.Append("CNY"); sb.Append("15687957317"); sb.Append(bank.MerchantsKey); dic.Add("sign", SecurityHelper.MD5Encrypt(sb.ToString())); dic.Add("crmNo", bank.MerchantsNumber); return(new ThirdPayModel(Url, HttpType.Post, dic)); }
protected override ThirdPayModel ThirdPayUrl(Recharge recharge, decimal money, string url, MerchantsBank bank) { string customerAmount = ""; string pickupUrl; string receiveUrl = _notifyUrl; string signType = "MD5"; string outOrderId = recharge.OrderNo; string customerAmountCny = money.ToString(); string baseUrl = "https://s.starfireotc.com/payLink/web.html"; if (string.IsNullOrEmpty(url)) { pickupUrl = HttpContextAccessor.HttpContext.Request.GetDefaultUrl(); baseUrl = "https://s.starfireotc.com/payLink/mobile.html"; } else { pickupUrl = HttpUtility.UrlDecode(url); } string md5Str = outOrderId + customerAmount + pickupUrl + receiveUrl + customerAmountCny + signType + bank.MerchantsKey; string sign = SecurityHelper.MD5Encrypt(md5Str); LogHelper.Debug($"签名字符串:[{md5Str}],签名完毕:[{sign}],访问网址:[" + baseUrl + $"?outOrderId={outOrderId}&customerAmount={customerAmount}&customerAmountCny={customerAmountCny}&APPKey={bank.MerchantsNumber}&pickupUrl={pickupUrl}&receiveUrl={receiveUrl}&signType={signType}&sign={sign}" + "]"); return(new ThirdPayModel(baseUrl + $"?outOrderId={outOrderId}&customerAmount={customerAmount}&customerAmountCny={customerAmountCny}&APPKey={bank.MerchantsNumber}&pickupUrl={pickupUrl}&receiveUrl={receiveUrl}&signType={signType}&sign={sign}")); }
protected override ThirdPayModel ThirdPayUrl(Recharge recharge, decimal money, string url, MerchantsBank bank) { Dictionary <string, string> dic = new Dictionary <string, string>(); dic.Add("notify_url", _notifyUrl); dic.Add("return_url", HttpUtility.UrlDecode(url)); dic.Add("method", bank.Aisle); dic.Add("app_id", bank.MerchantsNumber); dic.Add("out_trade_no", recharge.OrderNo); dic.Add("total_amount", (money * 100).ToString()); dic.Add("subject", "充值"); StringBuilder sb = new StringBuilder(); foreach (string k in dic.Keys.OrderBy(t => t)) { if (!string.IsNullOrEmpty(dic[k])) { sb.Append($"{k}={dic[k]}&"); } } sb.Append("key=" + bank.MerchantsKey); dic.Add("sign", SecurityHelper.MD5Encrypt(sb.ToString()).ToUpper()); return(new ThirdPayModel("http://www.1hhm.com/unifiedorder", HttpType.Post, dic)); }
protected override ThirdPayModel ThirdPayUrl(Recharge recharge, decimal money, string url, MerchantsBank bank) { RequestHandler reqHandler = new RequestHandler(null); reqHandler.setGateUrl("https://pay.swiftpass.cn/pay/gateway"); reqHandler.setKey(bank.MerchantsKey); reqHandler.setParameter("out_trade_no", recharge.OrderNo); //商户订单号 reqHandler.setParameter("body", "recharge"); //商品描述 reqHandler.setParameter("attach", "recharge"); //附加信息 reqHandler.setParameter("total_fee", (money * 100).ToString("#")); //总金额 reqHandler.setParameter("mch_create_ip", "127.0.0.1"); //终端IP reqHandler.setParameter("time_start", ""); //订单生成时间 reqHandler.setParameter("time_expire", ""); //订单超时时间 reqHandler.setParameter("service", bank.Aisle); //接口类型:pay.weixin.native reqHandler.setParameter("mch_id", bank.MerchantsNumber); //必填项,商户号,由平台分配 reqHandler.setParameter("version", "1.0"); //接口版本号 reqHandler.setParameter("notify_url", _notifyUrl); //通知地址,必填项,接收平台通知的URL,需给绝对路径,255字符内;此URL要保证外网能访问 reqHandler.setParameter("nonce_str", Utils.random()); //随机字符串,必填项,不长于 32 位 reqHandler.createSign(); //创建签名 string data = Utils.toXml(reqHandler.getAllParameters()); //生成XML报文 PayHttpClient pay = new PayHttpClient(); Dictionary <string, string> reqContent = new Dictionary <string, string>(); reqContent.Add("url", reqHandler.getGateUrl()); reqContent.Add("data", data); pay.setReqContent(reqContent); if (pay.call()) { ClientResponseHandler resHandler = new ClientResponseHandler(); resHandler.setContent(pay.getResContent()); resHandler.setKey(bank.MerchantsKey); Hashtable param = resHandler.getAllParameters(); if (resHandler.isTenpaySign()) { //当返回状态与业务结果都为0时才返回支付二维码,其它结果请查看接口文档 if (int.Parse(param["status"].ToString()) == 0 && int.Parse(param["result_code"].ToString()) == 0) { return(new ThirdPayModel(HttpType.Img, param["code_img_url"].ToString())); } else { throw new ZzbException("错误代码:" + param["err_code"] + ",错误信息:" + param["err_msg"]); } } else { throw new ZzbException("错误代码:" + param["status"] + ",错误信息:" + param["message"]); } } else { throw new ZzbException("错误代码:" + pay.getResponseCode() + ",错误信息:" + pay.getErrInfo()); } }
protected abstract ThirdPayModel ThirdPayUrl(Recharge recharge, decimal money, string url, MerchantsBank bank);
protected override ThirdPayModel ThirdPayUrl(Recharge recharge, decimal money, string url, MerchantsBank bank) { string paramer = $"parter={bank.MerchantsNumber}&type={bank.Aisle}&value={money}&orderid={recharge.OrderNo}&callbackurl={_notifyUrl}"; paramer += $"&sign={SecurityHelper.MD5Encrypt(paramer + bank.MerchantsKey)}"; return(new ThirdPayModel("https://openapi.xunjuhe.com/index.aspx?" + paramer)); }
protected override void InitDoSomething(MerchantsBank bank) { BankUserName = bank.BankUserName; Account = bank.Account; }
protected override void InitDoSomething(MerchantsBank bank) { ScanAffixId = bank.ScanAffixId; }
protected override ThirdPayModel ThirdPayUrl(Recharge recharge, decimal money, string url, MerchantsBank bank) { var merchant_id = bank.MerchantsNumber; var orderid = recharge.OrderNo; var paytype = bank.Aisle; var notifyurl = HttpContextAccessor.HttpContext.Request.GetDefaultUrl() + "api/ThirdPay/NiuPayCallBack"; var callbackurl = HttpUtility.UrlDecode(url); var sign = SecurityHelper.MD5Encrypt(merchant_id + orderid + paytype + notifyurl + callbackurl + money + bank.MerchantsKey); string jsonText = HttpHelper.HttpPost("http://api.niupay.top/", $"merchant_id={merchant_id}&orderid={orderid}&paytype={paytype}¬ifyurl={notifyurl}&callbackurl={callbackurl}&sign={sign}&money={money}"); JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText); string qrcode1 = jo["data"]["url"].ToString(); if (string.IsNullOrEmpty(qrcode1)) { throw new ZzbException(jsonText); } return(new ThirdPayModel(qrcode1)); }
protected override ThirdPayModel ThirdPayUrl(Recharge recharge, decimal money, string url, MerchantsBank bank) { Dictionary <string, string> dic = new Dictionary <string, string>(); dic.Add("amount", money.ToString("#0.00").Trim()); dic.Add("appid", bank.MerchantsNumber.Trim()); dic.Add("callback_url", HttpUtility.UrlDecode(_notifyUrl)?.Trim()); dic.Add("out_trade_no", recharge.OrderNo.Trim()); dic.Add("pay_type", bank.Aisle.Trim()); dic.Add("version", "v1.0"); var sign = string.Empty; StringBuilder sb = new StringBuilder(); foreach (string k in dic.Keys.OrderBy(t => t)) { if (!string.IsNullOrEmpty(dic[k])) { sb.Append($"{k}={dic[k]}&"); } } sb.Append("key=" + bank.MerchantsKey); dic.Add("sign", SecurityHelper.MD5Encrypt(sb.ToString()).ToUpper()); return(new ThirdPayModel("http://api.xaapay.com/index/unifiedorder", HttpType.Post, dic)); }