123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761 |
- // Copyright 2021 Tencent Inc. All rights reserved.
- //
- // 微信支付分停车服务
- //
- // 微信支付分停车服务 扣费API
- //
- // API version: 1.2.1
- // Code generated by WechatPay APIv3 Generator based on [OpenAPI Generator](https://openapi-generator.tech); DO NOT EDIT.
- package wexinpayscoreparking
- import (
- "encoding/json"
- "fmt"
- "time"
- )
- // CreateParkingRequest
- type CreateParkingRequest struct {
- // 微信支付分配的子商户号,服务商模式下必传
- SubMchid *string `json:"sub_mchid,omitempty"`
- // 商户侧入场标识id,在同一个商户号下唯一
- OutParkingNo *string `json:"out_parking_no"`
- // 车牌号,仅包括省份+车牌,不包括特殊字符。
- PlateNumber *string `json:"plate_number"`
- // 车牌颜色
- PlateColor *PlateColor `json:"plate_color"`
- // 接受入场状态变更回调通知的url,注意回调url只接受https
- NotifyUrl *string `json:"notify_url"`
- // 入场时间,遵循[rfc3339](https://datatracker.ietf.org/doc/html/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年5月20日 13点29分35秒。
- StartTime *time.Time `json:"start_time"`
- // 所在停车位车场的名称
- ParkingName *string `json:"parking_name"`
- // 停车场的免费停车时长,单位为秒
- FreeDuration *int64 `json:"free_duration"`
- }
- func (o CreateParkingRequest) MarshalJSON() ([]byte, error) {
- toSerialize := map[string]interface{}{}
- if o.SubMchid != nil {
- toSerialize["sub_mchid"] = o.SubMchid
- }
- if o.OutParkingNo == nil {
- return nil, fmt.Errorf("field `OutParkingNo` is required and must be specified in CreateParkingRequest")
- }
- toSerialize["out_parking_no"] = o.OutParkingNo
- if o.PlateNumber == nil {
- return nil, fmt.Errorf("field `PlateNumber` is required and must be specified in CreateParkingRequest")
- }
- toSerialize["plate_number"] = o.PlateNumber
- if o.PlateColor == nil {
- return nil, fmt.Errorf("field `PlateColor` is required and must be specified in CreateParkingRequest")
- }
- toSerialize["plate_color"] = o.PlateColor
- if o.NotifyUrl == nil {
- return nil, fmt.Errorf("field `NotifyUrl` is required and must be specified in CreateParkingRequest")
- }
- toSerialize["notify_url"] = o.NotifyUrl
- if o.StartTime == nil {
- return nil, fmt.Errorf("field `StartTime` is required and must be specified in CreateParkingRequest")
- }
- toSerialize["start_time"] = o.StartTime.Format(time.RFC3339)
- if o.ParkingName == nil {
- return nil, fmt.Errorf("field `ParkingName` is required and must be specified in CreateParkingRequest")
- }
- toSerialize["parking_name"] = o.ParkingName
- if o.FreeDuration == nil {
- return nil, fmt.Errorf("field `FreeDuration` is required and must be specified in CreateParkingRequest")
- }
- toSerialize["free_duration"] = o.FreeDuration
- return json.Marshal(toSerialize)
- }
- func (o CreateParkingRequest) String() string {
- var ret string
- if o.SubMchid == nil {
- ret += "SubMchid:<nil>, "
- } else {
- ret += fmt.Sprintf("SubMchid:%v, ", *o.SubMchid)
- }
- if o.OutParkingNo == nil {
- ret += "OutParkingNo:<nil>, "
- } else {
- ret += fmt.Sprintf("OutParkingNo:%v, ", *o.OutParkingNo)
- }
- if o.PlateNumber == nil {
- ret += "PlateNumber:<nil>, "
- } else {
- ret += fmt.Sprintf("PlateNumber:%v, ", *o.PlateNumber)
- }
- if o.PlateColor == nil {
- ret += "PlateColor:<nil>, "
- } else {
- ret += fmt.Sprintf("PlateColor:%v, ", *o.PlateColor)
- }
- if o.NotifyUrl == nil {
- ret += "NotifyUrl:<nil>, "
- } else {
- ret += fmt.Sprintf("NotifyUrl:%v, ", *o.NotifyUrl)
- }
- if o.StartTime == nil {
- ret += "StartTime:<nil>, "
- } else {
- ret += fmt.Sprintf("StartTime:%v, ", *o.StartTime)
- }
- if o.ParkingName == nil {
- ret += "ParkingName:<nil>, "
- } else {
- ret += fmt.Sprintf("ParkingName:%v, ", *o.ParkingName)
- }
- if o.FreeDuration == nil {
- ret += "FreeDuration:<nil>"
- } else {
- ret += fmt.Sprintf("FreeDuration:%v", *o.FreeDuration)
- }
- return fmt.Sprintf("CreateParkingRequest{%s}", ret)
- }
- func (o CreateParkingRequest) Clone() *CreateParkingRequest {
- ret := CreateParkingRequest{}
- if o.SubMchid != nil {
- ret.SubMchid = new(string)
- *ret.SubMchid = *o.SubMchid
- }
- if o.OutParkingNo != nil {
- ret.OutParkingNo = new(string)
- *ret.OutParkingNo = *o.OutParkingNo
- }
- if o.PlateNumber != nil {
- ret.PlateNumber = new(string)
- *ret.PlateNumber = *o.PlateNumber
- }
- if o.PlateColor != nil {
- ret.PlateColor = new(PlateColor)
- *ret.PlateColor = *o.PlateColor
- }
- if o.NotifyUrl != nil {
- ret.NotifyUrl = new(string)
- *ret.NotifyUrl = *o.NotifyUrl
- }
- if o.StartTime != nil {
- ret.StartTime = new(time.Time)
- *ret.StartTime = *o.StartTime
- }
- if o.ParkingName != nil {
- ret.ParkingName = new(string)
- *ret.ParkingName = *o.ParkingName
- }
- if o.FreeDuration != nil {
- ret.FreeDuration = new(int64)
- *ret.FreeDuration = *o.FreeDuration
- }
- return &ret
- }
- // CreateTransactionRequest
- type CreateTransactionRequest struct {
- // appid是商户在微信申请公众号或移动应用成功后分配的帐号ID,登录平台为mp.weixin.qq.com或open.weixin.qq.com
- Appid *string `json:"appid"`
- // 子公众账号id,服务商模式下选传,用于扣费信息的商户信息展示,
- SubAppid *string `json:"sub_appid,omitempty"`
- // 微信支付分配的子商户号,服务商模式下必传
- SubMchid *string `json:"sub_mchid,omitempty"`
- // 商户自定义字段,用于交易账单中对扣费服务的描述。
- Description *string `json:"description"`
- // 附加数据,在查询API和支付通知中原样返回,可作为自定义参数使用
- Attach *string `json:"attach,omitempty"`
- // 商户系统内部订单号,只能是数字、大小写字母_-*且在同一个商户号下唯一
- OutTradeNo *string `json:"out_trade_no"`
- // 交易场景值,目前支持 :PARKING:车场停车场景
- TradeScene *string `json:"trade_scene"`
- // 代金券或立减优惠功能的参数,说明详见[代金券或立减优惠](https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter5_1_2.shtml)
- GoodsTag *string `json:"goods_tag,omitempty"`
- // 接受扣款结果异步回调通知的url,注意回调url只接受https
- NotifyUrl *string `json:"notify_url"`
- // Y:是,需要分账 N:否,不分账 字母要求大写,不传默认不分账,分账详细说明见[直连分账API](https://pay.weixin.qq.com/wiki/doc/api/allocation.php?chapter=26_1)、[服务商分账API文档](https://pay.weixin.qq.com/wiki/doc/api/allocation_sl.php?chapter=24_1&index=1)
- ProfitSharing *string `json:"profit_sharing,omitempty"`
- // 订单金额信息
- Amount *OrderAmount `json:"amount"`
- // 当交易场景为PARKING时,需要在该字段添加停车场景信息
- ParkingInfo *ParkingTradeScene `json:"parking_info,omitempty"`
- }
- func (o CreateTransactionRequest) MarshalJSON() ([]byte, error) {
- toSerialize := map[string]interface{}{}
- if o.Appid == nil {
- return nil, fmt.Errorf("field `Appid` is required and must be specified in CreateTransactionRequest")
- }
- toSerialize["appid"] = o.Appid
- if o.SubAppid != nil {
- toSerialize["sub_appid"] = o.SubAppid
- }
- if o.SubMchid != nil {
- toSerialize["sub_mchid"] = o.SubMchid
- }
- if o.Description == nil {
- return nil, fmt.Errorf("field `Description` is required and must be specified in CreateTransactionRequest")
- }
- toSerialize["description"] = o.Description
- if o.Attach != nil {
- toSerialize["attach"] = o.Attach
- }
- if o.OutTradeNo == nil {
- return nil, fmt.Errorf("field `OutTradeNo` is required and must be specified in CreateTransactionRequest")
- }
- toSerialize["out_trade_no"] = o.OutTradeNo
- if o.TradeScene == nil {
- return nil, fmt.Errorf("field `TradeScene` is required and must be specified in CreateTransactionRequest")
- }
- toSerialize["trade_scene"] = o.TradeScene
- if o.GoodsTag != nil {
- toSerialize["goods_tag"] = o.GoodsTag
- }
- if o.NotifyUrl == nil {
- return nil, fmt.Errorf("field `NotifyUrl` is required and must be specified in CreateTransactionRequest")
- }
- toSerialize["notify_url"] = o.NotifyUrl
- if o.ProfitSharing != nil {
- toSerialize["profit_sharing"] = o.ProfitSharing
- }
- if o.Amount == nil {
- return nil, fmt.Errorf("field `Amount` is required and must be specified in CreateTransactionRequest")
- }
- toSerialize["amount"] = o.Amount
- if o.ParkingInfo != nil {
- toSerialize["parking_info"] = o.ParkingInfo
- }
- return json.Marshal(toSerialize)
- }
- func (o CreateTransactionRequest) String() string {
- var ret string
- if o.Appid == nil {
- ret += "Appid:<nil>, "
- } else {
- ret += fmt.Sprintf("Appid:%v, ", *o.Appid)
- }
- if o.SubAppid == nil {
- ret += "SubAppid:<nil>, "
- } else {
- ret += fmt.Sprintf("SubAppid:%v, ", *o.SubAppid)
- }
- if o.SubMchid == nil {
- ret += "SubMchid:<nil>, "
- } else {
- ret += fmt.Sprintf("SubMchid:%v, ", *o.SubMchid)
- }
- if o.Description == nil {
- ret += "Description:<nil>, "
- } else {
- ret += fmt.Sprintf("Description:%v, ", *o.Description)
- }
- if o.Attach == nil {
- ret += "Attach:<nil>, "
- } else {
- ret += fmt.Sprintf("Attach:%v, ", *o.Attach)
- }
- if o.OutTradeNo == nil {
- ret += "OutTradeNo:<nil>, "
- } else {
- ret += fmt.Sprintf("OutTradeNo:%v, ", *o.OutTradeNo)
- }
- if o.TradeScene == nil {
- ret += "TradeScene:<nil>, "
- } else {
- ret += fmt.Sprintf("TradeScene:%v, ", *o.TradeScene)
- }
- if o.GoodsTag == nil {
- ret += "GoodsTag:<nil>, "
- } else {
- ret += fmt.Sprintf("GoodsTag:%v, ", *o.GoodsTag)
- }
- if o.NotifyUrl == nil {
- ret += "NotifyUrl:<nil>, "
- } else {
- ret += fmt.Sprintf("NotifyUrl:%v, ", *o.NotifyUrl)
- }
- if o.ProfitSharing == nil {
- ret += "ProfitSharing:<nil>, "
- } else {
- ret += fmt.Sprintf("ProfitSharing:%v, ", *o.ProfitSharing)
- }
- ret += fmt.Sprintf("Amount:%v, ", o.Amount)
- ret += fmt.Sprintf("ParkingInfo:%v", o.ParkingInfo)
- return fmt.Sprintf("CreateTransactionRequest{%s}", ret)
- }
- func (o CreateTransactionRequest) Clone() *CreateTransactionRequest {
- ret := CreateTransactionRequest{}
- if o.Appid != nil {
- ret.Appid = new(string)
- *ret.Appid = *o.Appid
- }
- if o.SubAppid != nil {
- ret.SubAppid = new(string)
- *ret.SubAppid = *o.SubAppid
- }
- if o.SubMchid != nil {
- ret.SubMchid = new(string)
- *ret.SubMchid = *o.SubMchid
- }
- if o.Description != nil {
- ret.Description = new(string)
- *ret.Description = *o.Description
- }
- if o.Attach != nil {
- ret.Attach = new(string)
- *ret.Attach = *o.Attach
- }
- if o.OutTradeNo != nil {
- ret.OutTradeNo = new(string)
- *ret.OutTradeNo = *o.OutTradeNo
- }
- if o.TradeScene != nil {
- ret.TradeScene = new(string)
- *ret.TradeScene = *o.TradeScene
- }
- if o.GoodsTag != nil {
- ret.GoodsTag = new(string)
- *ret.GoodsTag = *o.GoodsTag
- }
- if o.NotifyUrl != nil {
- ret.NotifyUrl = new(string)
- *ret.NotifyUrl = *o.NotifyUrl
- }
- if o.ProfitSharing != nil {
- ret.ProfitSharing = new(string)
- *ret.ProfitSharing = *o.ProfitSharing
- }
- if o.Amount != nil {
- ret.Amount = o.Amount.Clone()
- }
- if o.ParkingInfo != nil {
- ret.ParkingInfo = o.ParkingInfo.Clone()
- }
- return &ret
- }
- // OrderAmount
- type OrderAmount struct {
- // 订单总金额,单位为分,只能为整数
- Total *int64 `json:"total"`
- // 符合ISO 4217标准的三位字母代码,目前只支持人民币:CNY
- Currency *string `json:"currency,omitempty"`
- }
- func (o OrderAmount) MarshalJSON() ([]byte, error) {
- toSerialize := map[string]interface{}{}
- if o.Total == nil {
- return nil, fmt.Errorf("field `Total` is required and must be specified in OrderAmount")
- }
- toSerialize["total"] = o.Total
- if o.Currency != nil {
- toSerialize["currency"] = o.Currency
- }
- return json.Marshal(toSerialize)
- }
- func (o OrderAmount) String() string {
- var ret string
- if o.Total == nil {
- ret += "Total:<nil>, "
- } else {
- ret += fmt.Sprintf("Total:%v, ", *o.Total)
- }
- if o.Currency == nil {
- ret += "Currency:<nil>"
- } else {
- ret += fmt.Sprintf("Currency:%v", *o.Currency)
- }
- return fmt.Sprintf("OrderAmount{%s}", ret)
- }
- func (o OrderAmount) Clone() *OrderAmount {
- ret := OrderAmount{}
- if o.Total != nil {
- ret.Total = new(int64)
- *ret.Total = *o.Total
- }
- if o.Currency != nil {
- ret.Currency = new(string)
- *ret.Currency = *o.Currency
- }
- return &ret
- }
- // Parking
- type Parking struct {
- // 车主服务为商户分配的入场id
- Id *string `json:"id"`
- // 商户侧入场标识id,在同一个商户号下唯一
- OutParkingNo *string `json:"out_parking_no"`
- // 车牌号,仅包括省份+车牌,不包括特殊字符。
- PlateNumber *string `json:"plate_number"`
- // 车牌颜色
- PlateColor *PlateColor `json:"plate_color"`
- // 入场时间,按照使用rfc3339所定义的格式,格式为YYYY-MM-DDThh:mm:ss+TIMEZONE
- StartTime *string `json:"start_time"`
- // 所在停车位车场的名称
- ParkingName *string `json:"parking_name"`
- // 停车场的免费停车时长,单位为秒
- FreeDuration *int64 `json:"free_duration"`
- // 本次入场车牌的服务状态, NORMAL:正常状态,可以使用微信支付分停车服务, BLOCKED 不可用状态,暂时不可以使用微信支付分停车服务
- State *string `json:"state"`
- // block服务状态描述,返回车牌状态为BLOCKED,会返回该字段,描述具体BLOCKED的原因, PAUSE:已暂停微信支付分停车服务; OVERDUE:已授权签约但欠费,不能提供服务, OUT_SERVICE : 车牌未开通微信支付分停车服务, EVALUATION_FAILED 综合评估未通过,用户支付分不可用的情况,会返回该状态。
- BlockReason *string `json:"block_reason,omitempty"`
- }
- func (o Parking) MarshalJSON() ([]byte, error) {
- toSerialize := map[string]interface{}{}
- if o.Id == nil {
- return nil, fmt.Errorf("field `Id` is required and must be specified in Parking")
- }
- toSerialize["id"] = o.Id
- if o.OutParkingNo == nil {
- return nil, fmt.Errorf("field `OutParkingNo` is required and must be specified in Parking")
- }
- toSerialize["out_parking_no"] = o.OutParkingNo
- if o.PlateNumber == nil {
- return nil, fmt.Errorf("field `PlateNumber` is required and must be specified in Parking")
- }
- toSerialize["plate_number"] = o.PlateNumber
- if o.PlateColor == nil {
- return nil, fmt.Errorf("field `PlateColor` is required and must be specified in Parking")
- }
- toSerialize["plate_color"] = o.PlateColor
- if o.StartTime == nil {
- return nil, fmt.Errorf("field `StartTime` is required and must be specified in Parking")
- }
- toSerialize["start_time"] = o.StartTime
- if o.ParkingName == nil {
- return nil, fmt.Errorf("field `ParkingName` is required and must be specified in Parking")
- }
- toSerialize["parking_name"] = o.ParkingName
- if o.FreeDuration == nil {
- return nil, fmt.Errorf("field `FreeDuration` is required and must be specified in Parking")
- }
- toSerialize["free_duration"] = o.FreeDuration
- if o.State == nil {
- return nil, fmt.Errorf("field `State` is required and must be specified in Parking")
- }
- toSerialize["state"] = o.State
- if o.BlockReason != nil {
- toSerialize["block_reason"] = o.BlockReason
- }
- return json.Marshal(toSerialize)
- }
- func (o Parking) String() string {
- var ret string
- if o.Id == nil {
- ret += "Id:<nil>, "
- } else {
- ret += fmt.Sprintf("Id:%v, ", *o.Id)
- }
- if o.OutParkingNo == nil {
- ret += "OutParkingNo:<nil>, "
- } else {
- ret += fmt.Sprintf("OutParkingNo:%v, ", *o.OutParkingNo)
- }
- if o.PlateNumber == nil {
- ret += "PlateNumber:<nil>, "
- } else {
- ret += fmt.Sprintf("PlateNumber:%v, ", *o.PlateNumber)
- }
- if o.PlateColor == nil {
- ret += "PlateColor:<nil>, "
- } else {
- ret += fmt.Sprintf("PlateColor:%v, ", *o.PlateColor)
- }
- if o.StartTime == nil {
- ret += "StartTime:<nil>, "
- } else {
- ret += fmt.Sprintf("StartTime:%v, ", *o.StartTime)
- }
- if o.ParkingName == nil {
- ret += "ParkingName:<nil>, "
- } else {
- ret += fmt.Sprintf("ParkingName:%v, ", *o.ParkingName)
- }
- if o.FreeDuration == nil {
- ret += "FreeDuration:<nil>, "
- } else {
- ret += fmt.Sprintf("FreeDuration:%v, ", *o.FreeDuration)
- }
- if o.State == nil {
- ret += "State:<nil>, "
- } else {
- ret += fmt.Sprintf("State:%v, ", *o.State)
- }
- if o.BlockReason == nil {
- ret += "BlockReason:<nil>"
- } else {
- ret += fmt.Sprintf("BlockReason:%v", *o.BlockReason)
- }
- return fmt.Sprintf("Parking{%s}", ret)
- }
- func (o Parking) Clone() *Parking {
- ret := Parking{}
- if o.Id != nil {
- ret.Id = new(string)
- *ret.Id = *o.Id
- }
- if o.OutParkingNo != nil {
- ret.OutParkingNo = new(string)
- *ret.OutParkingNo = *o.OutParkingNo
- }
- if o.PlateNumber != nil {
- ret.PlateNumber = new(string)
- *ret.PlateNumber = *o.PlateNumber
- }
- if o.PlateColor != nil {
- ret.PlateColor = new(PlateColor)
- *ret.PlateColor = *o.PlateColor
- }
- if o.StartTime != nil {
- ret.StartTime = new(string)
- *ret.StartTime = *o.StartTime
- }
- if o.ParkingName != nil {
- ret.ParkingName = new(string)
- *ret.ParkingName = *o.ParkingName
- }
- if o.FreeDuration != nil {
- ret.FreeDuration = new(int64)
- *ret.FreeDuration = *o.FreeDuration
- }
- if o.State != nil {
- ret.State = new(string)
- *ret.State = *o.State
- }
- if o.BlockReason != nil {
- ret.BlockReason = new(string)
- *ret.BlockReason = *o.BlockReason
- }
- return &ret
- }
- // ParkingTradeScene
- type ParkingTradeScene struct {
- // 微信支付分停车服务为商户分配的入场id,商户通过入场通知接口获取入场id
- ParkingId *string `json:"parking_id"`
- // 车牌号,仅包括省份+车牌,不包括特殊字符。
- PlateNumber *string `json:"plate_number"`
- // 车牌颜色
- PlateColor *PlateColor `json:"plate_color"`
- // 用户入场时间,遵循[rfc3339](https://datatracker.ietf.org/doc/html/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年5月20日 13点29分35秒。
- StartTime *time.Time `json:"start_time"`
- // 用户出场时间,遵循[rfc3339](https://datatracker.ietf.org/doc/html/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年5月20日 13点29分35秒。
- EndTime *time.Time `json:"end_time"`
- // 所在停车位车场的名称
- ParkingName *string `json:"parking_name"`
- // 计费的时间长,单位为秒
- ChargingDuration *int64 `json:"charging_duration"`
- // 停车场设备id
- DeviceId *string `json:"device_id"`
- }
- func (o ParkingTradeScene) MarshalJSON() ([]byte, error) {
- toSerialize := map[string]interface{}{}
- if o.ParkingId == nil {
- return nil, fmt.Errorf("field `ParkingId` is required and must be specified in ParkingTradeScene")
- }
- toSerialize["parking_id"] = o.ParkingId
- if o.PlateNumber == nil {
- return nil, fmt.Errorf("field `PlateNumber` is required and must be specified in ParkingTradeScene")
- }
- toSerialize["plate_number"] = o.PlateNumber
- if o.PlateColor == nil {
- return nil, fmt.Errorf("field `PlateColor` is required and must be specified in ParkingTradeScene")
- }
- toSerialize["plate_color"] = o.PlateColor
- if o.StartTime == nil {
- return nil, fmt.Errorf("field `StartTime` is required and must be specified in ParkingTradeScene")
- }
- toSerialize["start_time"] = o.StartTime.Format(time.RFC3339)
- if o.EndTime == nil {
- return nil, fmt.Errorf("field `EndTime` is required and must be specified in ParkingTradeScene")
- }
- toSerialize["end_time"] = o.EndTime.Format(time.RFC3339)
- if o.ParkingName == nil {
- return nil, fmt.Errorf("field `ParkingName` is required and must be specified in ParkingTradeScene")
- }
- toSerialize["parking_name"] = o.ParkingName
- if o.ChargingDuration == nil {
- return nil, fmt.Errorf("field `ChargingDuration` is required and must be specified in ParkingTradeScene")
- }
- toSerialize["charging_duration"] = o.ChargingDuration
- if o.DeviceId == nil {
- return nil, fmt.Errorf("field `DeviceId` is required and must be specified in ParkingTradeScene")
- }
- toSerialize["device_id"] = o.DeviceId
- return json.Marshal(toSerialize)
- }
- func (o ParkingTradeScene) String() string {
- var ret string
- if o.ParkingId == nil {
- ret += "ParkingId:<nil>, "
- } else {
- ret += fmt.Sprintf("ParkingId:%v, ", *o.ParkingId)
- }
- if o.PlateNumber == nil {
- ret += "PlateNumber:<nil>, "
- } else {
- ret += fmt.Sprintf("PlateNumber:%v, ", *o.PlateNumber)
- }
- if o.PlateColor == nil {
- ret += "PlateColor:<nil>, "
- } else {
- ret += fmt.Sprintf("PlateColor:%v, ", *o.PlateColor)
- }
- if o.StartTime == nil {
- ret += "StartTime:<nil>, "
- } else {
- ret += fmt.Sprintf("StartTime:%v, ", *o.StartTime)
- }
- if o.EndTime == nil {
- ret += "EndTime:<nil>, "
- } else {
- ret += fmt.Sprintf("EndTime:%v, ", *o.EndTime)
- }
- if o.ParkingName == nil {
- ret += "ParkingName:<nil>, "
- } else {
- ret += fmt.Sprintf("ParkingName:%v, ", *o.ParkingName)
- }
- if o.ChargingDuration == nil {
- ret += "ChargingDuration:<nil>, "
- } else {
- ret += fmt.Sprintf("ChargingDuration:%v, ", *o.ChargingDuration)
- }
- if o.DeviceId == nil {
- ret += "DeviceId:<nil>"
- } else {
- ret += fmt.Sprintf("DeviceId:%v", *o.DeviceId)
- }
- return fmt.Sprintf("ParkingTradeScene{%s}", ret)
- }
- func (o ParkingTradeScene) Clone() *ParkingTradeScene {
- ret := ParkingTradeScene{}
- if o.ParkingId != nil {
- ret.ParkingId = new(string)
- *ret.ParkingId = *o.ParkingId
- }
- if o.PlateNumber != nil {
- ret.PlateNumber = new(string)
- *ret.PlateNumber = *o.PlateNumber
- }
- if o.PlateColor != nil {
- ret.PlateColor = new(PlateColor)
- *ret.PlateColor = *o.PlateColor
- }
- if o.StartTime != nil {
- ret.StartTime = new(time.Time)
- *ret.StartTime = *o.StartTime
- }
- if o.EndTime != nil {
- ret.EndTime = new(time.Time)
- *ret.EndTime = *o.EndTime
- }
- if o.ParkingName != nil {
- ret.ParkingName = new(string)
- *ret.ParkingName = *o.ParkingName
- }
- if o.ChargingDuration != nil {
- ret.ChargingDuration = new(int64)
- *ret.ChargingDuration = *o.ChargingDuration
- }
- if o.DeviceId != nil {
- ret.DeviceId = new(string)
- *ret.DeviceId = *o.DeviceId
- }
- return &ret
- }
- // Payer
- type Payer struct {
- // 用户在appid下的唯一标识
- Openid *string `json:"openid"`
- // 用户在sub_appid下的标识,商户扣费时传入了sub_appid,则会返回该用户在sub_appid下的标识
- SubOpenid *string `json:"sub_openid,omitempty"`
- }
- func (o Payer) MarshalJSON() ([]byte, error) {
- toSerialize := map[string]interface{}{}
- if o.Openid == nil {
- return nil, fmt.Errorf("field `Openid` is required and must be specified in Payer")
- }
- toSerialize["openid"] = o.Openid
- if o.SubOpenid != nil {
- toSerialize["sub_openid"] = o.SubOpenid
- }
- return json.Marshal(toSerialize)
- }
- func (o Payer) String() string {
- var ret string
- if o.Openid == nil {
- ret += "Openid:<nil>, "
- } else {
- ret += fmt.Sprintf("Openid:%v, ", *o.Openid)
- }
- if o.SubOpenid == nil {
- ret += "SubOpenid:<nil>"
- } else {
- ret += fmt.Sprintf("SubOpenid:%v", *o.SubOpenid)
- }
- return fmt.Sprintf("Payer{%s}", ret)
- }
- func (o Payer) Clone() *Payer {
- ret := Payer{}
- if o.Openid != nil {
- ret.Openid = new(string)
- *ret.Openid = *o.Openid
- }
- if o.SubOpenid != nil {
- ret.SubOpenid = new(string)
- *ret.SubOpenid = *o.SubOpenid
- }
- return &ret
- }
- // PlateColor
- type PlateColor string
- func (e PlateColor) Ptr() *PlateColor {
- return &e
- }
- // Enums of PlateColor
- const (
- PLATECOLOR_BLUE PlateColor = "BLUE"
- PLATECOLOR_GREEN PlateColor = "GREEN"
- PLATECOLOR_YELLOW PlateColor = "YELLOW"
- PLATECOLOR_BLACK PlateColor = "BLACK"
- PLATECOLOR_WHITE PlateColor = "WHITE"
- PLATECOLOR_LIMEGREEN PlateColor = "LIMEGREEN"
- )
- // PlateService
- type PlateService struct {
- // 车牌号,仅包括省份+车牌,不包括特殊字符。
- PlateNumber *string `json:"plate_number"`
- // 车牌颜色
- PlateColor *PlateColor `json:"plate_color"`
- // 车牌服务开通时间,遵循[rfc3339](https://datatracker.ietf.org/doc/html/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年5月20日 13点29分35秒。
- ServiceOpenTime *time.Time `json:"service_open_time,omitempty"`
- // 用户在商户对应appid下的唯一标识,此处返回商户请求中的openid
- Openid *string `json:"openid"`
- // 车牌服务开通状态, NORMAL 正常服务 PAUSE 暂停服务 OUT_SERVICE 未开通 商户根据状态带用户跳转至对应的微信支付分停车服务小程序页面。 其中NORMAL 和 PAUSE状态,可跳转至车牌管理页,进行车牌服务状态管理。OUT_SERVICE状态,可跳转至服务开通页面。
- ServiceState *string `json:"service_state"`
- }
- func (o PlateService) MarshalJSON() ([]byte, error) {
- toSerialize := map[string]interface{}{}
- if o.PlateNumber == nil {
- return nil, fmt.Errorf("field `PlateNumber` is required and must be specified in PlateService")
- }
- toSerialize["plate_number"] = o.PlateNumber
- if o.PlateColor == nil {
- return nil, fmt.Errorf("field `PlateColor` is required and must be specified in PlateService")
- }
- toSerialize["plate_color"] = o.PlateColor
- if o.ServiceOpenTime != nil {
- toSerialize["service_open_time"] = o.ServiceOpenTime.Format(time.RFC3339)
- }
- if o.Openid == nil {
- return nil, fmt.Errorf("field `Openid` is required and must be specified in PlateService")
- }
- toSerialize["openid"] = o.Openid
- if o.ServiceState == nil {
- return nil, fmt.Errorf("field `ServiceState` is required and must be specified in PlateService")
- }
- toSerialize["service_state"] = o.ServiceState
- return json.Marshal(toSerialize)
- }
- func (o PlateService) String() string {
- var ret string
- if o.PlateNumber == nil {
- ret += "PlateNumber:<nil>, "
- } else {
- ret += fmt.Sprintf("PlateNumber:%v, ", *o.PlateNumber)
- }
- if o.PlateColor == nil {
- ret += "PlateColor:<nil>, "
- } else {
- ret += fmt.Sprintf("PlateColor:%v, ", *o.PlateColor)
- }
- if o.ServiceOpenTime == nil {
- ret += "ServiceOpenTime:<nil>, "
- } else {
- ret += fmt.Sprintf("ServiceOpenTime:%v, ", *o.ServiceOpenTime)
- }
- if o.Openid == nil {
- ret += "Openid:<nil>, "
- } else {
- ret += fmt.Sprintf("Openid:%v, ", *o.Openid)
- }
- if o.ServiceState == nil {
- ret += "ServiceState:<nil>"
- } else {
- ret += fmt.Sprintf("ServiceState:%v", *o.ServiceState)
- }
- return fmt.Sprintf("PlateService{%s}", ret)
- }
- func (o PlateService) Clone() *PlateService {
- ret := PlateService{}
- if o.PlateNumber != nil {
- ret.PlateNumber = new(string)
- *ret.PlateNumber = *o.PlateNumber
- }
- if o.PlateColor != nil {
- ret.PlateColor = new(PlateColor)
- *ret.PlateColor = *o.PlateColor
- }
- if o.ServiceOpenTime != nil {
- ret.ServiceOpenTime = new(time.Time)
- *ret.ServiceOpenTime = *o.ServiceOpenTime
- }
- if o.Openid != nil {
- ret.Openid = new(string)
- *ret.Openid = *o.Openid
- }
- if o.ServiceState != nil {
- ret.ServiceState = new(string)
- *ret.ServiceState = *o.ServiceState
- }
- return &ret
- }
- // PromotionDetail
- type PromotionDetail struct {
- // 券或者立减优惠id
- CouponId *string `json:"coupon_id"`
- // 优惠名称
- Name *string `json:"name,omitempty"`
- // GLOBAL-全场代金券, SINGLE-单品优惠
- Scope *string `json:"scope,omitempty"`
- // 枚举值: CASH:充值型代金券 NOCASH:免充值型代金券
- Type *string `json:"type,omitempty"`
- // 在微信商户后台配置的批次ID
- StockId *string `json:"stock_id,omitempty"`
- // 用户享受优惠的金额
- Amount *int64 `json:"amount"`
- // 特指由微信支付商户平台创建的优惠,出资金额等于本项优惠总金额,单位为分
- WechatpayContribute *int64 `json:"wechatpay_contribute,omitempty"`
- // 特指商户自己创建的优惠,出资金额等于本项优惠总金额,单位为分
- MerchantContribute *int64 `json:"merchant_contribute,omitempty"`
- // 其他出资方出资金额,单位为分
- OtherContribute *int64 `json:"other_contribute,omitempty"`
- // CNY:人民币,境内商户号仅支持人民币。
- Currency *string `json:"currency,omitempty"`
- }
- func (o PromotionDetail) MarshalJSON() ([]byte, error) {
- toSerialize := map[string]interface{}{}
- if o.CouponId == nil {
- return nil, fmt.Errorf("field `CouponId` is required and must be specified in PromotionDetail")
- }
- toSerialize["coupon_id"] = o.CouponId
- if o.Name != nil {
- toSerialize["name"] = o.Name
- }
- if o.Scope != nil {
- toSerialize["scope"] = o.Scope
- }
- if o.Type != nil {
- toSerialize["type"] = o.Type
- }
- if o.StockId != nil {
- toSerialize["stock_id"] = o.StockId
- }
- if o.Amount == nil {
- return nil, fmt.Errorf("field `Amount` is required and must be specified in PromotionDetail")
- }
- toSerialize["amount"] = o.Amount
- if o.WechatpayContribute != nil {
- toSerialize["wechatpay_contribute"] = o.WechatpayContribute
- }
- if o.MerchantContribute != nil {
- toSerialize["merchant_contribute"] = o.MerchantContribute
- }
- if o.OtherContribute != nil {
- toSerialize["other_contribute"] = o.OtherContribute
- }
- if o.Currency != nil {
- toSerialize["currency"] = o.Currency
- }
- return json.Marshal(toSerialize)
- }
- func (o PromotionDetail) String() string {
- var ret string
- if o.CouponId == nil {
- ret += "CouponId:<nil>, "
- } else {
- ret += fmt.Sprintf("CouponId:%v, ", *o.CouponId)
- }
- if o.Name == nil {
- ret += "Name:<nil>, "
- } else {
- ret += fmt.Sprintf("Name:%v, ", *o.Name)
- }
- if o.Scope == nil {
- ret += "Scope:<nil>, "
- } else {
- ret += fmt.Sprintf("Scope:%v, ", *o.Scope)
- }
- if o.Type == nil {
- ret += "Type:<nil>, "
- } else {
- ret += fmt.Sprintf("Type:%v, ", *o.Type)
- }
- if o.StockId == nil {
- ret += "StockId:<nil>, "
- } else {
- ret += fmt.Sprintf("StockId:%v, ", *o.StockId)
- }
- if o.Amount == nil {
- ret += "Amount:<nil>, "
- } else {
- ret += fmt.Sprintf("Amount:%v, ", *o.Amount)
- }
- if o.WechatpayContribute == nil {
- ret += "WechatpayContribute:<nil>, "
- } else {
- ret += fmt.Sprintf("WechatpayContribute:%v, ", *o.WechatpayContribute)
- }
- if o.MerchantContribute == nil {
- ret += "MerchantContribute:<nil>, "
- } else {
- ret += fmt.Sprintf("MerchantContribute:%v, ", *o.MerchantContribute)
- }
- if o.OtherContribute == nil {
- ret += "OtherContribute:<nil>, "
- } else {
- ret += fmt.Sprintf("OtherContribute:%v, ", *o.OtherContribute)
- }
- if o.Currency == nil {
- ret += "Currency:<nil>"
- } else {
- ret += fmt.Sprintf("Currency:%v", *o.Currency)
- }
- return fmt.Sprintf("PromotionDetail{%s}", ret)
- }
- func (o PromotionDetail) Clone() *PromotionDetail {
- ret := PromotionDetail{}
- if o.CouponId != nil {
- ret.CouponId = new(string)
- *ret.CouponId = *o.CouponId
- }
- if o.Name != nil {
- ret.Name = new(string)
- *ret.Name = *o.Name
- }
- if o.Scope != nil {
- ret.Scope = new(string)
- *ret.Scope = *o.Scope
- }
- if o.Type != nil {
- ret.Type = new(string)
- *ret.Type = *o.Type
- }
- if o.StockId != nil {
- ret.StockId = new(string)
- *ret.StockId = *o.StockId
- }
- if o.Amount != nil {
- ret.Amount = new(int64)
- *ret.Amount = *o.Amount
- }
- if o.WechatpayContribute != nil {
- ret.WechatpayContribute = new(int64)
- *ret.WechatpayContribute = *o.WechatpayContribute
- }
- if o.MerchantContribute != nil {
- ret.MerchantContribute = new(int64)
- *ret.MerchantContribute = *o.MerchantContribute
- }
- if o.OtherContribute != nil {
- ret.OtherContribute = new(int64)
- *ret.OtherContribute = *o.OtherContribute
- }
- if o.Currency != nil {
- ret.Currency = new(string)
- *ret.Currency = *o.Currency
- }
- return &ret
- }
- // QueryOrderAmount
- type QueryOrderAmount struct {
- // 订单总金额,单位为分,只能为整数,详见支付金额
- Total *int64 `json:"total"`
- // 符合ISO 4217标准的三位字母代码,目前只支持人民币:CNY
- Currency *string `json:"currency,omitempty"`
- // 用户实际支付金额,单位为分,只能为整数,详见支付金额
- PayerTotal *int64 `json:"payer_total,omitempty"`
- // 订单折扣
- DiscountTotal *int64 `json:"discount_total,omitempty"`
- }
- func (o QueryOrderAmount) MarshalJSON() ([]byte, error) {
- toSerialize := map[string]interface{}{}
- if o.Total == nil {
- return nil, fmt.Errorf("field `Total` is required and must be specified in QueryOrderAmount")
- }
- toSerialize["total"] = o.Total
- if o.Currency != nil {
- toSerialize["currency"] = o.Currency
- }
- if o.PayerTotal != nil {
- toSerialize["payer_total"] = o.PayerTotal
- }
- if o.DiscountTotal != nil {
- toSerialize["discount_total"] = o.DiscountTotal
- }
- return json.Marshal(toSerialize)
- }
- func (o QueryOrderAmount) String() string {
- var ret string
- if o.Total == nil {
- ret += "Total:<nil>, "
- } else {
- ret += fmt.Sprintf("Total:%v, ", *o.Total)
- }
- if o.Currency == nil {
- ret += "Currency:<nil>, "
- } else {
- ret += fmt.Sprintf("Currency:%v, ", *o.Currency)
- }
- if o.PayerTotal == nil {
- ret += "PayerTotal:<nil>, "
- } else {
- ret += fmt.Sprintf("PayerTotal:%v, ", *o.PayerTotal)
- }
- if o.DiscountTotal == nil {
- ret += "DiscountTotal:<nil>"
- } else {
- ret += fmt.Sprintf("DiscountTotal:%v", *o.DiscountTotal)
- }
- return fmt.Sprintf("QueryOrderAmount{%s}", ret)
- }
- func (o QueryOrderAmount) Clone() *QueryOrderAmount {
- ret := QueryOrderAmount{}
- if o.Total != nil {
- ret.Total = new(int64)
- *ret.Total = *o.Total
- }
- if o.Currency != nil {
- ret.Currency = new(string)
- *ret.Currency = *o.Currency
- }
- if o.PayerTotal != nil {
- ret.PayerTotal = new(int64)
- *ret.PayerTotal = *o.PayerTotal
- }
- if o.DiscountTotal != nil {
- ret.DiscountTotal = new(int64)
- *ret.DiscountTotal = *o.DiscountTotal
- }
- return &ret
- }
- // QueryPlateServiceRequest
- type QueryPlateServiceRequest struct {
- // appid是商户在微信申请公众号或移动应用成功后分配的帐号ID,登录平台为mp.weixin.qq.com或open.weixin.qq.com
- Appid *string `json:"appid"`
- // 微信支付分配的子商户号,服务商模式下必传
- SubMchid *string `json:"sub_mchid,omitempty"`
- // 车牌号,仅包括省份+车牌,不包括特殊字符。
- PlateNumber *string `json:"plate_number"`
- // 用户在商户对应appid下的唯一标识
- Openid *string `json:"openid"`
- // 车牌颜色
- PlateColor *PlateColor `json:"plate_color"`
- }
- func (o QueryPlateServiceRequest) MarshalJSON() ([]byte, error) {
- toSerialize := map[string]interface{}{}
- if o.Appid == nil {
- return nil, fmt.Errorf("field `Appid` is required and must be specified in QueryPlateServiceRequest")
- }
- toSerialize["appid"] = o.Appid
- if o.SubMchid != nil {
- toSerialize["sub_mchid"] = o.SubMchid
- }
- if o.PlateNumber == nil {
- return nil, fmt.Errorf("field `PlateNumber` is required and must be specified in QueryPlateServiceRequest")
- }
- toSerialize["plate_number"] = o.PlateNumber
- if o.Openid == nil {
- return nil, fmt.Errorf("field `Openid` is required and must be specified in QueryPlateServiceRequest")
- }
- toSerialize["openid"] = o.Openid
- if o.PlateColor == nil {
- return nil, fmt.Errorf("field `PlateColor` is required and must be specified in QueryPlateServiceRequest")
- }
- toSerialize["plate_color"] = o.PlateColor
- return json.Marshal(toSerialize)
- }
- func (o QueryPlateServiceRequest) String() string {
- var ret string
- if o.Appid == nil {
- ret += "Appid:<nil>, "
- } else {
- ret += fmt.Sprintf("Appid:%v, ", *o.Appid)
- }
- if o.SubMchid == nil {
- ret += "SubMchid:<nil>, "
- } else {
- ret += fmt.Sprintf("SubMchid:%v, ", *o.SubMchid)
- }
- if o.PlateNumber == nil {
- ret += "PlateNumber:<nil>, "
- } else {
- ret += fmt.Sprintf("PlateNumber:%v, ", *o.PlateNumber)
- }
- if o.Openid == nil {
- ret += "Openid:<nil>, "
- } else {
- ret += fmt.Sprintf("Openid:%v, ", *o.Openid)
- }
- if o.PlateColor == nil {
- ret += "PlateColor:<nil>"
- } else {
- ret += fmt.Sprintf("PlateColor:%v", *o.PlateColor)
- }
- return fmt.Sprintf("QueryPlateServiceRequest{%s}", ret)
- }
- func (o QueryPlateServiceRequest) Clone() *QueryPlateServiceRequest {
- ret := QueryPlateServiceRequest{}
- if o.Appid != nil {
- ret.Appid = new(string)
- *ret.Appid = *o.Appid
- }
- if o.SubMchid != nil {
- ret.SubMchid = new(string)
- *ret.SubMchid = *o.SubMchid
- }
- if o.PlateNumber != nil {
- ret.PlateNumber = new(string)
- *ret.PlateNumber = *o.PlateNumber
- }
- if o.Openid != nil {
- ret.Openid = new(string)
- *ret.Openid = *o.Openid
- }
- if o.PlateColor != nil {
- ret.PlateColor = new(PlateColor)
- *ret.PlateColor = *o.PlateColor
- }
- return &ret
- }
- // QueryTransactionRequest
- type QueryTransactionRequest struct {
- // 微信支付分配的子商户号,服务商模式下必传
- SubMchid *string `json:"sub_mchid,omitempty"`
- // 商户系统内部订单号,只能是数字、大小写字母,且在同一个商户号下唯一
- OutTradeNo *string `json:"out_trade_no"`
- }
- func (o QueryTransactionRequest) MarshalJSON() ([]byte, error) {
- toSerialize := map[string]interface{}{}
- if o.SubMchid != nil {
- toSerialize["sub_mchid"] = o.SubMchid
- }
- if o.OutTradeNo == nil {
- return nil, fmt.Errorf("field `OutTradeNo` is required and must be specified in QueryTransactionRequest")
- }
- toSerialize["out_trade_no"] = o.OutTradeNo
- return json.Marshal(toSerialize)
- }
- func (o QueryTransactionRequest) String() string {
- var ret string
- if o.SubMchid == nil {
- ret += "SubMchid:<nil>, "
- } else {
- ret += fmt.Sprintf("SubMchid:%v, ", *o.SubMchid)
- }
- if o.OutTradeNo == nil {
- ret += "OutTradeNo:<nil>"
- } else {
- ret += fmt.Sprintf("OutTradeNo:%v", *o.OutTradeNo)
- }
- return fmt.Sprintf("QueryTransactionRequest{%s}", ret)
- }
- func (o QueryTransactionRequest) Clone() *QueryTransactionRequest {
- ret := QueryTransactionRequest{}
- if o.SubMchid != nil {
- ret.SubMchid = new(string)
- *ret.SubMchid = *o.SubMchid
- }
- if o.OutTradeNo != nil {
- ret.OutTradeNo = new(string)
- *ret.OutTradeNo = *o.OutTradeNo
- }
- return &ret
- }
- // Transaction
- type Transaction struct {
- // appid是商户在微信申请公众号或移动应用成功后分配的帐号ID,登录平台为mp.weixin.qq.com或open.weixin.qq.com
- Appid *string `json:"appid"`
- // 子商户申请的公众号或移动应用appid,需要在服务商的商户平台为子商户绑定
- SubAppid *string `json:"sub_appid,omitempty"`
- // 微信支付分配的商户号
- SpMchid *string `json:"sp_mchid"`
- // 微信支付分配的子商户号
- SubMchid *string `json:"sub_mchid,omitempty"`
- // 商户自定义字段,用于交易账单中对扣费服务的描述。
- Description *string `json:"description"`
- // 订单成功创建时返回,遵循[rfc3339](https://datatracker.ietf.org/doc/html/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年5月20日 13点29分35秒。
- CreateTime *time.Time `json:"create_time"`
- // 商户系统内部订单号,只能是数字、大小写字母_-*且在同一个商户号下唯一
- OutTradeNo *string `json:"out_trade_no"`
- // 微信支付订单号
- TransactionId *string `json:"transaction_id,omitempty"`
- // SUCCESS—支付成功 ACCEPTED—已接收,等待扣款 PAY_FAIL–支付失败(其他原因,如银行返回失败) REFUND—转入退款
- TradeState *string `json:"trade_state"`
- // 对当前订单状态的描述和下一步操作的指引
- TradeStateDescription *string `json:"trade_state_description,omitempty"`
- // 订单支付完成时间,遵循[rfc3339](https://datatracker.ietf.org/doc/html/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年5月20日 13点29分35秒。
- SuccessTime *time.Time `json:"success_time,omitempty"`
- // 银行类型,采用字符串类型的银行标识。BPA:该笔订单由微信进行垫付
- BankType *string `json:"bank_type,omitempty"`
- // 枚举值: Y:用户已还款 N:用户未还款 注意:使用此字段前需先确认bank_type字段值为BPA以及 trade_state字段值为SUCCESS。
- UserRepaid *string `json:"user_repaid,omitempty"`
- // 附加数据,在查询API和支付通知中原样返回,可作为自定义参数使用
- Attach *string `json:"attach,omitempty"`
- // 交易场景值,目前支持 :PARKING:车场停车场景
- TradeScene *string `json:"trade_scene"`
- // 返回信息中的trade_scene为PARKING,返回该场景信息
- ParkingInfo *ParkingTradeScene `json:"parking_info,omitempty"`
- // 支付者信息
- Payer *Payer `json:"payer"`
- // 订单金额信息
- Amount *QueryOrderAmount `json:"amount"`
- // 优惠信息
- PromotionDetail []PromotionDetail `json:"promotion_detail,omitempty"`
- }
- func (o Transaction) MarshalJSON() ([]byte, error) {
- toSerialize := map[string]interface{}{}
- if o.Appid == nil {
- return nil, fmt.Errorf("field `Appid` is required and must be specified in Transaction")
- }
- toSerialize["appid"] = o.Appid
- if o.SubAppid != nil {
- toSerialize["sub_appid"] = o.SubAppid
- }
- if o.SpMchid == nil {
- return nil, fmt.Errorf("field `SpMchid` is required and must be specified in Transaction")
- }
- toSerialize["sp_mchid"] = o.SpMchid
- if o.SubMchid != nil {
- toSerialize["sub_mchid"] = o.SubMchid
- }
- if o.Description == nil {
- return nil, fmt.Errorf("field `Description` is required and must be specified in Transaction")
- }
- toSerialize["description"] = o.Description
- if o.CreateTime == nil {
- return nil, fmt.Errorf("field `CreateTime` is required and must be specified in Transaction")
- }
- toSerialize["create_time"] = o.CreateTime.Format(time.RFC3339)
- if o.OutTradeNo == nil {
- return nil, fmt.Errorf("field `OutTradeNo` is required and must be specified in Transaction")
- }
- toSerialize["out_trade_no"] = o.OutTradeNo
- if o.TransactionId != nil {
- toSerialize["transaction_id"] = o.TransactionId
- }
- if o.TradeState == nil {
- return nil, fmt.Errorf("field `TradeState` is required and must be specified in Transaction")
- }
- toSerialize["trade_state"] = o.TradeState
- if o.TradeStateDescription != nil {
- toSerialize["trade_state_description"] = o.TradeStateDescription
- }
- if o.SuccessTime != nil {
- toSerialize["success_time"] = o.SuccessTime.Format(time.RFC3339)
- }
- if o.BankType != nil {
- toSerialize["bank_type"] = o.BankType
- }
- if o.UserRepaid != nil {
- toSerialize["user_repaid"] = o.UserRepaid
- }
- if o.Attach != nil {
- toSerialize["attach"] = o.Attach
- }
- if o.TradeScene == nil {
- return nil, fmt.Errorf("field `TradeScene` is required and must be specified in Transaction")
- }
- toSerialize["trade_scene"] = o.TradeScene
- if o.ParkingInfo != nil {
- toSerialize["parking_info"] = o.ParkingInfo
- }
- if o.Payer == nil {
- return nil, fmt.Errorf("field `Payer` is required and must be specified in Transaction")
- }
- toSerialize["payer"] = o.Payer
- if o.Amount == nil {
- return nil, fmt.Errorf("field `Amount` is required and must be specified in Transaction")
- }
- toSerialize["amount"] = o.Amount
- if o.PromotionDetail != nil {
- toSerialize["promotion_detail"] = o.PromotionDetail
- }
- return json.Marshal(toSerialize)
- }
- func (o Transaction) String() string {
- var ret string
- if o.Appid == nil {
- ret += "Appid:<nil>, "
- } else {
- ret += fmt.Sprintf("Appid:%v, ", *o.Appid)
- }
- if o.SubAppid == nil {
- ret += "SubAppid:<nil>, "
- } else {
- ret += fmt.Sprintf("SubAppid:%v, ", *o.SubAppid)
- }
- if o.SpMchid == nil {
- ret += "SpMchid:<nil>, "
- } else {
- ret += fmt.Sprintf("SpMchid:%v, ", *o.SpMchid)
- }
- if o.SubMchid == nil {
- ret += "SubMchid:<nil>, "
- } else {
- ret += fmt.Sprintf("SubMchid:%v, ", *o.SubMchid)
- }
- if o.Description == nil {
- ret += "Description:<nil>, "
- } else {
- ret += fmt.Sprintf("Description:%v, ", *o.Description)
- }
- if o.CreateTime == nil {
- ret += "CreateTime:<nil>, "
- } else {
- ret += fmt.Sprintf("CreateTime:%v, ", *o.CreateTime)
- }
- if o.OutTradeNo == nil {
- ret += "OutTradeNo:<nil>, "
- } else {
- ret += fmt.Sprintf("OutTradeNo:%v, ", *o.OutTradeNo)
- }
- if o.TransactionId == nil {
- ret += "TransactionId:<nil>, "
- } else {
- ret += fmt.Sprintf("TransactionId:%v, ", *o.TransactionId)
- }
- if o.TradeState == nil {
- ret += "TradeState:<nil>, "
- } else {
- ret += fmt.Sprintf("TradeState:%v, ", *o.TradeState)
- }
- if o.TradeStateDescription == nil {
- ret += "TradeStateDescription:<nil>, "
- } else {
- ret += fmt.Sprintf("TradeStateDescription:%v, ", *o.TradeStateDescription)
- }
- if o.SuccessTime == nil {
- ret += "SuccessTime:<nil>, "
- } else {
- ret += fmt.Sprintf("SuccessTime:%v, ", *o.SuccessTime)
- }
- if o.BankType == nil {
- ret += "BankType:<nil>, "
- } else {
- ret += fmt.Sprintf("BankType:%v, ", *o.BankType)
- }
- if o.UserRepaid == nil {
- ret += "UserRepaid:<nil>, "
- } else {
- ret += fmt.Sprintf("UserRepaid:%v, ", *o.UserRepaid)
- }
- if o.Attach == nil {
- ret += "Attach:<nil>, "
- } else {
- ret += fmt.Sprintf("Attach:%v, ", *o.Attach)
- }
- if o.TradeScene == nil {
- ret += "TradeScene:<nil>, "
- } else {
- ret += fmt.Sprintf("TradeScene:%v, ", *o.TradeScene)
- }
- ret += fmt.Sprintf("ParkingInfo:%v, ", o.ParkingInfo)
- ret += fmt.Sprintf("Payer:%v, ", o.Payer)
- ret += fmt.Sprintf("Amount:%v, ", o.Amount)
- ret += fmt.Sprintf("PromotionDetail:%v", o.PromotionDetail)
- return fmt.Sprintf("Transaction{%s}", ret)
- }
- func (o Transaction) Clone() *Transaction {
- ret := Transaction{}
- if o.Appid != nil {
- ret.Appid = new(string)
- *ret.Appid = *o.Appid
- }
- if o.SubAppid != nil {
- ret.SubAppid = new(string)
- *ret.SubAppid = *o.SubAppid
- }
- if o.SpMchid != nil {
- ret.SpMchid = new(string)
- *ret.SpMchid = *o.SpMchid
- }
- if o.SubMchid != nil {
- ret.SubMchid = new(string)
- *ret.SubMchid = *o.SubMchid
- }
- if o.Description != nil {
- ret.Description = new(string)
- *ret.Description = *o.Description
- }
- if o.CreateTime != nil {
- ret.CreateTime = new(time.Time)
- *ret.CreateTime = *o.CreateTime
- }
- if o.OutTradeNo != nil {
- ret.OutTradeNo = new(string)
- *ret.OutTradeNo = *o.OutTradeNo
- }
- if o.TransactionId != nil {
- ret.TransactionId = new(string)
- *ret.TransactionId = *o.TransactionId
- }
- if o.TradeState != nil {
- ret.TradeState = new(string)
- *ret.TradeState = *o.TradeState
- }
- if o.TradeStateDescription != nil {
- ret.TradeStateDescription = new(string)
- *ret.TradeStateDescription = *o.TradeStateDescription
- }
- if o.SuccessTime != nil {
- ret.SuccessTime = new(time.Time)
- *ret.SuccessTime = *o.SuccessTime
- }
- if o.BankType != nil {
- ret.BankType = new(string)
- *ret.BankType = *o.BankType
- }
- if o.UserRepaid != nil {
- ret.UserRepaid = new(string)
- *ret.UserRepaid = *o.UserRepaid
- }
- if o.Attach != nil {
- ret.Attach = new(string)
- *ret.Attach = *o.Attach
- }
- if o.TradeScene != nil {
- ret.TradeScene = new(string)
- *ret.TradeScene = *o.TradeScene
- }
- if o.ParkingInfo != nil {
- ret.ParkingInfo = o.ParkingInfo.Clone()
- }
- if o.Payer != nil {
- ret.Payer = o.Payer.Clone()
- }
- if o.Amount != nil {
- ret.Amount = o.Amount.Clone()
- }
- if o.PromotionDetail != nil {
- ret.PromotionDetail = make([]PromotionDetail, len(o.PromotionDetail))
- for i, item := range o.PromotionDetail {
- ret.PromotionDetail[i] = *item.Clone()
- }
- }
- return &ret
- }
|