WeChatPayPaPayPartnerQueryContractRequest.cs 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. using System.Collections.Generic;
  2. using Essensoft.AspNetCore.Payment.WeChatPay.Response;
  3. using Essensoft.AspNetCore.Payment.WeChatPay.Utility;
  4. namespace Essensoft.AspNetCore.Payment.WeChatPay.Request
  5. {
  6. /// <summary>
  7. /// 微信代扣 - 乘车码代扣 - 查询签约关系
  8. /// </summary>
  9. public class WeChatPayPaPayPartnerQueryContractRequest : IWeChatPayRequest<WeChatPayPaPayPartnerQueryContractResponse>
  10. {
  11. /// <summary>
  12. /// 子商户应用号
  13. /// </summary>
  14. public string SubAppId { get; set; }
  15. /// <summary>
  16. /// 子商户号
  17. /// </summary>
  18. public string SubMchId { get; set; }
  19. /// <summary>
  20. /// 委托代扣协议id
  21. /// </summary>
  22. public string ContractId { get; set; }
  23. /// <summary>
  24. /// 模板id
  25. /// </summary>
  26. public string PlanId { get; set; }
  27. /// <summary>
  28. /// 签约协议号
  29. /// </summary>
  30. public string ContractCode { get; set; }
  31. /// <summary>
  32. /// 版本号
  33. /// </summary>
  34. public string Version { get; set; }
  35. #region IWeChatPayRequest Members
  36. public string GetRequestUrl()
  37. {
  38. return "https://api.mch.weixin.qq.com/papay/partner/querycontract";
  39. }
  40. public IDictionary<string, string> GetParameters()
  41. {
  42. var parameters = new WeChatPayDictionary
  43. {
  44. { "sub_appid", SubAppId },
  45. { "sub_mch_id", SubMchId },
  46. { "contract_id", ContractId },
  47. { "plan_id", PlanId },
  48. { "contract_code", ContractCode },
  49. { "version", Version },
  50. };
  51. return parameters;
  52. }
  53. public WeChatPaySignType GetSignType()
  54. {
  55. return WeChatPaySignType.MD5;
  56. }
  57. public void PrimaryHandler(WeChatPayOptions options, WeChatPaySignType signType, WeChatPayDictionary sortedTxtParams)
  58. {
  59. sortedTxtParams.Add(WeChatPayConsts.nonce_str, WeChatPayUtility.GenerateNonceStr());
  60. sortedTxtParams.Add(WeChatPayConsts.appid, options.AppId);
  61. sortedTxtParams.Add(WeChatPayConsts.mch_id, options.MchId);
  62. sortedTxtParams.Add(WeChatPayConsts.timestamp, WeChatPayUtility.GetTimeStamp());
  63. sortedTxtParams.Add(WeChatPayConsts.sign, WeChatPaySignature.SignWithKey(sortedTxtParams, options.Key, signType));
  64. }
  65. public bool GetNeedCheckSign()
  66. {
  67. return false;
  68. }
  69. #endregion
  70. }
  71. }