示例#1
0
        public async Task <IActionResult> RefundQuery(RefundQueryModel refundQuery)
        {
            if (string.IsNullOrWhiteSpace(refundQuery.NonceStr))
            {
                refundQuery.NonceStr = TenPayV3Util.GetNoncestr();
            }
            if (string.IsNullOrWhiteSpace(refundQuery.OutTradeNo) &&
                string.IsNullOrWhiteSpace(refundQuery.TransactionId) &&
                string.IsNullOrWhiteSpace(refundQuery.OutRefundNo) &&
                string.IsNullOrWhiteSpace(refundQuery.RefundId))
            {
                return(BadRequest("需要OutTradeNo,TransactionId,OutRefundNo,RefundId之一"));
            }

            refundQuery.SignType = "MD5";

            TenPayV3RefundQueryRequestData dataInfo = new TenPayV3RefundQueryRequestData(
                appId: TenPyConfigRead.AppId,
                mchId: TenPyConfigRead.MchId,
                key: TenPyConfigRead.Key,
                nonceStr: refundQuery.NonceStr,
                deviceInfo: refundQuery.DeviceInfo,
                transactionId: refundQuery.TransactionId,
                outTradeNo: refundQuery.OutTradeNo,
                outRefundNo: refundQuery.OutRefundNo,
                refundId: refundQuery.RefundId,
                offset: refundQuery.Offset
                );

            var result = await TenPayV3.RefundQueryAsync(dataInfo);

            var log = _logger.CreateLogger("查询退款");

            if (result.return_code == "FAIL")
            {
                log.LogError($"商家订单号(OutTradeNo):{refundQuery.OutTradeNo}   通讯标记(return_code):{result.return_code}  {result.return_msg}");
            }
            if (result.result_code == "FAIL")
            {
                log.LogError($"商家订单号(OutTradeNo):{refundQuery.OutTradeNo}   业务结果(result_code):{result.result_code}\n{result.err_code}:{result.err_code_des}");
            }
            else if (result.result_code == "SUCCESS")
            {
                log.LogInformation($"商家订单号(OutTradeNo):{refundQuery.OutTradeNo}  业务结果(result_code):{result.result_code}");
            }
            return(Ok(new
            {
                respond = result,
                request = refundQuery
            }));
        }