PublicPayResponse.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using System;
  2. using PaySharp.Core;
  3. using PaySharp.Core.Request;
  4. using PaySharp.Core.Utils;
  5. namespace PaySharp.Wechatpay.Response
  6. {
  7. public class PublicPayResponse : BaseResponse
  8. {
  9. /// <summary>
  10. /// 交易类型
  11. /// </summary>
  12. public string TradeType { get; set; }
  13. /// <summary>
  14. /// 微信生成的预支付回话标识,用于后续接口调用中使用,该值有效期为2小时
  15. /// </summary>
  16. public string PrepayId { get; set; }
  17. /// <summary>
  18. /// 用于唤起App的订单参数
  19. /// </summary>
  20. public string OrderInfo { get; set; }
  21. internal override void Execute<TModel, TResponse>(Merchant merchant, Request<TModel, TResponse> request)
  22. {
  23. if (ResultCode == "SUCCESS")
  24. {
  25. var gatewayData = new GatewayData();
  26. gatewayData.Add("appId", merchant.AppId);
  27. gatewayData.Add("timeStamp", DateTime.Now.ToTimeStamp());
  28. gatewayData.Add("nonceStr", Util.GenerateNonceStr());
  29. gatewayData.Add("package", $"prepay_id={PrepayId}");
  30. gatewayData.Add("signType", "MD5");
  31. var data = $"{gatewayData.ToUrl(false)}&key={merchant.Key}";
  32. var sign = EncryptUtil.MD5(data);
  33. gatewayData.Add("paySign", sign);
  34. OrderInfo = gatewayData.ToJson();
  35. }
  36. }
  37. }
  38. }