/// <summary>
        /// 发起方迪支付退款
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        async Task LaunchWechatRefund(ProcessAfterSaleServiceContext context)
        {
            var afterSaleOrderDetails = context.AfterSaleDetails;

            var fanDiPayBiz = new FangDiPayBiz();

            var refundRequest = new DoRefundRequestDto()
            {
                Refund_Fee = Convert.ToInt32(context.Request.RefundFee * 100).ToString(),
                Trade_No   = context.TransactionFlowing.OutTradeNo,
                Refund_No  = $"SHTKSN_{GetRandomString(10)}{DateTime.Now.ToString("yyyyMMddHHmmss")}",
                Reason     = "售后退款"
            };

            Logger.Info($"(LaunchWechatRefund)-方迪支付退款请求:{JsonConvert.SerializeObject(refundRequest)}");

            var result = await fanDiPayBiz.RefundAsync(refundRequest);

            Logger.Info($"(LaunchWechatRefund)-方迪支付退款响应:{JsonConvert.SerializeObject(result)}");

            context.AfterSaleRefund.OutRefundNo = refundRequest.Refund_No;

            if (result?.ResultCode == "-1")
            {
                context.AfterSaleRefund.Status = AfterSaleRefundStatusEnum.Failed.ToString();
            }
            else
            {
                context.AfterSaleRefund.Status = AfterSaleRefundStatusEnum.Success.ToString();
            }
        }
        public async Task <IActionResult> FAQsWechatPayAsync([FromBody] FAQsWechatPayRequest request)
        {
            Common.Helper.Logger.Debug($"FAQsWechatPayRequest-传入参数-UserID-{UserID}-{JsonConvert.SerializeObject(request)}");
            var fdPayBiz  = new FangDiPayBiz();
            var userBiz   = new UserBiz();
            var userModel = userBiz.GetUser(UserID);

            if (userModel == null)
            {
                return(Failed(ErrorCode.DataBaseError, "无法获取用户信息!"));
            }
            //if (string.IsNullOrWhiteSpace(request.Code))
            //{
            //    if (string.IsNullOrWhiteSpace(userModel.WechatOpenid))
            //    {
            //        return Failed(ErrorCode.DataBaseError, "用户OpenId为空,请传Code参数!");
            //    }
            //}
            //else
            //{
            //    var fdResponse = await fdPayBiz.GetOpenID(new GetOpenIDRequestDto { Code = request.Code });
            //    if (string.IsNullOrWhiteSpace(fdResponse.Open_Id))
            //    {
            //        return Failed(ErrorCode.DataBaseError, "无法获取用户OpenID!");
            //    }
            //    Common.Helper.Logger.Debug($"FAQsWechatPayRequest-获取openid-UserID-{UserID}-获取的openid({fdResponse.Open_Id})-用户表的openid({userModel.WechatOpenid})");
            //    if (string.IsNullOrWhiteSpace(fdResponse.Open_Id) || !userModel.WechatOpenid.Equals(fdResponse.Open_Id))
            //    {
            //        userModel.WechatOpenid = fdResponse.Open_Id;
            //        await userBiz.UpdateAsync(userModel);
            //    }
            //}
            if (string.IsNullOrWhiteSpace(userModel.WechatOpenid))
            {
                return(Failed(ErrorCode.DataBaseError, "用户无OpenID!"));
            }

            var questionBiz   = new FaqsQuestionBiz();
            var questionModel = await questionBiz.GetModelAsync(request.QuestionGuid);

            if (questionModel == null)
            {
                return(Failed(ErrorCode.DataBaseError, "QuestionGuid无法找到数据,请检查!"));
            }
            //交易流水数据
            var newTFModel = new TransactionFlowingModel
            {
                TransactionFlowingGuid = Guid.NewGuid().ToString("N"),
                //流水号
                TransactionNumber = $"FAQSSN_{GetRandomString(10, false, false, true, false, "")}{DateTime.Now.ToString("yyyyMMddHHmmss")}",
                //微信标识订单流水号
                OutTradeNo        = $"FAQSPQ_{GetRandomString(10, false, false, true, false, "")}{DateTime.Now.ToString("yyyyMMddHHmmss")}",
                Channel           = "微信支付",
                ChannelNumber     = "2",
                PayAccount        = userModel.WechatOpenid,
                Amount            = questionModel.RewardIntergral,
                OutRefundNo       = string.Empty,
                TransactionStatus = TransactionStatusEnum.WaitForPayment.ToString(),
                Remarks           = string.Empty,
                OrgGuid           = string.Empty,
                CreatedBy         = UserID,
                LastUpdatedBy     = UserID,
            };
            var isSuccess = await new TransactionFlowingBiz().UpdateFlowingAndQuestionAsync(newTFModel, questionModel);

            if (!isSuccess)
            {
                return(Failed(ErrorCode.DataBaseError, "流水生成失败!"));
            }
            //await PayCallBackTestAsync(newTFModel.OutTradeNo);
            var fdXDResponsed = await fdPayBiz.OrdersPay(new OrdersPayRequestDto { Trade_No = newTFModel.OutTradeNo, Amount = (Convert.ToInt32(newTFModel.Amount)).ToString(), Open_Id = userModel.WechatOpenid });

            return(Success(fdXDResponsed));
        }