AppPayResponse.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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 AppPayResponse : 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("partnerid", merchant.MchId);
  28. gatewayData.Add("prepayid", PrepayId);
  29. gatewayData.Add("package", "Sign=WXPay");
  30. gatewayData.Add("noncestr", Util.GenerateNonceStr());
  31. gatewayData.Add("timestamp", DateTime.Now.ToTimeStamp());
  32. var data = $"{gatewayData.ToUrl(false)}&key={merchant.Key}";
  33. var sign = EncryptUtil.MD5(data);
  34. gatewayData.Add("sign", sign);
  35. OrderInfo = gatewayData.ToJson();
  36. }
  37. }
  38. }
  39. }