public Task <WeChatPayDictionary> ExecuteAsync(IWeChatPayCallRequest request, string optionsName) { var options = _optionsSnapshotAccessor.Get(optionsName); var sortedTxtParams = new WeChatPayDictionary(request.GetParameters()); if (request is WeChatPayAppCallPaymentRequest) { if (string.IsNullOrEmpty(sortedTxtParams.GetValue(appid))) { sortedTxtParams.Add(appid, options.AppId); } if (string.IsNullOrEmpty(sortedTxtParams.GetValue(partnerid))) { sortedTxtParams.Add(partnerid, options.MchId); } sortedTxtParams.Add(noncestr, Guid.NewGuid().ToString("N")); sortedTxtParams.Add(timestamp, WeChatPayUtility.GetTimeStamp()); sortedTxtParams.Add(sign, WeChatPaySignature.SignWithKey(sortedTxtParams, options.Key)); } else if (request is WeChatPayLiteAppCallPaymentRequest || request is WeChatPayH5CallPaymentRequest) { if (string.IsNullOrEmpty(sortedTxtParams.GetValue(appId))) { sortedTxtParams.Add(appId, options.AppId); } sortedTxtParams.Add(timeStamp, WeChatPayUtility.GetTimeStamp()); sortedTxtParams.Add(nonceStr, Guid.NewGuid().ToString("N")); sortedTxtParams.Add(signType, SIGN_TYPE_MD5); sortedTxtParams.Add(paySign, WeChatPaySignature.SignWithKey(sortedTxtParams, options.Key)); } return(Task.FromResult(sortedTxtParams)); }
public Task <WeChatPayDictionary> ExecuteAsync(IWeChatPayCallRequest request) { return(ExecuteAsync(request, null)); }