using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ZmjWxApi
{
/// <summary>
/// 交易类型
/// </summary>
public enum EWxTradeType
{
/// <summary>
/// 公众号支付
/// </summary>
JSAPI,
/// <summary>
/// 扫码支付
/// </summary>
NATIVE,
/// <summary>
/// APP支付
/// </summary>
APP,
/// <summary>
/// 付款码支付
/// </summary>
MICROPAY,
/// <summary>
/// H5支付
/// </summary>
MWEB,
/// <summary>
/// 刷脸支付
/// </summary>
FACEPAY
}
/// <summary>
/// 交易状态
/// </summary>
public enum EWxTradeState
{
/// <summary>
/// 支付成功
/// </summary>
SUCCESS,
/// <summary>
/// 转入退款
/// </summary>
REFUND,
/// <summary>
/// 未支付
/// </summary>
NOTPAY,
/// <summary>
/// 已关闭
/// </summary>
CLOSED,
/// <summary>
/// 已撤销(仅付款码支付会返回)
/// </summary>
REVOKED,
/// <summary>
/// 用户支付中(仅付款码支付会返回)
/// </summary>
USERPAYING,
/// <summary>
/// 支付失败(仅付款码支付会返回)
/// </summary>
PAYERROR,
}
/// <summary>
/// 优惠范围
/// </summary>
public enum EWxPromotionScope
{
/// <summary>
/// 全场代金券
/// </summary>
GLOBAL,
/// <summary>
/// 单品优惠
/// </summary>
SINGLE,
}
/// <summary>
/// 优惠类型
/// </summary>
public enum EWxPromotionType
{
/// <summary>
/// 充值型代金券
/// </summary>
CASH,
/// <summary>
/// 免充值型代金券
/// </summary>
NOCASH,
}
/// <summary>
/// 微信支付结果通知中的参数
/// </summary>
public class WxNotifyParam5
{
/// <summary>
/// 通知的唯一ID string[1,36] 必填
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("i")]
public string NotifyId { get; set; }
/// <summary>
/// 通知创建的时间 string[1,32] 必填
/// 通知创建的时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss.表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示北京时间2015年05月20日13点29分35秒。
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("crte_time")]
public string CreateTimeA { get; set; }
/// <summary>
/// 通知的类型 string[1,32] 必填
/// 支付成功通知的类型为TRANSACTION.SUCCESS
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("eent_type")]
public string EventTy { get; set; }
/// <summary>
/// 通知的资源数据类型 string[1,32] 必填
/// 支付成功通知为encrypt-resource
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("resoure_type")]
public string ResourceTy { get; set; }
/// <summary>
/// 通知资源数据 必填
/// json格式,
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("resouce")]
public WxNotifyResource Resources { get; set; }
/// <summary>
/// 回调摘要 string[1,64] 必填
/// 如:支付成功
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("summary")]
public string Summarys { get; set; }
}
/// <summary>
/// 通知资源数据 json格式,
/// </summary>
public class WxNotifyResource
{
/// <summary>
/// 对开启结果数据进行加密的加密算法,目前只支持AEAD_AES_256_GCM
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("algorithm")]
public string Algorithm { get; set; }
/// <summary>
/// Base64编码后的开启/停用结果数据密文
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("cipertext")]
public string CipherTexts { get; set; }
/// <summary>
/// 附加数据
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("associated_dataa")]
public string AssociatedDataAll { get; set; }
/// <summary>
/// 原始回调类型,为transaction
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("originaltypef")]
public string OriginalType { get; set; }
/// <summary>
/// 加密使用的随机串
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("nonc")]
public string Nonce { get; set; }
}
/// <summary>
/// 微信商户的微信通知内容
/// </summary>
public class WxPayOrderMessage : WxOrderMessage
{
/// <summary>
/// 应用ID
/// 由微信生成的应用ID,全局唯一。请求基础下单接口时请注意APPID的应用属性,例如公众号场景下,需使用应用属性为公众号的APPID
/// 示例值:wxd678efh567hg6787
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public string AppId { get; set; }
/// <summary>
/// 直连商户号
/// 直连商户的商户号,由微信支付生成并下发。
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("mchid")]
public string MchId { get; set; }
/// <summary>
/// 支付者信息
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("payer")]
public WxPayerParam Payer { get; set; }
}
/// <summary>
/// 微信服务商的微信通知内容
/// </summary>
public class WxPartnerOrderMessage : WxOrderMessage
{
/// <summary>
/// 服务商应用ID string[1,32] 必填
/// 由微信生成的应用ID,全局唯一。请求基础下单接口时请注意APPID的应用属性,例如公众号场景下,需使用应用属性为公众号的服务号APPID
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("sp_appid")]
public string SpAppid { get; set; }
/// <summary>
/// 服务商户号 string[1,32] 必填
/// 服务商户号,由微信支付生成并下发
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("sp_mchid")]
public string SpMchid { get; set; }
/// <summary>
/// 子商户应用ID string[1,32]
/// 子商户申请的应用ID,全局唯一。请求基础下单接口时请注意APPID的应用属性,例如公众号场景下,需使用应用属性为公众号的APPID
/// 若sub_openid有传的情况下,sub_appid必填,且sub_appid需与sub_openid对应
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("sub_appid")]
public string SubAppid { get; set; }
/// <summary>
/// 子商户号 string[1,32] 必填
/// 子商户的商户号,由微信支付生成并下发。
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
public string SubMchid { get; set; }
/// <summary>
/// 支付者信息
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("payer")]
public WxPartnerPayerParam Payer { get; set; }
}
/// <summary>
/// 优惠功能
/// 优惠功能,享受优惠时返回该字段。
/// </summary>
public class WxNotifyPromotion
{
/// <summary>
/// 券ID
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("coupon_id")]
public string CouponId { get; set; }
/// <summary>
/// 优惠名称(非必须)1-64
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("name")]
public string Name { get; set; }
/// <summary>
/// 优惠范围(非必须)
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("scope")]
public WxPromotionScope PromotionScope { get; set; }
/// <summary>
/// 优惠类型(非必须)
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("type")]
public WxPromotionType PromotionType { get; set; }
/// <summary>
/// 优惠券面额
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("amount")]
public int Amount { get; set; }
/// <summary>
/// 活动ID(非必须)1-32
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("stock_id")]
public string StockId { get; set; }
/// <summary>
/// 微信出资(非必须)
/// 微信出资,单位为分
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("wechatpay_contribute")]
public int WechatpayContribute { get; set; }
/// <summary>
/// 商户出资(非必须)
/// 商户出资,单位为分
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("merchant_contribute")]
public int MerchantContribute { get; set; }
/// <summary>
/// 其他出资,单位为分(非必须)
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("other_contribute")]
public int OtherContribute { get; set; }
/// <summary>
/// 优惠币种(非必须)
/// CNY:人民币,境内商户号仅支持人民币。
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("currency")]
public string Currency { get; set; }
/// <summary>
/// 单品列表(非必须)
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("goods_detail")]
public WxNotifyPromotionGoods[] Goods;
}
/// <summary>
/// 优惠单品列表
/// </summary>
public class WxNotifyPromotionGoods
{
/// <summary>
/// 商品编码 1-32
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("goods_id")]
public string Id { get; set; }
/// <summary>
/// 商品个数
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("quantity")]
public int Quantity { get; set; }
/// <summary>
/// 商品单价,单位为分
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("unit_price")]
public int UnitPrice { get; set; }
/// <summary>
/// 商品优惠金额
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("discount_amount")]
public int DiscountAmount { get; set; }
/// <summary>
/// 商品的备注(非必须)1-128
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("goods_remark")]
public string Remark { get; set; }
}
/// <summary>
/// 支付场景信息
/// </summary>
public class WxNotifySceneInfo
{
/// <summary>
/// 微信用户的设备编号,识别不同用户的不同设备
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("device_id")]
public string DeviceId { get; set; }
}
/// <summary>
/// 微信单次交易结果
/// </summary>
public class WxNotifyAmount
{
/// <summary>
/// 用户支付金额,单位为分。必填
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("payer_total")]
public int PayerTotal { get; set; }
/// <summary>
/// 订单总金额,单位为分 必填
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("total")]
public int Total { get; set; }
/// <summary>
/// 订单币种:CNY string[1,16] 必填
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("currency")]
public string Currency { get; set; }
/// <summary>
/// 用户支付币种:CNY string[1,16] 必填
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("payer_currency")]
public string PayerCurrency { get; set; }
}
}