/// <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 = "等待用户完成支付..."; } }
/// <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++; } }