微信商户支付的参数
与微信服务商支付的参数不同
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ZmjWxApi
{
/// <summary>
/// 微信商户支付的参数
/// 与微信服务商支付的参数不同
/// </summary>
public class WxPayParams : WxPayParam
{
/// <summary>
/// 应用ID
/// 由微信生成的应用ID,全局唯一。请求基础下单接口时请注意APPID的应用属性,例如公众号场景下,需使用应用属性为公众号的APPID
/// 示例值:wxd678efh567hg6787
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("app")]
public string Appid { get; set; }
/// <summary>
/// 直连商户号
/// 直连商户的商户号,由微信支付生成并下发。
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("mch")]
public string Mchid { get; set; }
}
/// <summary>
/// 微信服务商支付中的公共的参数
/// 与微信商户支付的参数不同
/// </summary>
public class WxPayPartnerParams : WxPayParam
{
/// <summary>
/// 服务商应用ID string[1,32] 必填
/// 由微信生成的应用ID,全局唯一。请求基础下单接口时请注意APPID的应用属性,例如公众号场景下,需使用应用属性为公众号的服务号APPID
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("sp_app")]
public string SpAppId { get; set; }
/// <summary>
/// 服务商户号 string[1,32] 必填
/// 服务商户号,由微信支付生成并下发
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("sp_mch")]
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_app")]
public string SubAppId { get; set; }
/// <summary>
/// 子商户号 string[1,32] 必填
/// 子商户的商户号,由微信支付生成并下发。
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
public string SubMchId { get; set; }
}
/// <summary>
/// 微信支付下单时传递的基本公共参数
/// </summary>
public class WxPayParam
{
/// <summary>
/// 商品描述 string[1,127] 必填
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("descript")]
public string Descript { get; set; }
/// <summary>
/// 商户订单号 string[6,32] 必填
/// 商户系统内部订单号,只能是数字、大小写字母_-*且在同一个商户号下唯一。
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("out_trade")]
public string OutTradeNos { get; set; }
/// <summary>
/// 交易结束时间 string[1,64]
/// 订单失效时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,
/// T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区
/// (+08:00表示东八区时间,领先UTC8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,
/// 北京时间2015年5月20日 13点29分35秒。
/// </summary>
//[System.Text.Json.Serialization.JsonPropertyName("time_expire")]
[System.Text.Json.Serialization.JsonIgnore]
public string TimeExpire { get; set; }
/// <summary>
/// 附加数据 string[1,128]
/// 附加数据,在查询API和支付通知中原样返回,可作为自定义参数使用,实际情况下只有支付完成状态才会返回该字段。
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("attachs")]
public string Attachs { get; set; }
/// <summary>
/// 通知地址 string[1,256] 必填
/// 通知URL必须为直接可访问的URL,不允许携带查询串,要求必须为https地址。
/// 格式:URL
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("notify_urls")]
public string NotifyUrls { get; set; }
/// <summary>
/// 订单优惠标记 string[1,32]
/// </summary>
//[System.Text.Json.Serialization.JsonPropertyName("goods_tag")]
[System.Text.Json.Serialization.JsonIgnore]
public string GoodsTag { get; set; }
/// <summary>
/// 子商户号
/// 子商户的商户号,由微信支付生成并下发。
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("support_fapiaoa")]
public bool SupportFapiaoa { get; set; }
/// <summary>
/// 订单金额
/// 订单金额信息
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("amounta")]
public WxPayParamAmount Amounta { get; set; }
/// <summary>
/// 结算信息
/// </summary>
//[System.Text.Json.Serialization.JsonPropertyName("settle_info")]
[System.Text.Json.Serialization.JsonIgnore]
public WxPayParamSettleInfo SettleInfo { get; set; }
/// <summary>
/// 优惠功能
/// </summary>
//[System.Text.Json.Serialization.JsonPropertyName("details")]
[System.Text.Json.Serialization.JsonIgnore]
public WxPayParamDetail Details { get; set; }
/// <summary>
/// 场景信息
/// 支付场景描述
/// </summary>
//[System.Text.Json.Serialization.JsonPropertyName("scene_info")]
[System.Text.Json.Serialization.JsonIgnore]
public WxPayParamSceneInfo SceneInfo { get; set; }
}
/// <summary>
/// 场景信息
/// </summary>
public class WxPayParamSceneInfo
{
/// <summary>
/// 用户终端IP string[1,45] 必填
/// 用户的客户端IP,支持IPv4和IPv6两种格式的IP地址。
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("payer_client_ip")]
public string PayerClientIp { get; set; }
/// <summary>
/// 商户端设备号 string[1,32]
/// 商户端设备号(门店号或收银设备ID)
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("device_id")]
public string DeviceId { get; set; }
/// <summary>
/// 商户门店信息
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("store_info")]
public WxPayParamStoreInfo StoreInfo { get; set; }
}
/// <summary>
/// 商户门店信息
/// </summary>
public class WxPayParamStoreInfo
{
/// <summary>
/// 门店编号 string[1,32] 必填
/// 商户侧门店编号
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("id")]
public string StoreId { get; set; }
/// <summary>
/// 门店名称 string[1,256]
/// 商户侧门店名称
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("name")]
public string Name { get; set; }
/// <summary>
/// 地区编码 string[1,32]
/// 地区编码,详细请见省市区编号对照表。
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("area_code")]
public string AreaCode { get; set; }
/// <summary>
/// 详细地址 string[1,512]
/// 详细的商户门店地址
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("address")]
public string Address { get; set; }
}
/// <summary>
/// 订单金额信息
/// </summary>
public class WxPayParamAmount
{
/// <summary>
/// 总金额 必填
/// 订单总金额,单位为分。
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("total")]
public int Total { get; set; }
/// <summary>
/// 货币类型 string[1,16]
/// CNY:人民币,境内商户号仅支持人民币。
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("currency")]
public string Currency { get; set; }//1-16
}
/// <summary>
/// 结算信息
/// </summary>
public class WxPayParamSettleInfo
{
/// <summary>
/// 是否指定分账
/// 是否指定分账,枚举值
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("profit_sharing")]
public bool ProfitSharing { get; set; }
}
/// <summary>
/// 优惠功能
/// </summary>
public class WxPayParamDetail
{
/// <summary>
/// 订单原价
/// 1、商户侧一张小票订单可能被分多次支付,订单原价用于记录整张小票的交易金额。
/// 2、当订单原价与支付金额不相等,则不享受优惠。
/// 3、该字段主要用于防止同一张小票分多次支付,以享受多次优惠的情况,正常支付订单不必上传此参数。
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("cost_price")]
public int CostPrice { get; set; }
/// <summary>
/// 商品小票ID string[1,32]
/// 商家小票ID
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("invoice_id")]
public int InvoiceId { get; set; }
/// <summary>
/// 单品列表
/// 单品列表信息
/// 条目个数限制:【1,6000】
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("goods_detail")]
public WxPayParamGoodsDetail[] GoodsDetail { get; set; }
}
/// <summary>
/// 单品列表
/// </summary>
public class WxPayParamGoodsDetail
{
/// <summary>
/// 商户侧商品编码 string[1,32] 必填
/// 由半角的大小写字母、数字、中划线、下划线中的一种或几种组成。
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("merchant_goods_id")]
public string MerchantGoodsId { get; set; }
/// <summary>
/// 微信支付商品编码 string[1,32]
/// 微信支付定义的统一商品编号(没有可不传)
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("wechatpay_goods_id")]
public string WechatpayGoodsId { get; set; }
/// <summary>
/// 商品名称 string[1,256]
/// 商品的实际名称
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("goods_name")]
public string GoodsName { get; set; }
/// <summary>
/// 商品数量 必填
/// 用户购买的数量
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("quantity")]
public int Quantity { get; set; }
/// <summary>
/// 商品单价 必填
/// 单位为:分。如果商户有优惠,需传输商户优惠后的单价(例如:用户对一笔100元的订单使用了
/// 商场发的纸质优惠券100-50,则活动商品的单价应为原单价-50)
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("unit_price")]
public int UnitPrice { get; set; }
}
}