public async Task <IActionResult> OrderQuery(string transaction_id, string out_trade_no)
        {
            var request = new WeChatPayOrderQueryRequest
            {
                TransactionId = transaction_id,
                OutTradeNo    = out_trade_no
            };
            var response = await _client.ExecuteAsync(request);

            ResponseModel responseModel = new ResponseModel()
            {
                code = HTTPResponseCode.PartialContent,
                data = response.Body
            };

            Dictionary <string, string> result = new Dictionary <string, string>();

            result.Add("return_code", response.ReturnCode);
            result.Add("return_msg", response.ReturnMsg);

            if (response.ReturnCode == "SUCCESS" && response.ResultCode == "SUCCESS")
            {
                responseModel.code = HTTPResponseCode.Successful;
            }
            else
            {
                responseModel.code = HTTPResponseCode.BadRequest;
                result.Add("err_code", response.ErrCode);
                result.Add("err_code_des", response.ErrCodeDes);
            }
            responseModel.message = JsonConvert.SerializeObject(result);
            return(Json(responseModel));
        }
Exemple #2
0
        // 查询订单
        public async Task <WeChatPayOrderQueryResponse> OrderQuery(string order_sn)
        {
            var req = new WeChatPayOrderQueryRequest
            {
                OutTradeNo = order_sn
            };

            return(await client.ExecuteAsync(req, options.Value));
        }
Exemple #3
0
        public async Task <IActionResult> OrderQuery(string transaction_id, string out_trade_no)
        {
            var request = new WeChatPayOrderQueryRequest()
            {
                TransactionId = transaction_id,
                OutTradeNo    = out_trade_no,
            };
            var response = await _client.ExecuteAsync(request);

            return(Ok(response.Body));
        }
Exemple #4
0
        // 查询订单
        public async Task <OrderResult> Query(Pay_Order order)
        {
            var req = new WeChatPayOrderQueryRequest
            {
                OutTradeNo = order.Order_SN
            };

            logger.LogDebug($"Wepay Query begin with: {order.Id}");
            var res = await client.ExecuteAsync(req, options.Value);

            if (res.ReturnCode == "SUCCESS" && res.ResultCode == "SUCCESS")
            {
                logger.LogDebug($"Wepay Query end with: {order.Id} {res.TradeState}");
                if (order.State == OrderState.Pending)
                {
                    if (res.TradeState == "SUCCESS")
                    {
                        logger.LogDebug($"Wepay Query Paidup with: {order.Id}");
                        order = OrderService.Paidup(
                            order,
                            res.TransactionId,
                            (decimal)(res.TotalFee / 100.0),
                            res.TimeEnd,
                            PayType.Wechat
                            );
                    }
                    else if (res.TradeState == "CLOSED")
                    {
                        order = OrderService.Close(order, PayType.Wechat);
                    }
                    else if (res.TradeState == "REFUND")
                    {
                        order = OrderService.Refund(order, PayType.Wechat);
                    }
                    else if (res.TradeState == "REVOKED")
                    {
                        order = OrderService.Reverse(order, PayType.Wechat);
                    }
                }

                return(new OrderResult
                {
                    Success = true,
                    Order = order
                });
            }

            logger.LogDebug($"Wepay Query end with: {order.Id} FAIL: {res.ErrCode}:{res.ErrCodeDes}");
            return(new OrderResult
            {
                Success = false,
                Error = $"{res.ErrCode}:{res.ErrCodeDes}"
            });
        }
Exemple #5
0
        public async Task <IActionResult> OrderQuery(WeChatPayOrderQueryViewModel viewModel)
        {
            var request = new WeChatPayOrderQueryRequest
            {
                TransactionId = viewModel.TransactionId,
                OutTradeNo    = viewModel.OutTradeNo
            };
            var response = await _client.ExecuteAsync(request, _optionsAccessor.Value);

            return(Ok(response.Body));
        }
        public async Task <IActionResult> OrderQuery(WeChatPayOrderQueryViewModel viewModel)
        {
            var request = new WeChatPayOrderQueryRequest()
            {
                TransactionId = viewModel.TransactionId,
                OutTradeNo    = viewModel.OutTradeNo,
            };
            var response = await _client.ExecuteAsync(request);

            ViewData["response"] = response.Body;
            return(View());
        }