Documentation ¶
Overview ¶
微信卡券接口
Index ¶
- Constants
- func Create(clt *mp.Client, card *Card) (cardId string, err error)
- func Delete(clt *mp.Client, cardId string) (err error)
- func ModifyStock(clt *mp.Client, cardId string, increaseNum int) (err error)
- func Sign(strs []string) (signature string)
- func Update(clt *mp.Client, cardId string, card *Card) (sendCheck bool, err error)
- type BatchGetQuery
- type BatchGetResult
- type BoardingPass
- type Card
- type CardBaseInfo
- type CardNotPassCheckEvent
- type CardPassCheckEvent
- type Cash
- type Color
- type DateInfo
- type Discount
- type GeneralCoupon
- type Gift
- type Groupon
- type MeetingTicket
- type MemberCard
- type MemberCardCustomCell
- type MemberCardCustomField
- type MovieTicket
- type SKU
- type ScenicTicket
- type UserConsumeCardEvent
- type UserDelCardEvent
- type UserEnterSessionFromCardEvent
- type UserGetCardEvent
- type UserViewCardEvent
Constants ¶
View Source
const ( // 卡券Code展示类型 CodeTypeText = "CODE_TYPE_TEXT" // 文本 CodeTypeBarCode = "CODE_TYPE_BARCODE" // 一维码 CodeTypeQRCode = "CODE_TYPE_QRCODE" // 二维码 CodeTypeOnlyBarCode = "CODE_TYPE_ONLY_BARCODE" // 一维码无code显示 CodeTypeOnlyQRCode = "CODE_TYPE_ONLY_QRCODE" // 二维码无code显示 )
View Source
const ( // 卡券的状态 CardStatusNotVerify = "CARD_STATUS_NOT_VERIFY" // 待审核 CardStatusVerifyFail = "CARD_STATUS_VERIFY_FALL" // 审核失败 CardStatusVerifyOk = "CARD_STATUS_VERIFY_OK" // 通过审核 CardStatusUserDelete = "CARD_STATUS_USER_DELETE" // 卡券被用户删除 CardStatusUserDispatch = "CARD_STATUS_USER_DISPATCH" // 在公众平台投放过的卡券 )
View Source
const ( // DateInfo类型 DateInfoTypeFixTimeRange = "DATE_TYPE_FIX_TIME_RANGE" // 表示固定日期区间 DateInfoTypeFixTerm = "DATE_TYPE_FIX_TERM" // 表示固定时长(自领取后按天算) DateInfoTypePermanent = "DATE_TYPE_PERMANENT" // 表示永久有效(会员卡类型专用) )
View Source
const ( // 卡券类型 CardTypeGeneralCoupon = "GENERAL_COUPON" // 优惠券 CardTypeGroupon = "GROUPON" // 团购券 CardTypeCash = "CASH" // 代金券 CardTypeDiscount = "DISCOUNT" // 折扣券 CardTypeGift = "GIFT" // 礼品券 CardTypeMemberCard = "MEMBER_CARD" // 会员卡 CardTypeMeetingTicket = "MEETING_TICKET" // 会议门票 CardTypeScenicTicket = "SCENIC_TICKET" // 景区门票 CardTypeMovieTicket = "MOVIE_TICKET" // 电影票 CardTypeBoardingPass = "BOARDING_PASS" // 飞机票 )
View Source
const ( // 推送到公众号URL上的事件类型 EventTypeCardPassCheck = "card_pass_check" // 卡券通过审核 EventTypeCardNotPassCheck = "card_not_pass_check" // 卡券未通过审核 EventTypeUserGetCard = "user_get_card" // 领取事件推送 EventTypeUserDelCard = "user_del_card" // 删除事件推送 EventTypeUserConsumeCard = "user_consume_card" // 核销事件推送 EventTypeUserViewCard = "user_view_card" // 进入会员卡事件推送 EventTypeUserEnterSessionFromCard = "user_enter_session_from_card" // 从卡券进入公众号会话事件推送 )
Variables ¶
This section is empty.
Functions ¶
func ModifyStock ¶
库存修改接口. cardId: 卡券ID increaseNum: 增加库存数量, 可以为负数
Types ¶
type BatchGetQuery ¶
type BatchGetResult ¶
type BatchGetResult struct { TotalNum int `json:"total_num"` ItemNum int `json:"item_num"` CardIdList []string `json:"card_id_list"` }
func BatchGet ¶
func BatchGet(clt *mp.Client, query *BatchGetQuery) (rslt *BatchGetResult, err error)
批量查询卡列表.
type BoardingPass ¶
type BoardingPass struct { BaseInfo *CardBaseInfo `json:"base_info,omitempty"` From string `json:"from,omitempty"` // 起点, 上限为18 个汉字 To string `json:"to,omitempty"` // 终点, 上限为18 个汉字 Flight string `json:"flight,omitempty"` // 航班 Gate string `json:"gate,omitempty"` // 登机口. 如发生登机口变更, 建议商家实时调用该接口变更 CheckinURL string `json:"check_in_url,omitempty"` // 在线值机的链接 AirModel string `json:"air_model,omitempty"` // 机型, 上限为8 个汉字 DepartureTime int64 `json:"departure_time,omitempty"` // 起飞时间. Unix 时间戳格式 LandingTime int64 `json:"landing_time,omitempty"` // 降落时间. Unix 时间戳格式 BoardingTime string `json:"boarding_time,omitempty"` // 登机时间, 只显示"时分"不显示日期, 按时间戳格式填写. 如发生登机时间变更, 建议商家实时调用该接口变更. }
飞机票
type Card ¶
type Card struct { CardType string `json:"card_type,omitempty"` GeneralCoupon *GeneralCoupon `json:"general_coupon,omitempty"` Groupon *Groupon `json:"groupon,omitempty"` Cash *Cash `json:"cash,omitempty"` Discount *Discount `json:"discount,omitempty"` Gift *Gift `json:"gift,omitempty"` MemberCard *MemberCard `json:"member_card,omitempty"` MeetingTicket *MeetingTicket `json:"meeting_ticket,omitempty"` ScenicTicket *ScenicTicket `json:"scenic_ticket,omitempty"` MovieTicket *MovieTicket `json:"movie_ticket,omitempty"` BoardingPass *BoardingPass `json:"boarding_pass,omitempty"` }
卡券数据结构
type CardBaseInfo ¶
type CardBaseInfo struct { CardId string `json:"id,omitempty"` // 查询的时候有返回 Status string `json:"status,omitempty"` // 查询的时候有返回 AppId string `json:"appid,omitempty"` // 查询的时候有返回 LogoURL string `json:"logo_url,omitempty"` // 卡券的商户logo,建议像素为300*300。 CodeType string `json:"code_type,omitempty"` // Code展示类型 BrandName string `json:"brand_name,omitempty"` // 商户名字,字数上限为12个汉字。 Title string `json:"title,omitempty"` // 卡券名,字数上限为9个汉字。(建议涵盖卡券属性、服务及金额)。 SubTitle string `json:"sub_title,omitempty"` // 券名的副标题, 字数上限为18个汉字。 Color string `json:"color,omitempty"` // 券颜色。按色彩规范标注填写Color010-Color100。 Notice string `json:"notice,omitempty"` // 卡券使用提醒,字数上限为16个汉字。 Description string `json:"description,omitempty"` // 卡券使用说明,字数上限为1024个汉字。 SKU *SKU `json:"sku,omitempty"` // 商品信息。 DateInfo *DateInfo `json:"date_info,omitempty"` // 使用日期,有效期的信息。 UseCustomCode *bool `json:"use_custom_code,omitempty"` // 是否自定义Code码。填写true或false,默认为false。通常自有优惠码系统的开发者选择自定义Code码,并在卡券投放时带入Code码 BindOpenId *bool `json:"bind_openid,omitempty"` // 是否指定用户领取,填写true或false。默认为false。通常指定特殊用户群体投放卡券或防止刷券时选择指定用户领取。 ServicePhone string `json:"service_phone,omitempty"` // 客服电话。 LocationIdList []int64 `json:"location_id_list,omitempty"` // 门店位置poiid。 Source string `json:"source,omitempty"` // 第三方来源名,例如同程旅游、大众点评。 CustomURLName string `json:"custom_url_name,omitempty"` // 自定义跳转外链的入口名字。 CustomURLSubTitle string `json:"custom_url_sub_title,omitempty"` // 显示在入口右侧的提示语。 CustomURL string `json:"custom_url,omitempty"` // 自定义跳转的URL。 PromotionURLName string `json:"promotion_url_name,omitempty"` // 营销场景的自定义入口名称。 PromotionURLSubTitle string `json:"promotion_url_sub_title,omitempty"` // 显示在营销入口右侧的提示语。 PromotionURL string `json:"promotion_url,omitempty"` // 入口跳转外链的地址链接。 GetLimit *int `json:"get_limit,omitempty"` // 每人可领券的数量限制,不填写默认为50。 UseLimit *int `json:"use_limit,omitempty"` // 每人使用次数限制. CanGiveFriend *bool `json:"can_give_friend,omitempty"` // 卡券是否可转赠。 }
基本的卡券数据, 所有卡券通用
type CardNotPassCheckEvent ¶
type CardNotPassCheckEvent struct { XMLName struct{} `xml:"xml" json:"-"` mp.MessageHeader Event string `xml:"Event" json:"Event"` // 事件类型, card_not_pass_check CardId string `xml:"CardId" json:"CardId"` // 卡券ID }
卡券未通过审核, 微信会把这个事件推送到开发者填写的URL
func GetCardNotPassCheckEvent ¶
func GetCardNotPassCheckEvent(msg *mp.MixedMessage) *CardNotPassCheckEvent
type CardPassCheckEvent ¶
type CardPassCheckEvent struct { XMLName struct{} `xml:"xml" json:"-"` mp.MessageHeader Event string `xml:"Event" json:"Event"` // 事件类型, card_pass_check CardId string `xml:"CardId" json:"CardId"` // 卡券ID }
卡券通过审核, 微信会把这个事件推送到开发者填写的URL
func GetCardPassCheckEvent ¶
func GetCardPassCheckEvent(msg *mp.MixedMessage) *CardPassCheckEvent
type Cash ¶
type Cash struct { BaseInfo *CardBaseInfo `json:"base_info,omitempty"` LeastCost *int `json:"least_cost,omitempty"` // 代金券专用, 表示起用金额(单位为分) ReduceCost *int `json:"reduce_cost,omitempty"` // 代金券专用, 表示减免金额(单位为分) }
代金券
type DateInfo ¶
type DateInfo struct { Type string `json:"type"` // 使用时间的类型, DATE_TYPE_FIX_TIME_RANGE 表示固定日期区间,DATE_TYPE_FIX_TERM表示固定时长(自领取后按天算) BeginTimestamp int64 `json:"begin_timestamp,omitempty"` // type为DATE_TYPE_FIX_TIME_RANGE时专用,表示起用时间。从1970年1月1日00:00:00至起用时间的秒数,最终需转换为字符串形态传入。(东八区时间,单位为秒) EndTimestamp int64 `json:"end_timestamp,omitempty"` // type为DATE_TYPE_FIX_TIME_RANGE时专用,表示结束时间,建议设置为截止日期的23:59:59过期。(东八区时间,单位为秒) FixedTerm *int `json:"fixed_term,omitempty"` // type为DATE_TYPE_FIX_TERM时专用,表示自领取后多少天内有效,领取后当天有效填写0。(单位为天) FixedBeginTerm *int `json:"fixed_begin_term,omitempty"` // type为DATE_TYPE_FIX_TERM时专用,表示自领取后多少天开始生效。(单位为天) }
type Discount ¶
type Discount struct { BaseInfo *CardBaseInfo `json:"base_info,omitempty"` Discount *int `json:"discount,omitempty"` // 折扣券专用, 表示打折额度(百分比). 填30 就是七折. }
折扣券
type GeneralCoupon ¶
type GeneralCoupon struct { BaseInfo *CardBaseInfo `json:"base_info,omitempty"` DefaultDetail string `json:"default_detail,omitempty"` // 优惠券专用, 填写优惠详情 }
优惠券
type Gift ¶
type Gift struct { BaseInfo *CardBaseInfo `json:"base_info,omitempty"` Gift string `json:"gift,omitempty"` // 礼品券专用, 表示礼品名字 }
礼品券
type Groupon ¶
type Groupon struct { BaseInfo *CardBaseInfo `json:"base_info,omitempty"` DealDetail string `json:"deal_detail,omitempty"` // 团购券专用,团购详情 }
团购券
type MeetingTicket ¶
type MeetingTicket struct { BaseInfo *CardBaseInfo `json:"base_info,omitempty"` MeetingDetail string `json:"meeting_detail,omitempty"` // 会议详情 MapURL string `json:"map_url,omitempty"` // 会议导览图 }
会议门票
type MemberCard ¶
type MemberCard struct { BaseInfo *CardBaseInfo `json:"base_info,omitempty"` Prerogative string `json:"prerogative,omitempty"` // 会员卡特权说明 SupplyBonus *bool `json:"supply_bonus,omitempty"` // 显示积分,填写true或false,如填写true,积分相关字段均为必填 BonusURL string `json:"bonus_url,omitempty"` // 设置跳转外链查看积分详情。仅适用于积分无法通过激活接口同步的情况下使用该字段。 SupplyBalance *bool `json:"supply_balance,omitempty"` // 是否支持储值,填写true或false。如填写true,储值相关字段均为必填。 BalanceURL string `json:"balance_url,omitempty"` // 设置跳转外链查看余额详情。仅适用于余额无法通过激活接口同步的情况下使用该字段。 BonusClearedRules string `json:"bonus_cleared,omitempty"` // 积分清零规则。 BonusRules string `json:"bonus_rules,omitempty"` // 积分规则。 BalanceRules string `json:"balance_rules,omitempty"` // 储值说明。 ActivateURL string `json:"activate_url,omitempty"` // 激活会员卡的url。 NeedPushOnView *bool `json:"need_push_on_view,omitempty"` // 填写true为用户点击进入会员卡时推送事件,默认为false。 CustomField1 *MemberCardCustomField `json:"custom_field1,omitempty"` // 自定义会员信息类目,会员卡激活后显示。 CustomField2 *MemberCardCustomField `json:"custom_field2,omitempty"` // 自定义会员信息类目,会员卡激活后显示。 CustomField3 *MemberCardCustomField `json:"custom_field3,omitempty"` // 自定义会员信息类目,会员卡激活后显示。 CustomCell1 *MemberCardCustomCell `json:"custom_cell1,omitempty"` // 自定义会员信息类目,会员卡激活后显示。 }
会员卡
type MemberCardCustomCell ¶
type MemberCardCustomField ¶
type MemberCardCustomField struct { // 会员信息类目名称: // // FIELD_NAME_TYPE_LEVEL 等级 // FIELD_NAME_TYPE_COUPON 优惠券 // FIELD_NAME_TYPE_STAMP 印花 // FIELD_NAME_TYPE_DISCOUNT 折扣 // FIELD_NAME_TYPE_ACHIEVEMEN 成就 // FIELD_NAME_TYPE_MILEAGE 里程 NameType string `json:"name_type,omitempty"` URL string `json:"url,omitempty"` // 点击类目跳转外链url }
type MovieTicket ¶
type MovieTicket struct { BaseInfo *CardBaseInfo `json:"base_info,omitempty"` Detail string `json:"detail,omitempty"` // 电影票详情 }
电影票
type ScenicTicket ¶
type ScenicTicket struct { BaseInfo *CardBaseInfo `json:"base_info,omitempty"` TicketClass string `json:"ticket_class,omitempty"` // 票类型, 例如平日全票, 套票等 GuideURL string `json:"guide_url,omitempty"` // 导览图url }
景区门票
type UserConsumeCardEvent ¶
type UserConsumeCardEvent struct { XMLName struct{} `xml:"xml" json:"-"` mp.MessageHeader Event string `xml:"Event" json:"Event"` // 事件类型, user_consume_card CardId string `xml:"CardId" json:"CardId"` // 卡券ID UserCardCode string `xml:"UserCardCode" json:"UserCardCode"` // 商户自定义code 值. 非自定code 推送为空串 ConsumeSource string `xml:"ConsumeSource" json:"ConsumeSource"` // 核销来源。支持开发者统计API核销(FROM_API)、公众平台核销(FROM_MP)、卡券商户助手核销(FROM_MOBILE_HELPER)(核销员微信号) }
卡券被核销时, 微信会把这个事件推送到开发者填写的URL
func GetUserConsumeCardEvent ¶
func GetUserConsumeCardEvent(msg *mp.MixedMessage) *UserConsumeCardEvent
type UserDelCardEvent ¶
type UserDelCardEvent struct { XMLName struct{} `xml:"xml" json:"-"` mp.MessageHeader Event string `xml:"Event" json:"Event"` // 事件类型, user_del_card CardId string `xml:"CardId" json:"CardId"` // 卡券ID UserCardCode string `xml:"UserCardCode" json:"UserCardCode"` // 商户自定义code 值. 非自定code 推送为空串 }
用户在删除卡券时, 微信会把这个事件推送到开发者填写的URL.
func GetUserDelCardEvent ¶
func GetUserDelCardEvent(msg *mp.MixedMessage) *UserDelCardEvent
type UserEnterSessionFromCardEvent ¶
type UserEnterSessionFromCardEvent struct { XMLName struct{} `xml:"xml" json:"-"` mp.MessageHeader Event string `xml:"Event" json:"Event"` // 事件类型, user_view_card CardId string `xml:"CardId" json:"CardId"` // 卡券ID UserCardCode string `xml:"UserCardCode" json:"UserCardCode"` // 商户自定义code 值. 非自定code 推送为空串 }
从卡券进入公众号会话事件推送
func GetUserEnterSessionFromCardEvent ¶
func GetUserEnterSessionFromCardEvent(msg *mp.MixedMessage) *UserEnterSessionFromCardEvent
type UserGetCardEvent ¶
type UserGetCardEvent struct { XMLName struct{} `xml:"xml" json:"-"` mp.MessageHeader Event string `xml:"Event" json:"Event"` // 事件类型, user_get_card CardId string `xml:"CardId" json:"CardId"` // 卡券ID IsGiveByFriend int `xml:"IsGiveByFriend" json:"IsGiveByFriend"` // 是否为转赠, 1 代表是, 0 代表否. FriendUserName string `xml:"FriendUserName" json:"FriendUserName"` // 赠送方账号(一个OpenID), "IsGiveByFriend"为1 时填写该参数. UserCardCode string `xml:"UserCardCode" json:"UserCardCode"` // code 序列号. 自定义code 及非自定义code的卡券被领取后都支持事件推送. OldUserCardCode string `xml:"OldUserCardCode" json:"OldUserCardCode"` // 转赠前的code序列号。 OuterId int64 `xml:"OuterId" json:"OuterId"` // 领取场景值, 用于领取渠道数据统计. 可在生成二维码接口及添加JS API 接口中自定义该字段的整型值. }
用户在领取卡券时, 微信会把这个事件推送到开发者填写的URL.
func GetUserGetCardEvent ¶
func GetUserGetCardEvent(msg *mp.MixedMessage) *UserGetCardEvent
type UserViewCardEvent ¶
type UserViewCardEvent struct { XMLName struct{} `xml:"xml" json:"-"` mp.MessageHeader Event string `xml:"Event" json:"Event"` // 事件类型, user_view_card CardId string `xml:"CardId" json:"CardId"` // 卡券ID UserCardCode string `xml:"UserCardCode" json:"UserCardCode"` // 商户自定义code 值. 非自定code 推送为空串 }
用户在进入会员卡时, 微信会把这个事件推送到开发者填写的URL
func GetUserViewCardEvent ¶
func GetUserViewCardEvent(msg *mp.MixedMessage) *UserViewCardEvent
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
see github.com/chanxuehong/wechat/mp/datacube
|
see github.com/chanxuehong/wechat/mp/datacube |
Click to show internal directories.
Click to hide internal directories.