public override PayProcessResult QueryPaymentResult(long transactionId, IOrderProcessor orderProcessor) { var res = new PayProcessResult(); //--发起订单查询,判断订单真实性 if (!QueryOrderSuccess(null, transactionId.ToString())) { res.ResultType = PayProcessResType.RequestSuccess; return(res); } //支付成功,调用订单处理逻辑 res.ResultType = PayProcessResType.PaymentSuccess; if (orderProcessor == null) { return(res); } var orderHdRes = orderProcessor.OnOrderPaid(new OrderProcessPara { TransactionId = transactionId, GatewayTranId = null }); LogService.InfoFormat("Wxpay rehandle pay:{0}, is success:{1}", transactionId, orderHdRes.IsSuccess()); //记录处理失败消息 res.ErrorMsg = orderHdRes.ErrorMsg; return(res); }
public override PayProcessResult ProcessPayRequest(PaymentContext context) { var res = new PayProcessResult(); //支付参数设置 var error = CheckAndSetRequestPara(context, Trade_JSAPI, out var data); if (error.NotNull()) { return(res.Error(error)); } try { //调用统一下单接口 var result = WxPayApi.UnifiedOrder(data); var retMsg = result.GetValueStr("return_msg"); if (IsResultSuccess(result)) { //下单成功 res.ResultType = PayProcessResType.RequestSuccess; res.AttachData = result.GetValueStr("prepay_id"); res.ResultValue = GetJsApiParameters(res.AttachData); //对返回结果进一步处理,以方便应用使用 //res.Message = retMsg; } else { res.Error($"{retMsg}:{result.GetValueStr("err_code_des")}"); LogService.ErrorFormat("WxJsApiPay failure:{0}", res.ErrorMsg); } return(res); } catch (Exception e) { LogService.Error(e); return(res.Error("微信支付异常:" + e.Message)); } }