github.com/chanxuehong/wechat@v0.0.0-20230222024006-36f0325263cd/mp/card/card_struct.go (about)

     1  package card
     2  
     3  const (
     4  	// 卡券类型
     5  	CardTypeGeneralCoupon = "GENERAL_COUPON" // 优惠券
     6  	CardTypeGroupon       = "GROUPON"        // 团购券
     7  	CardTypeCash          = "CASH"           // 代金券
     8  	CardTypeDiscount      = "DISCOUNT"       // 折扣券
     9  	CardTypeGift          = "GIFT"           // 礼品券
    10  	CardTypeMemberCard    = "MEMBER_CARD"    // 会员卡
    11  	CardTypeMeetingTicket = "MEETING_TICKET" // 会议门票
    12  	CardTypeScenicTicket  = "SCENIC_TICKET"  // 景区门票
    13  	CardTypeMovieTicket   = "MOVIE_TICKET"   // 电影票
    14  	CardTypeBoardingPass  = "BOARDING_PASS"  // 飞机票
    15  )
    16  
    17  // 卡券数据结构
    18  type Card struct {
    19  	CardType string `json:"card_type,omitempty"`
    20  
    21  	GeneralCoupon *GeneralCoupon `json:"general_coupon,omitempty"`
    22  	Groupon       *Groupon       `json:"groupon,omitempty"`
    23  	Cash          *Cash          `json:"cash,omitempty"`
    24  	Discount      *Discount      `json:"discount,omitempty"`
    25  	Gift          *Gift          `json:"gift,omitempty"`
    26  	MemberCard    *MemberCard    `json:"member_card,omitempty"`
    27  	MeetingTicket *MeetingTicket `json:"meeting_ticket,omitempty"`
    28  	ScenicTicket  *ScenicTicket  `json:"scenic_ticket,omitempty"`
    29  	MovieTicket   *MovieTicket   `json:"movie_ticket,omitempty"`
    30  	BoardingPass  *BoardingPass  `json:"boarding_pass,omitempty"`
    31  }
    32  
    33  // 优惠券
    34  type GeneralCoupon struct {
    35  	BaseInfo      *CardBaseInfo `json:"base_info,omitempty"`
    36  	AdvancedInfo  *AdvancedInfo `json:"advanced_info,omitempty"`
    37  	DefaultDetail string        `json:"default_detail,omitempty"` // 优惠券专用, 填写优惠详情
    38  }
    39  
    40  // 团购券
    41  type Groupon struct {
    42  	BaseInfo     *CardBaseInfo `json:"base_info,omitempty"`
    43  	AdvancedInfo *AdvancedInfo `json:"advanced_info,omitempty"`
    44  	DealDetail   string        `json:"deal_detail,omitempty"` // 团购券专用,团购详情
    45  }
    46  
    47  // 代金券
    48  type Cash struct {
    49  	BaseInfo     *CardBaseInfo `json:"base_info,omitempty"`
    50  	AdvancedInfo *AdvancedInfo `json:"advanced_info,omitempty"`
    51  	LeastCost    *int          `json:"least_cost,omitempty"`  // 代金券专用, 表示起用金额(单位为分)
    52  	ReduceCost   *int          `json:"reduce_cost,omitempty"` // 代金券专用, 表示减免金额(单位为分)
    53  }
    54  
    55  // 折扣券
    56  type Discount struct {
    57  	BaseInfo     *CardBaseInfo `json:"base_info,omitempty"`
    58  	AdvancedInfo *AdvancedInfo `json:"advanced_info,omitempty"`
    59  	Discount     *int          `json:"discount,omitempty"` // 折扣券专用, 表示打折额度(百分比). 填30 就是七折.
    60  }
    61  
    62  // 礼品券
    63  type Gift struct {
    64  	BaseInfo     *CardBaseInfo `json:"base_info,omitempty"`
    65  	AdvancedInfo *AdvancedInfo `json:"advanced_info,omitempty"`
    66  	Gift         string        `json:"gift,omitempty"` // 礼品券专用, 表示礼品名字
    67  }
    68  
    69  // 会员卡
    70  type MemberCard struct {
    71  	BaseInfo     *CardBaseInfo `json:"base_info,omitempty"`
    72  	AdvancedInfo *AdvancedInfo `json:"advanced_info,omitempty"`
    73  
    74  	Prerogative       string                 `json:"prerogative,omitempty"`       // 会员卡特权说明
    75  	SupplyBonus       *bool                  `json:"supply_bonus,omitempty"`      // 显示积分,填写true或false,如填写true,积分相关字段均为必填
    76  	BonusURL          string                 `json:"bonus_url,omitempty"`         // 设置跳转外链查看积分详情。仅适用于积分无法通过激活接口同步的情况下使用该字段。
    77  	SupplyBalance     *bool                  `json:"supply_balance,omitempty"`    // 是否支持储值,填写true或false。如填写true,储值相关字段均为必填。
    78  	BalanceURL        string                 `json:"balance_url,omitempty"`       // 设置跳转外链查看余额详情。仅适用于余额无法通过激活接口同步的情况下使用该字段。
    79  	BonusClearedRules string                 `json:"bonus_cleared,omitempty"`     // 积分清零规则。
    80  	BonusRules        string                 `json:"bonus_rules,omitempty"`       // 积分规则。
    81  	BalanceRules      string                 `json:"balance_rules,omitempty"`     // 储值说明。
    82  	ActivateURL       string                 `json:"activate_url,omitempty"`      // 激活会员卡的url。
    83  	NeedPushOnView    *bool                  `json:"need_push_on_view,omitempty"` // 填写true为用户点击进入会员卡时推送事件,默认为false。
    84  	CustomField1      *MemberCardCustomField `json:"custom_field1,omitempty"`     // 自定义会员信息类目,会员卡激活后显示。
    85  	CustomField2      *MemberCardCustomField `json:"custom_field2,omitempty"`     // 自定义会员信息类目,会员卡激活后显示。
    86  	CustomField3      *MemberCardCustomField `json:"custom_field3,omitempty"`     // 自定义会员信息类目,会员卡激活后显示。
    87  	CustomCell1       *MemberCardCustomCell  `json:"custom_cell1,omitempty"`      // 自定义会员信息类目,会员卡激活后显示。
    88  }
    89  
    90  type MemberCardCustomField struct {
    91  	// 会员信息类目名称:
    92  	//
    93  	// FIELD_NAME_TYPE_LEVEL        等级
    94  	// FIELD_NAME_TYPE_COUPON       优惠券
    95  	// FIELD_NAME_TYPE_STAMP        印花
    96  	// FIELD_NAME_TYPE_DISCOUNT     折扣
    97  	// FIELD_NAME_TYPE_ACHIEVEMEN   成就
    98  	// FIELD_NAME_TYPE_MILEAGE      里程
    99  	NameType string `json:"name_type,omitempty"`
   100  	URL      string `json:"url,omitempty"` // 点击类目跳转外链url
   101  }
   102  
   103  type MemberCardCustomCell struct {
   104  	Name string `json:"name,omitempty"` // 入口名称。
   105  	Tips string `json:"tips,omitempty"` // 入口右侧提示语,6个汉字内。
   106  	URL  string `json:"url,omitempty"`  // 入口跳转链接。
   107  }
   108  
   109  // 会议门票
   110  type MeetingTicket struct {
   111  	BaseInfo      *CardBaseInfo `json:"base_info,omitempty"`
   112  	AdvancedInfo  *AdvancedInfo `json:"advanced_info,omitempty"`
   113  	MeetingDetail string        `json:"meeting_detail,omitempty"` // 会议详情
   114  	MapURL        string        `json:"map_url,omitempty"`        // 会议导览图
   115  }
   116  
   117  // 景区门票
   118  type ScenicTicket struct {
   119  	BaseInfo     *CardBaseInfo `json:"base_info,omitempty"`
   120  	AdvancedInfo *AdvancedInfo `json:"advanced_info,omitempty"`
   121  	TicketClass  string        `json:"ticket_class,omitempty"` // 票类型, 例如平日全票, 套票等
   122  	GuideURL     string        `json:"guide_url,omitempty"`    // 导览图url
   123  }
   124  
   125  // 电影票
   126  type MovieTicket struct {
   127  	BaseInfo     *CardBaseInfo `json:"base_info,omitempty"`
   128  	AdvancedInfo *AdvancedInfo `json:"advanced_info,omitempty"`
   129  	Detail       string        `json:"detail,omitempty"` // 电影票详情
   130  }
   131  
   132  // 飞机票
   133  type BoardingPass struct {
   134  	BaseInfo      *CardBaseInfo `json:"base_info,omitempty"`
   135  	AdvancedInfo  *AdvancedInfo `json:"advanced_info,omitempty"`
   136  	From          string        `json:"from,omitempty"`           // 起点, 上限为18 个汉字
   137  	To            string        `json:"to,omitempty"`             // 终点, 上限为18 个汉字
   138  	Flight        string        `json:"flight,omitempty"`         // 航班
   139  	Gate          string        `json:"gate,omitempty"`           // 登机口. 如发生登机口变更, 建议商家实时调用该接口变更
   140  	CheckinURL    string        `json:"check_in_url,omitempty"`   // 在线值机的链接
   141  	AirModel      string        `json:"air_model,omitempty"`      // 机型, 上限为8 个汉字
   142  	DepartureTime int64         `json:"departure_time,omitempty"` // 起飞时间. Unix 时间戳格式
   143  	LandingTime   int64         `json:"landing_time,omitempty"`   // 降落时间. Unix 时间戳格式
   144  	BoardingTime  string        `json:"boarding_time,omitempty"`  // 登机时间, 只显示"时分"不显示日期, 按时间戳格式填写. 如发生登机时间变更, 建议商家实时调用该接口变更.
   145  }