/// <summary> /// 智付支付通道苹果调用方式 /// </summary> /// <param name="apptype">风控配置表id</param> /// <param name="code">订单编号</param> /// <param name="goodsname">商品名称</param> /// <param name="price">商品价格</param> /// <param name="TableName">订单表表名</param> /// <param name="appid">应用id</param> /// <returns></returns> private InnerResponse PayZfIos(int apptype, string code, string goodsname, decimal price, int orderid, int appid) { InnerResponse inn = new InnerResponse(); SortedDictionary <string, string> sParaTemp = new SortedDictionary <string, string>(); Dictionary <string, string> DPcfg = DPConfing.loadCfg(apptype, appid); if (!UpdateOrde.OrdeUpdateInfo(orderid, Int32.Parse(DPcfg["pay_id"].ToString()))) { inn = inn.ToResponse(ErrorCode.Code101); return(inn); } //调用示例 var formField = new FormField( DPcfg["partner"].ToString(), //商家账号 code, //订单编号 price.ToString("f2"), //交易金额 ConfigurationManager.AppSettings["ZFTokenUrl"].ToString().Replace("{0}", DPcfg["pay_id"].ToString()), //通知地址 "RSA-S", //签名方式 DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), //订单时间 goodsname, //商品描述 new FormProperty("") //表单属性对象 ); //商家私钥 string merchantPrivateKey = DPcfg["dpkey"].ToString(); //实例化HTML构造器 var htmlCreator = new HtmlCreator(formField, new PrivateKeySignRsas(merchantPrivateKey)); //生成表单字符串 var htmlForm = htmlCreator.CreateHtmlAz(); inn = inn.ToResponse(ErrorCode.Code100); string data = "{" + htmlForm.ToString().Replace("{", "").Replace("}", "") + ",\"PaymentType\":\"3\",\"SubType\":\"1\",\"IsH5\":\"0\"}"; inn.ExtraData = JMP.TOOL.AesHelper.AesEncrypt(data, ConfigurationManager.AppSettings["encryption"].ToString()); return(inn); }
/// <summary> /// 智付支付通道H5调用方式 /// </summary> /// <param name="apptype">风控配置表id</param> /// <param name="code">订单编号</param> /// <param name="goodsname">商品名称</param> /// <param name="price">商品价格</param> /// <param name="orderid">订单表表名</param> /// <param name="appid">应用id</param> /// <returns></returns> private InnerResponse PayZfH5(int apptype, string code, string goodsname, decimal price, int orderid, int appid) { InnerResponse inn = new InnerResponse(); Dictionary <string, string> DPcfg = new Dictionary <string, string>(); try { Dictionary <string, string> list = new Dictionary <string, string>(); list.Add("UnionPay", "UnionPay"); //特定表示 list.Add("tid", apptype.ToString()); //风控配置表id list.Add("code", code); //订单编号 list.Add("goodsname", goodsname); //商品名称 list.Add("price", price.ToString("f2")); //交易金额 list.Add("oid", orderid.ToString()); //订单id DPcfg = DPConfing.loadCfg(apptype, appid); if (!UpdateOrde.OrdeUpdateInfo(orderid, Int32.Parse(DPcfg["pay_id"].ToString()))) { inn = inn.ToResponse(ErrorCode.Code101); return(inn); } if (!JudgeMoney.JudgeMinimum(price, decimal.Parse(DPcfg["minmun"].ToString()))) { inn = inn.ToResponse(ErrorCode.Code8990); return(inn); } if (!JudgeMoney.JudgeMaximum(price, decimal.Parse(DPcfg["maximum"].ToString()))) { inn = inn.ToResponse(ErrorCode.Code8989); return(inn); } string tbtzurl = ConfigurationManager.AppSettings["GOTOUrl"].ToString().Replace("{0}", orderid.ToString()); //调用示例 var formField = new FormField( DPcfg["partner"].ToString(), //商家账号 list["code"].ToString(), //订单编号 list["price"].ToString(), //交易金额 "direct_pay", //服务类型 "UTF-8", //编码格式 ConfigurationManager.AppSettings["ZFTokenUrl"].ToString().Replace("{0}", DPcfg["pay_id"].ToString()), //通知地址 "RSA-S", //签名方式 DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), //订单时间 list["goodsname"].ToString(), //商品描述 new FormProperty("") //表单属性对象 ) { ReturnUrl = "" + tbtzurl + "" };//同步通知地址 //商家私钥 string merchantPrivateKey = DPcfg["dpkey"].ToString(); //实例化HTML构造器 var htmlCreator = new HtmlCreator(formField, new PrivateKeySignRsas(merchantPrivateKey)); //生成表单字符串 var htmlForm = htmlCreator.CreateHtmlForm(); string fromstr = JMP.TOOL.Encrypt.IndexEncrypt(htmlForm); string h5key = "h5zf" + code; string str = ""; JMP.TOOL.CacheHelper.CacheObject(h5key, htmlForm, 1); str = JMP.TOOL.Encrypt.IndexEncrypt(h5key); str = ConfigurationManager.AppSettings["PostUrl"].ToString() + "?UnionPay=" + str; inn = inn.ToResponse(ErrorCode.Code100); inn.ExtraData = str;//http提交方式; inn.IsJump = true; } catch (Exception ex) { PayApiDetailErrorLogger.UpstreamPaymentErrorLog("报错信息:" + ex.ToString(), summary: "智付银联接口错误信息", channelId: Int32.Parse(DPcfg["pay_id"].ToString())); inn = inn.ToResponse(ErrorCode.Code104); } return(inn); }