Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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));
            }
        }