using System;
using PaySharp.Core;
using PaySharp.Core.Request;
using PaySharp.Core.Utils;
namespace PaySharp.Wechatpay.Response
{
public class AppPayResponse : BaseResponse
{
///
/// 交易类型
///
public string TradeType { get; set; }
///
/// 微信生成的预支付回话标识,用于后续接口调用中使用,该值有效期为2小时
///
public string PrepayId { get; set; }
///
/// 用于唤起App的订单参数
///
public string OrderInfo { get; set; }
internal override void Execute(Merchant merchant, Request request)
{
if (ResultCode == "SUCCESS")
{
var gatewayData = new GatewayData();
gatewayData.Add("appid", merchant.AppId);
gatewayData.Add("partnerid", merchant.MchId);
gatewayData.Add("prepayid", PrepayId);
gatewayData.Add("package", "Sign=WXPay");
gatewayData.Add("noncestr", Util.GenerateNonceStr());
gatewayData.Add("timestamp", DateTime.Now.ToTimeStamp());
var data = $"{gatewayData.ToUrl(false)}&key={merchant.Key}";
var sign = EncryptUtil.MD5(data);
gatewayData.Add("sign", sign);
OrderInfo = gatewayData.ToJson();
}
}
}
}