/// <summary> /// 查询退款信息 /// </summary> /// <param name="order"></param> /// <returns></returns> public async Task <(bool ok, string msg)> QueryRefundInfo(BackupOrderItem order) { if (order == null) { throw new ArgumentNullException(nameof(order)); } if (!order.HasRefundInfo) { return(false, "无退款信息"); } if (order.RefundInfo != null) { return(true, null); } var data = new { trade_no = order.RefundTradeNo, trade_mode = 1, query_flag = 2, start_time = order.ReserveTime.ToString("yyyyMMddHHmmss"), stop_time = order.ReserveTime.AddDays(15).AddSeconds(-1).ToString("yyyyMMddHHmmss") }; var apiUrl = "queryRefund/queryRefundInfo"; var ctx = await Session.NetClient.RunRequestLoopAsync( _ => Session.NetClient.Create <OtnWebResponse <RefundInfoContainer> >( HttpMethod.Post, apiUrl, data: data ) ); if (!ctx.IsValid() || !ctx.Result.IsValid() || ctx.Result.Data?.Flag != true) { return(false, ctx.Get12306ErrorMessage()); } order.RefundInfo = ctx.Result.Data.Data; return(true, null); }
public async Task <(bool ok, string msg)> CancelNotCompleteOrder(BackupOrderItem order, Func <double, bool> confirm) { var api = order.StatusCode == 1 ? "afterNateOrder/cancelNotComplete" : "afterNateOrder/reserveReturnCheck"; var data = order.StatusCode == 1 ? (object)new { reserve_no = order.ReserveNo } : new { sequence_no = order.ReserveNo }; var ctx = await Session.NetClient.RunRequestLoopAsync( _ => Session.NetClient.Create( HttpMethod.Post, api, data: data, result: OtnWebResponse.Create(new { flag = false, msg = "", data = 0.0 })) ); if (!ctx.IsValid() || ctx.Result.Data?.flag != true) { return(false, ctx.Get12306ErrorMessage(Assets.SR.Error_DefaultServerError)); } if (order.StatusCode > 1) { //确认退费 if (confirm?.Invoke(ctx.Result.Data.data) == false) { return(false, "已终止取消订单"); } var ctxRet = await Session.NetClient.RunRequestLoopAsync( _ => Session.NetClient.Create( HttpMethod.Post, "afterNateOrder/reserveReturn", data: data, result: OtnWebResponse.Create(new { flag = false, msg = "" })) ); if (!ctxRet.IsValid() || ctxRet.Result.Data?.flag != true) { return(false, ctxRet.Get12306ErrorMessage(Assets.SR.Error_DefaultServerError)); } } return(true, null); }
public HbOrderListViewGroup(BackupOrderItem order) { _order = order; CreateGroup(); }
public async Task <(bool ok, string msg, Dictionary <string, string> form)> CreatePayForm(BackupOrderItem order) { var ctx = await Session.NetClient.RunRequestLoopAsync( _ => Session.NetClient.Create <OtnWebResponse <BaseOtnApiResponseWithFlagAndMsg> >( HttpMethod.Post, "afterNateOrder/continuePayNoCompleteMyOrder", data: new { reserve_no = order.ReserveNo }) ); if (!ctx.IsValid() || ctx.Result.Data?.Flag != true) { return(false, ctx.Get12306ErrorMessage(Assets.SR.Error_DefaultServerError), null); } var ctxPay = await Session.NetClient.RunRequestLoopAsync( _ => Session.NetClient.Create( HttpMethod.Post, "afterNatePay/paycheck", result: OtnWebResponse.Create(new { flag = false, payForm = new Dictionary <string, string>() })) ); if (!ctxPay.IsValid() || ctxPay.Result.Data?.flag != true || ctxPay.Result.Data?.payForm == null) { return(false, ctx.Get12306ErrorMessage(Assets.SR.Error_DefaultServerError), null); } return(true, null, ctxPay.Result.Data.payForm); }