WeChatPayToolsShortUrlRequest.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using System.Collections.Generic;
  2. using Essensoft.Paylink.WeChatPay.V2.Response;
  3. namespace Essensoft.Paylink.WeChatPay.V2.Request
  4. {
  5. /// <summary>
  6. /// 转换短链接 (普通商户 / 服务商)
  7. /// </summary>
  8. public class WeChatPayToolsShortUrlRequest : IWeChatPayRequest<WeChatPayToolsShortUrlResponse>
  9. {
  10. /// <summary>
  11. /// URL链接
  12. /// </summary>
  13. public string LongUrl { get; set; }
  14. #region IWeChatPayRequest Members
  15. private string requestUrl = "https://api.mch.weixin.qq.com/tools/shorturl";
  16. public string GetRequestUrl()
  17. {
  18. return requestUrl;
  19. }
  20. public void SetRequestUrl(string url)
  21. {
  22. requestUrl = url;
  23. }
  24. public IDictionary<string, string> GetParameters()
  25. {
  26. var parameters = new WeChatPayDictionary
  27. {
  28. { "long_url", LongUrl }
  29. };
  30. return parameters;
  31. }
  32. public void PrimaryHandler(WeChatPayDictionary sortedTxtParams, WeChatPaySignType signType, WeChatPayOptions options)
  33. {
  34. sortedTxtParams.Add(WeChatPayConsts.nonce_str, WeChatPayUtility.GenerateNonceStr());
  35. sortedTxtParams.Add(WeChatPayConsts.appid, options.AppId);
  36. sortedTxtParams.Add(WeChatPayConsts.sub_appid, options.SubAppId);
  37. sortedTxtParams.Add(WeChatPayConsts.mch_id, options.MchId);
  38. sortedTxtParams.Add(WeChatPayConsts.sub_mch_id, options.SubMchId);
  39. sortedTxtParams.Add(WeChatPayConsts.sign, WeChatPaySignature.SignWithKey(sortedTxtParams, options.APIKey, signType));
  40. }
  41. #endregion
  42. }
  43. }