/// <summary> /// 请求结果 /// </summary> protected virtual async Task <RefundResult> RequstResult(WechatpayConfig config, WechatpayRefundParameterBuilder builder) { var response = await Request(config, builder); var result = new WechatpayRefundResult(ConfigProvider, response); WriteLog(config, builder, result); return(await CreateResult(config, builder, result)); }
/// <summary> /// 获取结果 /// </summary> /// <param name="config">支付配置</param> /// <param name="builder">参数生成器</param> /// <param name="result">支付结果</param> protected string GetResult(WechatpayConfig config, WechatpayRefundParameterBuilder builder, WechatpayRefundResult result) { return(new WechatpayParameterBuilder(config) .Add("appId", config.AppId) .Add("timeStamp", Time.GetUnixTimestamp().SafeString()) .Add("nonceStr", Id.Guid()) .Add("signType", config.SignType.Description()) .SignParamName("paySign") .ToJson()); }
/// <summary> /// 创建退款结果 /// </summary> /// <param name="config">支付配置</param> /// <param name="builder">参数生成器</param> /// <param name="result">支付结果</param> protected virtual async Task <RefundResult> CreateResult(WechatpayConfig config, WechatpayRefundParameterBuilder builder, WechatpayRefundResult result) { var success = (await result.ValidateAsync()).IsValid; return(new RefundResult(success, result.GetPrepayId(), result.Raw) { Parameter = builder.ToString(), Message = result.GetReturnMessage(), Result = success ? GetResult(config, builder, result) : null }); }