예제 #1
0
        /// <summary>
        /// 条码确认---支付
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnAccept_Click(object sender, EventArgs e)
        {
            //获取用户授权码
            string number = tbxBarcode.Text.Trim();

            //请求支付
            string returnBackText = GetHTTPInfoFind(number, pay_type, moneys, _terminal_trace);

            //接口返回Json对象
            JObject JObjectBack = (JObject)JsonConvert.DeserializeObject(returnBackText);

            //利楚唯一订单号
            hfdout_trade_no.Text = JObjectBack["out_trade_no"].ToString();

            //成功
            if (JObjectBack["return_code"].ToString().Equals("01") && JObjectBack["result_code"].ToString().Equals("01"))
            {
                tm_OnlinePayInfo entity = new tm_OnlinePayInfo();
                entity.pay_type         = JObjectBack["pay_type"].ToString();
                entity.merchant_name    = JObjectBack["merchant_name"].ToString();
                entity.merchant_no      = JObjectBack["merchant_no"].ToString();
                entity.terminal_id      = JObjectBack["terminal_id"].ToString();
                entity.terminal_trace   = JObjectBack["terminal_trace"].ToString();
                entity.terminal_time    = JObjectBack["terminal_time"].ToString();
                entity.total_fee        = JObjectBack["total_fee"].ToString();
                entity.end_time         = JObjectBack["end_time"].ToString();
                entity.out_trade_no     = JObjectBack["out_trade_no"].ToString();
                entity.channel_trade_no = JObjectBack["channel_trade_no"].ToString();
                entity.channel_order_no = JObjectBack["channel_order_no"].ToString();
                entity.user_id          = JObjectBack["user_id"].ToString();

                //保存新增付款记录
                Core.Container.Instance.Resolve <IServiceOnlinePayInfo>().Create(entity);

                //返回支付成功的时间到父页面,0.成功1.失败
                PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(JObjectBack["end_time"].ToString(), "0") + ActiveWindow.GetHidePostBackReference());
            }

            //失败
            if (JObjectBack["return_code"].ToString().Equals("02") || (JObjectBack["return_code"].ToString().Equals("01") && JObjectBack["result_code"].ToString().Equals("02")))
            {
                //Alert.ShowInTop(JObjectBack["return_msg"].ToString(), "支付失败", MessageBoxIcon.Error);
                //返回支付成功的时间到父页面,0.成功1.失败
                PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(JObjectBack["return_msg"].ToString(), "1") + ActiveWindow.GetHidePostBackReference());
            }

            //支付中
            if (JObjectBack["return_code"].ToString().Equals("01") && JObjectBack["result_code"].ToString().Equals("03"))
            {
                //订单支付中将定时器启动隔时间回发是否支付成功
                Timer1.Enabled    = true;
                btnAccept.Enabled = false;
                btnAccept.Text    = "等待用户完成支付...";
            }
        }
예제 #2
0
        /// <summary>
        /// 定时器
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Timer1_Tick(object sender, EventArgs e)
        {
            if (TimerCount > 15)
            {
                Alert.ShowInTop("本次支付失败", "交易状态", MessageBoxIcon.Warning);
                //返回支付成功的时间到父页面,0.成功1.失败
                PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference("支付逾期", "1") + ActiveWindow.GetHidePostBackReference());
            }

            //利楚唯一订单号
            string OrderNo = hfdout_trade_no.Text;

            //调用查询接口查询状态
            string SearchBack = GetHTTPInfoSearch(OrderNo, pay_type, _terminal_trace);

            //接口返回Json对象
            JObject JObjectBack = (JObject)JsonConvert.DeserializeObject(SearchBack);

            //成功
            if (JObjectBack["return_code"].ToString().Equals("01") && JObjectBack["result_code"].ToString().Equals("01"))
            {
                //实例化对象
                tm_OnlinePayInfo entity = new tm_OnlinePayInfo();
                entity.pay_type         = JObjectBack["pay_type"].ToString();
                entity.merchant_name    = JObjectBack["merchant_name"].ToString();
                entity.merchant_no      = JObjectBack["merchant_no"].ToString();
                entity.terminal_id      = JObjectBack["terminal_id"].ToString();
                entity.terminal_trace   = JObjectBack["terminal_trace"].ToString();
                entity.terminal_time    = JObjectBack["terminal_time"].ToString();
                entity.total_fee        = JObjectBack["total_fee"].ToString();
                entity.end_time         = JObjectBack["end_time"].ToString();
                entity.out_trade_no     = JObjectBack["out_trade_no"].ToString();
                entity.channel_trade_no = JObjectBack["channel_trade_no"].ToString();
                entity.channel_order_no = JObjectBack["channel_order_no"].ToString();
                entity.user_id          = JObjectBack["user_id"].ToString();

                //保存新增付款记录
                Core.Container.Instance.Resolve <IServiceOnlinePayInfo>().Create(entity);

                PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(JObjectBack["end_time"].ToString(), "0") + ActiveWindow.GetHidePostBackReference());
            }

            //失败
            if (JObjectBack["return_code"].ToString().Equals("02") || (JObjectBack["return_code"].ToString().Equals("01") && JObjectBack["result_code"].ToString().Equals("02")))
            {
                //Alert.ShowInTop(JObjectBack["return_msg"].ToString(), "交易状态", MessageBoxIcon.Information);
                PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(JObjectBack["return_msg"].ToString(), "1") + ActiveWindow.GetHidePostBackReference());
            }

            //支付中
            if (JObjectBack["return_code"].ToString().Equals("01") && JObjectBack["result_code"].ToString().Equals("03"))
            {
                TimerCount++;
            }
        }