コード例 #1
0
        /// <summary>
        /// 根据支付结果跳转
        /// </summary>
        /// <param name="p"></param>
        /// <param name="map"></param>
        /// <returns></returns>
        public static bool PayResultJump(PayParam p, Dictionary <string, string> map)
        {
            string resultCode = PayBLL.PayResult(p, map);

            if (resultCode == null)
            {
                return(true);
            }
            if ("55".Equals(resultCode))
            {
                Util.JumpUtil.jumpCommonPage("FormInputPassword");
                return(false);
            }
            else if ("51".Equals(resultCode))
            {
                log.Write("余额不足");
                exit("余额不足");
                return(false);
            }
            else
            {
                log.Write("支付失败:返回码:" + map["recode"]);
                exit("充值失败,请重新缴费,或退卡");
                return(false);
            }
        }
コード例 #2
0
        private void pay()
        {
            log.Write("--------------------交易开始--------------------");
            log.Write("----------缴费类型:小区物业");
            Thread.Sleep(3000);
            //测试
            Util.JumpUtil.jumpCommonPage("FormPropStepTemp06_success");
            return;



            PayAccess payAccess = new PayAccess();
            PayParam  p         = new PayParam();
            Pay       pay       = new Pay();
            //订单结果
            PropOrderInfo orderinfo = null;

            //初始化参数
            payAccess.InitPayParam(ref p);
            PayBLL.payCode_terminalNo(ref p);
            try
            {
                //获取订单
                orderInfo(ref orderinfo, p);
                //获取订单结果处理
                if (pay.orderInfoResult(orderinfo.msgrsp.retcode, orderinfo.msgrsp.retshow) == false)
                {
                    return;
                }
                //支付
                if (pay.payResult(ref p))
                {
                    log.Write("--------------------交易结束--------------------");
                    Util.JumpUtil.jumpCommonPage("FormPropStepTemp06_success");
                }
                return;
            }
            catch (Exception ex9)
            {
                log.Write("交易异常:" + ex9.Message);
                exit(SysConfigHelper.readerNode("payUnknownInfo"));
                return;
            }
        }
コード例 #3
0
        public void pay()
        {
            TradeRecord tradeRecord = new TradeRecord();

            log.Write("--------------------交易开始--------------------");
            log.Write("----------缴费类型:电力");
            PayAccess payAccess = new PayAccess();
            PayParam  p         = new PayParam();
            Pay       pay       = new Pay();
            //订单
            ElecOrderInfo orderinfo = null;

            //初始化参数
            payAccess.InitPayParam(ref p);
            PayBLL.payCode_terminalNo(ref p);
            try
            {
                //获取订单
                orderInfo(ref orderinfo, p);
                //获取订单结果处理
                if (pay.orderInfoResult(orderinfo.msgrsp.retcode, orderinfo.msgrsp.retshow) == false)
                {
                    return;
                }
                //支付
                if (pay.payResult(ref p))
                {
                    log.Write("--------------------交易结束--------------------");
                    Util.JumpUtil.jumpCommonPage("FormElectricStep06_success");
                }
                return;
            }
            catch (Exception ex9)
            {
                log.Write("交易异常:" + ex9.Message);
                exit(SysConfigHelper.readerNode("payFailInfo"));
                return;
            }
        }
コード例 #4
0
        public void pay()
        {
            log.Write("--------------------交易开始--------------------");
            log.Write("----------缴费类型:广电");
            PayAccess payAccess = new PayAccess();
            PayParam  p         = new PayParam();
            //订单结果
            BroadCasOrderInfo orderinfo = null;
            Pay pay = new Pay();

            //初始化银行卡交易参数
            payAccess.InitPayParam(ref p);
            //设置交易流水
            PayBLL.payCode_terminalNo(ref p);
            try
            {
                //获取订单
                orderInfo(ref orderinfo, p);
                //获取订单结果处理
                if (pay.orderInfoResult(orderinfo.msgrsp.retcode, orderinfo.msgrsp.retshow) == false)
                {
                    return;
                }
                //支付
                if (pay.payResult(ref p))
                {
                    log.Write("--------------------交易结束--------------------");
                    Util.JumpUtil.jumpCommonPage("FormBroadCasStep06_success");
                }
                return;
            }
            catch (ThreadAbortException ae) { log.Write("error:" + ae.Message); }
            catch (Exception ee)
            {
                log.Write("交易异常:" + ee.Message);
                exit("缴费失败,请重新缴费,或退卡");
                return;
            }
        }
コード例 #5
0
        private void pay()
        {
            log.Write("--------------------交易开始--------------------");
            log.Write("----------缴费类型:水务");
            PayAccess payAccess = new PayAccess();
            PayParam  p         = new PayParam();
            Pay       pay       = new Pay();
            //订单结果
            WaterOrderInfo orderinfo = null;

            //初始化参数
            payAccess.InitPayParam(ref p);
            PayBLL.payCode_terminalNo(ref p);
            try
            {
                //获取订单
                orderInfo(ref orderinfo, p);
                //获取订单结果处理
                if (pay.orderInfoResult(orderinfo.msgrsp.retcode, orderinfo.msgrsp.retshow) == false)
                {
                    return;
                }
                //支付
                if (pay.payResult(ref p))
                {
                    log.Write("--------------------交易结束--------------------");
                    Util.JumpUtil.jumpCommonPage("FormWaterStep06_success");
                }
                return;
            }
            catch (Exception ex6)
            {
                log.Write("交易异常:" + ex6.Message);
                exit("缴费失败,请重新缴费,或退卡");
                return;
            }
        }
コード例 #6
0
        /// <summary>
        /// 支付
        /// </summary>
        /// <param name="p"></param>
        /// <returns></returns>
        public PayResultInfo payStart(PayParam p)
        {
            //密码键盘工具类
            PasswordBLL pwdBLL = new PasswordBLL();
            //交易数据访问类
            PayAccess payAccess = new PayAccess();
            //支付结果
            PayResultInfo payResultInfo = null;

            try
            {
                Dictionary <string, string> parameters = new Dictionary <string, string>();
                //缴费类型
                parameters.Add("serviceType", p.serviceType);
                //交易金额
                parameters.Add("realAmout", p.rechageAmount);
                //交易类型,纸币,银行卡,万通卡
                parameters.Add("tr.shop_type", isWtLkl(p.icParams));
                if (PayStaticParam.payType == -1)
                {//电子现金支付相关参数
                    //获取批次号
                    p.batchNo = LKLProcedure.GetBatchNo();
                    //获取支付报文
                    parameters.Add("tr.data", PayBLL.PayMessage(ref p));
                    //批次流水号
                    parameters.Add("dzls", p.batchNo + p.WtLklorderNo);
                }
                //云平台交易流水号
                parameters.Add("tr.cloud_no", p.orderNo);
                if ("4".Equals(p.serviceType))
                {
                    //万通卡支付相关参数
                    if (SysBLL.IsTest.Equals("正式"))
                    {
                        parameters.Add("terminalno", "XNJ00002");
                        parameters.Add("terminal", ConfigurationManager.AppSettings["MechineNo"]);
                    }
                    else
                    {
                        parameters.Add("terminalno", "UU000002");
                        parameters.Add("terminal", ConfigurationManager.AppSettings["MechineNo"]);
                    }
                }
                else
                {
                    parameters.Add("terminalNo", p.terminalNo);
                }
                //设置其余参数
                initParam(parameters, p);
                //发起支付
                payResultInfo = payAccess.PayResNewAcc(parameters);
                //纸币交易到此为止
                if (PayStaticParam.payType == 0)
                {
                    if ("0000".Equals(payResultInfo.code))
                    {
                        //支付成功
                        log.Write("--------------------交易结束--------------------");
                        return(payResultInfo);
                    }
                    else
                    {
                        payResultInfo.code = "9999";
                        log.Write("--------------------交易结束--------------------");
                        return(payResultInfo);
                    }
                }
                if (isNull(payResultInfo) || ("9991".Equals(payResultInfo.code)))
                {
                    //冲正
                    CorrectParam correctParam = new CorrectParam();
                    //缴费类型
                    correctParam.serviceType = p.serviceType;
                    //支付类型
                    correctParam.shop_type = isWtLkl(p.icParams);
                    //云平台交易流水
                    correctParam.cloud_no = p.orderNo;
                    for (int i = 1; i <= 3; i++)
                    {
                        //获取冲正报文
                        correctParam.data = Util.JumpUtil.CorrectJump(p);
                        //发起冲正
                        PayResultInfo payResultInfoacc = payAccess.CorrectAcc(correctParam);
                        if ("0000".Equals(payResultInfoacc.code))
                        {
                            break;
                        }
                    }
                    payResultInfo.code = "9991";
                    return(payResultInfo);
                }
                else if ("9955".Equals(payResultInfo.code))
                {
                    //密码错误
                    SysBLL.PasswordErrorInfo = "密码错误,请重新输入!";
                    log.Write("密码错误");
                    log.Write("--------------------交易结束--------------------");
                    if (p.icParams == null)
                    {
                        //打开键盘,同时交易页面跳转到输入密码页面,万通
                        pwdBLL.OpenKeyboard(SysConfigHelper.readerNode("ZT598Port"), "9600", p.WtNo);
                        return(payResultInfo);
                    }
                    else
                    {
                        //打开键盘,同时交易页面跳转到输入密码页面,银行卡
                        pwdBLL.OpenKeyboard(SysConfigHelper.readerNode("ZT598Port"), "9600", p.icParams["cardNo"]);
                        return(payResultInfo);
                    }
                }
                else if ("9951".Equals(payResultInfo.code))
                {
                    //余额不足
                    log.Write("余额不足");
                    return(payResultInfo);
                }
                else if ("9900".Equals(payResultInfo.code))
                {
                    //发起退款
                    refund(ref payResultInfo, p);
                    return(payResultInfo);
                }
                else if ("0000".Equals(payResultInfo.code))
                {
                    //支付成功
                    log.Write("--------------------交易结束--------------------");
                    //银行卡给万通卡充值成功后,测试环境下会在其他服务页面中显示银行卡退款按钮,可进行退款操作
                    if (SysBLL.IsTest.Equals("测试"))
                    {
                        if (p.serviceType.Equals("4"))
                        {
                            //发起退款
                            RefundTest refundTest = new RefundTest();
                            refundTest.refundPayResultInfo = payResultInfo;
                            refundTest.refundPayParam      = p;
                            PayStaticParam.refundTest.Add(refundTest);
                        }
                    }
                    return(payResultInfo);
                }
                else
                {
                    return(payResultInfo);
                }
            }
            catch (Exception ex)
            {
                log.Write("error:99:支付失败:" + ex.Message + ex.InnerException);
                return(payResultInfo);
            }
        }
コード例 #7
0
        public void pay()
        {
            log.Write("--------------------交易开始--------------------");
            log.Write("----------缴费类型:物业二次");
            PayAccess payAccess = new PayAccess();
            PayParam  p         = Payment.propSecPayParam.p;
            Pay       pay       = new Pay();
            //订单结果
            PropSecOrderInfo orderinfo = Payment.propSecPayParam.orderInfo;

            //初始化参数
            payAccess.InitPayParam(ref p);
            PayBLL.payCode_terminalNo(ref p);
            try
            {
                //获取订单
                //orderInfo(ref orderinfo, p);
                //获取订单结果处理
                if (pay.orderInfoResult(orderinfo.msgrsp.retcode, orderinfo.msgrsp.retshow) == false)
                {
                    return;
                }
                //支付
                if (pay.payResult(ref p))
                {
                    bool isCarsWrite = false;
                    //写卡状态
                    WriteCardParam writeCardParam = new WriteCardParam();

                    StringBuilder result1 = new StringBuilder(2048);
                    StringBuilder result2 = new StringBuilder(2048);
                    log.Write("物业2读卡:业务类型:08,卡片种类:" + Payment.propSecPayParam.CardType + ",表具厂商编号:" + Payment.propSecPayParam.ManufacturerNum + ",业务输入信息:" + p.propSecSC20003);
                    IntPtr status = PropSwwy.WF002(
                        new StringBuilder("02"),                                       //业务类型
                        new StringBuilder(Payment.propSecPayParam.CardType),           //卡片种类
                        new StringBuilder("01"),                                       //卡片版本
                        new StringBuilder(""),                                         //,业务步骤
                        new StringBuilder(""),                                         //卡片唯一识别号
                        new StringBuilder(""),                                         //物业公司编号
                        new StringBuilder(""),                                         //小区编号
                        new StringBuilder(Payment.propSecPayParam.ManufacturerNum),    //表具产商编号
                        new StringBuilder(SysConfigHelper.readerNode("PropSwwyName")), //端口号
                        result1,                                                       //返回说明
                        new StringBuilder(p.propSecSC20003),                           //业务输入信息
                        result2                                                        //业务返回信息
                        );
                    string result = Marshal.PtrToStringAnsi(status);

                    if ("0".Equals(result))
                    {
                        //写卡成功
                        writeCardParam.write_card_status = "1";
                        isCarsWrite = true;
                    }
                    else
                    {
                        //写卡失败
                        writeCardParam.write_card_status = "3";
                        PayResultInfo payresultInfo = p.payResultInfo;
                        p.rqFlushesCode = "SC005";
                        //pay.refund(ref payresultInfo, p);
                        isCarsWrite = false;
                    }
                    //PropSecCardJson card = new PropSec().JsonToModel(result2.ToString());
                    writeCardParam.serviceType   = p.serviceType;
                    writeCardParam.rqFlushesCode = isCardTypeRq();
                    writeCardParam.shop_type     = PayAccess.isWtLkl(p.icParams);
                    writeCardParam.cloud_no      = orderinfo.msgrsp.orderNo;
                    writeCardParam.data          = pay.refundStr(p.payResultInfo, p);
                    PayResultInfo resultInfo = payAccess.WriteCardAcc(writeCardParam);
                    if (isCarsWrite)
                    {
                        log.Write("--------------------交易结束--------------------");
                        Util.JumpUtil.jumpCommonPage("FormPropSecStep08_success");
                        return;
                    }
                    else
                    {
                        log.Write("error:物业卡写卡失败");
                        FormTip.FormFailRefundShowinfo = resultInfo.msg;
                        Util.JumpUtil.jumpCommonPage("FormFailRefund");
                        return;
                    }
                }
                return;
            }
            catch (AccessViolationException ave) { log.Write("error:" + ave.Message); }
            catch (Exception ex) { log.Write("error:" + ex.Message); }
            exit("缴费失败,请稍后再试...");
            return;
        }
コード例 #8
0
        public void pay()
        {
            log.Write("--------------------交易开始--------------------");
            log.Write("----------缴费类型:燃气");
            PayAccess payAccess = new PayAccess();
            PayParam  p         = new PayParam();
            Pay       pay       = new Pay();
            //订单结果
            GasOrderInfo orderinfo = null;

            //初始化参数
            payAccess.InitPayParam(ref p);
            PayBLL.payCode_terminalNo(ref p);
            try
            {
                //获取订单
                orderInfo(ref orderinfo, p);
                //获取订单结果处理
                if (pay.orderInfoResult(orderinfo.msgrsp.retcode, orderinfo.msgrsp.retshow) == false)
                {
                    return;
                }
                //支付
                if (pay.payResult(ref p))
                {
                    bool           isCarsWrite    = false;
                    WriteCardParam writeCardParam = new WriteCardParam();
                    writeCardParam.write_card_status = "3";
                    //金卡卡内充值
                    if (card.cardType == 1)
                    {
                        int rechageNum = Convert.ToInt32(card.rechargeNum) + card.GasValue;
                        if (jinCard.Recharge(card.CardNo, rechageNum))
                        {
                            isCarsWrite = true;
                            writeCardParam.write_card_status = "1";
                        }
                    }
                    //先锋卡内充值
                    if (card.cardType == 2)
                    {
                        int rechageNum = Convert.ToInt32(card.rechargeNum);
                        if (xf.Recharge(card.CardNo, rechageNum))
                        {
                            isCarsWrite = true;
                            writeCardParam.write_card_status = "1";
                        }
                    }
                    //写卡状态
                    writeCardParam.serviceType   = p.serviceType;
                    writeCardParam.rqFlushesCode = isCardTypeRq(card);
                    writeCardParam.shop_type     = PayAccess.isWtLkl(p.icParams);
                    writeCardParam.cloud_no      = orderinfo.msgrsp.orderNo;
                    writeCardParam.data          = pay.refundStr(p.payResultInfo, p);
                    payAccess.WriteCardAcc(writeCardParam);
                    if (isCarsWrite)
                    {
                        log.Write("--------------------交易结束--------------------");
                        Util.JumpUtil.jumpCommonPage("FormGasGoldenCardStep08_success");
                        return;
                    }
                    else
                    {
                        log.Write("error:燃气卡写卡失败");
                        exitRefund("缴费失败,退款成功");
                        return;
                    }
                }
                return;
            }
            catch (Exception ex) { log.Write("error:" + ex.Message); }
            exit("缴费失败,退款成功");
            return;
        }
コード例 #9
0
 /// <summary>
 /// 获取冲正报文
 /// </summary>
 /// <param name="p"></param>
 /// <returns></returns>
 public static string CorrectJump(PayParam p)
 {
     return(PayBLL.Correct(ref p));
 }