示例#1
0
        public static JObject createForm(PaymentType paymentType, string from, string fromNo, string fee, string subject, string installmentTimes, bool isPC = false)
        {
            ////////////////////////////////////////////请求参数////////////////////////////////////////////
            //商户订单号,商户网站订单系统中唯一订单号,必填
            var now          = DateTime.Now;
            var out_trade_no = now.ToString("yyyyMMddHHmmssfff") + CommonBusiness.CreateRandom();
            var orderDate    = now.ToString("yyyyMMddHHmmss");

            //订单名称,必填
            if (string.IsNullOrEmpty(subject))
            {
                subject = "工行支付";
            }

            //付款金额,必填
            var total_fee = (double.Parse(fee)).ToString();

            if (!isPC)
            {
                var tranData = CreateTranData(orderDate, out_trade_no, total_fee, installmentTimes);

                // 本地数据维护 支付宝单位为元 支付宝类型统一为alipay 不好区分
                var result = TradeBusiness.AddTrade(out_trade_no, from, fromNo, PaymentType.ICBC, total_fee, subject, string.Empty, "0");
                if (!(bool)result["Flg"])
                {
                    throw new Exception("本地数据维护失败");
                }

                var bytes           = Encoding.GetEncoding("gbk").GetBytes(tranData);
                var translateString = Convert.ToBase64String(bytes);
                var form            = new StringBuilder();
                var signs           = CBCPayOnline.GetCheckInfo(tranData);
                form.Append("<h3>页面跳转中。。。</h3>");
                //form.Append("<form style=\"display:none;\" id=\"payForm\" action=\"http://wap2.icbc.com.cn/servlet/ICBCWAPEBizServlet\" > ");
                form.Append("<form style=\"display:none;\" id=\"payForm\" action=\"https://mywap2.icbc.com.cn/ICBCWAPBank/servlet/ICBCWAPEBizServlet\" > ");
                form.Append("<INPUT NAME=\"interfaceName\" TYPE=\"text\" value=\"ICBC_WAPB_B2C\">");
                form.Append("<INPUT NAME=\"interfaceVersion\" TYPE=\"text\" value=\"1.0.0.6\">");
                form.Append("<INPUT NAME=\"tranData\" TYPE=\"text\" value=\"" + translateString + "\">");
                form.Append("<INPUT NAME=\"merSignMsg\" TYPE=\"text\" value=\"" + signs[0] + "\">");
                form.Append("<INPUT NAME=\"merCert\" TYPE=\"text\" value=\"" + signs[1] + "\">");
                form.Append("<INPUT NAME=\"clientType\" TYPE=\"text\" value=\"0\">");
                form.Append("</form>");
                form.Append("<script>document.forms['payForm'].submit();</script>");

                return(new JObject(
                           new JProperty("Trade", ((JObject)result["Object"])["result"]),
                           new JProperty("Content", form.ToString())));
            }
            else
            {
                var tranData = CreateTranData_PC(orderDate, out_trade_no, total_fee, installmentTimes);

                // 本地数据维护 支付宝单位为元 支付宝类型统一为alipay 不好区分
                var result = TradeBusiness.AddTrade(out_trade_no, from, fromNo, PaymentType.ICBC, total_fee, subject, string.Empty, "0");
                if (!(bool)result["Flg"])
                {
                    throw new Exception("本地数据维护失败");
                }

                var bytes           = Encoding.GetEncoding("gbk").GetBytes(tranData);
                var translateString = Convert.ToBase64String(bytes);
                var form            = new StringBuilder();
                var signs           = CBCPayOnline.GetCheckInfo(tranData);
                form.Append("<h3>页面跳转中。。。</h3>");
                //form.Append("<form style=\"display:none;\" id=\"payForm\" action=\"http://wap2.icbc.com.cn/servlet/ICBCWAPEBizServlet\" > ");
                form.Append("<form style=\"display:none;\" id=\"payForm\" action=\"https://B2C.icbc.com.cn/servlet/ICBCINBSEBusinessServlet\" > ");
                form.Append("<INPUT NAME=\"interfaceName\" TYPE=\"text\" value=\"ICBC_PERBANK_B2C\">");
                form.Append("<INPUT NAME=\"interfaceVersion\" TYPE=\"text\" value=\"1.0.0.11\">");
                form.Append("<INPUT NAME=\"tranData\" TYPE=\"text\" value=\"" + translateString + "\">");
                form.Append("<INPUT NAME=\"merSignMsg\" TYPE=\"text\" value=\"" + signs[0] + "\">");
                form.Append("<INPUT NAME=\"merCert\" TYPE=\"text\" value=\"" + signs[1] + "\">");
                //form.Append("<INPUT NAME=\"clientType\" TYPE=\"text\" value=\"0\">");
                form.Append("</form>");
                form.Append("<script>document.forms['payForm'].submit();</script>");

                return(new JObject(
                           new JProperty("Trade", ((JObject)result["Object"])["result"]),
                           new JProperty("Content", form.ToString())));
            }
        }