
1package main
2
3import (
4 "bytes"
5 "demo/wxpay_utility"
6 "encoding/json"
7 "fmt"
8 "net/http"
9 "net/url"
10)
11
12func main() {
13
14 config, err := wxpay_utility.CreateMchConfig(
15 "19xxxxxxxx",
16 "1DDE55AD98Exxxxxxxxxx",
17 "/path/to/apiclient_key.pem",
18 "PUB_KEY_ID_xxxxxxxxxxxxx",
19 "/path/to/wxp_pub.pem",
20 )
21 if err != nil {
22 fmt.Println(err)
23 return
24 }
25
26 request := &SubmitApplicationRequest{
27 ParkingLot: &ParkingLot{
28 ParkingLotName: wxpay_utility.String("腾讯大厦停车场"),
29 OutParkingLotId: wxpay_utility.String("lot_sz_tencent_001"),
30 ParkingLotAddress: wxpay_utility.String("广东省深圳市南山区科技中一道10000号"),
31 Longitude: wxpay_utility.String("113.934528"),
32 Latitude: wxpay_utility.String("22.540503"),
33 ParkingLotType: PARKINGLOTTYPE_PARKING_LOT_TYPE_UNKNOWN.Ptr(),
34 PhoneNumber: wxpay_utility.String("0755-86013388"),
35 ParkingSignUrl: wxpay_utility.String("https://example.com/parking_sign.jpg"),
36 NotificationTextList: []string{"example_NotificationTextList"},
37 PaymentMiniProgAppid: wxpay_utility.String("wx1234567890abcdef"),
38 PaymentPath: wxpay_utility.String("/pages/pay/index?park_uuid=xxx"),
39 ParkingOrderMiniProgAppid: wxpay_utility.String("wx1234567890abcdef"),
40 ParkingOrderPath: wxpay_utility.String("/pages/order/index"),
41 ChargingRule: &ChargingRule{
42 RuleType: CHARGINGRULETYPE_CHARGING_RULE_UNKNOWN.Ptr(),
43 FeeLimitType: FEELIMITTYPE_FEE_LIMIT_UNKNOWN.Ptr(),
44 DailyLimitType: DAILYLIMITTYPE_DAILY_LIMIT_UNKNOWN.Ptr(),
45 TimeRoundingType: TIMEROUNDINGTYPE_TIME_ROUND_UNKNOWN.Ptr(),
46 FreeEntryDuration: wxpay_utility.Int64(1),
47 FreeExitDuration: wxpay_utility.Int64(1),
48 FixedIntervalRule: []FixedIntervalRule{FixedIntervalRule{
49 DayType: DAYTYPE_DAY_TYPE_UNKNOWN.Ptr(),
50 StartTime: wxpay_utility.String("08:00"),
51 EndTime: wxpay_utility.String("22:00"),
52 VehicleType: VEHICLETYPE_VEHICLE_TYPE_UNKNOWN.Ptr(),
53 PlateType: PLATETYPE_PLATE_TYPE_UNKNOWN.Ptr(),
54 FirstDuration: wxpay_utility.Int64(1),
55 FirstAmount: wxpay_utility.Int64(1),
56 IntervalDuration: wxpay_utility.Int64(1),
57 IntervalAmount: wxpay_utility.Int64(1),
58 IntervalMaxAmount: wxpay_utility.Int64(1),
59 MaxFeePerDay: wxpay_utility.Int64(1),
60 FreePeriodChargingMode: FREEPERIODCHARGINGMODE_FREE_PERIOD_CHARGING_UNKNOWN.Ptr(),
61 FreePeriodCalculationMode: FREEPERIODCALCULATIONMODE_FREE_PERIOD_CAL_UNKNOWN.Ptr(),
62 IsGreenVehicleFreeParking: wxpay_utility.Bool(false),
63 FirstDurationMode: FIRSTDURATIONMODE_FIRST_DURATION_MODE_UNKNOWN.Ptr(),
64 }},
65 DurationSegmentRule: []DurationSegmentRule{DurationSegmentRule{
66 DayType: DAYTYPE_DAY_TYPE_UNKNOWN.Ptr(),
67 StartTime: wxpay_utility.String("08:00"),
68 EndTime: wxpay_utility.String("22:00"),
69 VehicleType: VEHICLETYPE_VEHICLE_TYPE_UNKNOWN.Ptr(),
70 PlateType: PLATETYPE_PLATE_TYPE_UNKNOWN.Ptr(),
71 ChargeMode: CHARGEMODE_UNKNOWN.Ptr(),
72 DurationFrom: wxpay_utility.Int64(1),
73 DurationTo: wxpay_utility.Int64(1),
74 FixedAmount: wxpay_utility.Int64(1),
75 IntervalMin: wxpay_utility.Int64(1),
76 IntervalAmount: wxpay_utility.Int64(1),
77 IntervalMaxAmount: wxpay_utility.Int64(1),
78 MaxFeePerDay: wxpay_utility.Int64(1),
79 }},
80 PreEntryRule: []PreEntryRule{PreEntryRule{
81 DayType: DAYTYPE_DAY_TYPE_UNKNOWN.Ptr(),
82 StartTime: wxpay_utility.String("08:00"),
83 EndTime: wxpay_utility.String("22:00"),
84 VehicleType: VEHICLETYPE_VEHICLE_TYPE_UNKNOWN.Ptr(),
85 PlateType: PLATETYPE_PLATE_TYPE_UNKNOWN.Ptr(),
86 Amount: wxpay_utility.Int64(1),
87 MaxFeePerDay: wxpay_utility.Int64(1),
88 }},
89 HolidayMode: HOLIDAYMODE_HOLIDAY_MODE_UNKNOWN.Ptr(),
90 AggregateLimitMode: AGGREGATELIMITMODE_AGGREGATE_LIMIT_MODE_UNKNOWN.Ptr(),
91 FirstChargeTimeMode: FIRSTCHARGETIMEMODE_FIRST_CHARGE_TIME_MODE_UNKNOWN.Ptr(),
92 },
93 },
94 }
95
96 response, err := SubmitApplication(config, request)
97 if err != nil {
98 fmt.Printf("请求失败: %+v\n", err)
99
100 return
101 }
102
103
104 fmt.Printf("请求成功: %+v\n", response)
105}
106
107func SubmitApplication(config *wxpay_utility.MchConfig, request *SubmitApplicationRequest) (response *SubmitApplicationResponse, err error) {
108 const (
109 host = "https://api.mch.weixin.qq.com"
110 method = "POST"
111 path = "/v3/parking/reminders/application"
112 )
113
114 reqUrl, err := url.Parse(fmt.Sprintf("%s%s", host, path))
115 if err != nil {
116 return nil, err
117 }
118 reqBody, err := json.Marshal(request)
119 if err != nil {
120 return nil, err
121 }
122 httpRequest, err := http.NewRequest(method, reqUrl.String(), bytes.NewReader(reqBody))
123 if err != nil {
124 return nil, err
125 }
126 httpRequest.Header.Set("Accept", "application/json")
127 httpRequest.Header.Set("Wechatpay-Serial", config.WechatPayPublicKeyId())
128 httpRequest.Header.Set("Content-Type", "application/json")
129 authorization, err := wxpay_utility.BuildAuthorization(config.MchId(), config.CertificateSerialNo(), config.PrivateKey(), method, reqUrl.RequestURI(), reqBody)
130 if err != nil {
131 return nil, err
132 }
133 httpRequest.Header.Set("Authorization", authorization)
134
135 client := &http.Client{}
136 httpResponse, err := client.Do(httpRequest)
137 if err != nil {
138 return nil, err
139 }
140 respBody, err := wxpay_utility.ExtractResponseBody(httpResponse)
141 if err != nil {
142 return nil, err
143 }
144 if httpResponse.StatusCode >= 200 && httpResponse.StatusCode < 300 {
145
146 err = wxpay_utility.ValidateResponse(
147 config.WechatPayPublicKeyId(),
148 config.WechatPayPublicKey(),
149 &httpResponse.Header,
150 respBody,
151 )
152 if err != nil {
153 return nil, err
154 }
155 response := &SubmitApplicationResponse{}
156 if err := json.Unmarshal(respBody, response); err != nil {
157 return nil, err
158 }
159
160 return response, nil
161 } else {
162 return nil, wxpay_utility.NewApiException(
163 httpResponse.StatusCode,
164 httpResponse.Header,
165 respBody,
166 )
167 }
168}
169
170type SubmitApplicationRequest struct {
171 ParkingLot *ParkingLot `json:"parking_lot,omitempty"`
172}
173
174type SubmitApplicationResponse struct {
175 Code *string `json:"code,omitempty"`
176 Message *string `json:"message,omitempty"`
177 ParkingLotAuditNo *string `json:"parking_lot_audit_no,omitempty"`
178}
179
180type ParkingLot struct {
181 ParkingLotName *string `json:"parking_lot_name,omitempty"`
182 OutParkingLotId *string `json:"out_parking_lot_id,omitempty"`
183 ParkingLotAddress *string `json:"parking_lot_address,omitempty"`
184 Longitude *string `json:"longitude,omitempty"`
185 Latitude *string `json:"latitude,omitempty"`
186 ParkingLotType *ParkingLotType `json:"parking_lot_type,omitempty"`
187 PhoneNumber *string `json:"phone_number,omitempty"`
188 ParkingSignUrl *string `json:"parking_sign_url,omitempty"`
189 NotificationTextList []string `json:"notification_text_list,omitempty"`
190 PaymentMiniProgAppid *string `json:"payment_mini_prog_appid,omitempty"`
191 PaymentPath *string `json:"payment_path,omitempty"`
192 ParkingOrderMiniProgAppid *string `json:"parking_order_mini_prog_appid,omitempty"`
193 ParkingOrderPath *string `json:"parking_order_path,omitempty"`
194 ChargingRule *ChargingRule `json:"charging_rule,omitempty"`
195}
196
197type ParkingLotType string
198
199func (e ParkingLotType) Ptr() *ParkingLotType {
200 return &e
201}
202
203const (
204 PARKINGLOTTYPE_PARKING_LOT_TYPE_UNKNOWN ParkingLotType = "PARKING_LOT_TYPE_UNKNOWN"
205 PARKINGLOTTYPE_PARKING_LOT_TYPE_BUSINESS_DISTRICT ParkingLotType = "PARKING_LOT_TYPE_BUSINESS_DISTRICT"
206 PARKINGLOTTYPE_PARKING_LOT_TYPE_OFFICE_BUILDING ParkingLotType = "PARKING_LOT_TYPE_OFFICE_BUILDING"
207 PARKINGLOTTYPE_PARKING_LOT_TYPE_TRANSPORTATION_HUB ParkingLotType = "PARKING_LOT_TYPE_TRANSPORTATION_HUB"
208 PARKINGLOTTYPE_PARKING_LOT_TYPE_RESIDENTIAL_AREA ParkingLotType = "PARKING_LOT_TYPE_RESIDENTIAL_AREA"
209 PARKINGLOTTYPE_PARKING_LOT_TYPE_PARK_AREA ParkingLotType = "PARKING_LOT_TYPE_PARK_AREA"
210 PARKINGLOTTYPE_PARKING_LOT_TYPE_OTHER_PUBLIC_FACILITY ParkingLotType = "PARKING_LOT_TYPE_OTHER_PUBLIC_FACILITY"
211)
212
213type ChargingRule struct {
214 RuleType *ChargingRuleType `json:"rule_type,omitempty"`
215 FeeLimitType *FeeLimitType `json:"fee_limit_type,omitempty"`
216 DailyLimitType *DailyLimitType `json:"daily_limit_type,omitempty"`
217 TimeRoundingType *TimeRoundingType `json:"time_rounding_type,omitempty"`
218 FreeEntryDuration *int64 `json:"free_entry_duration,omitempty"`
219 FreeExitDuration *int64 `json:"free_exit_duration,omitempty"`
220 FixedIntervalRule []FixedIntervalRule `json:"fixed_interval_rule,omitempty"`
221 DurationSegmentRule []DurationSegmentRule `json:"duration_segment_rule,omitempty"`
222 PreEntryRule []PreEntryRule `json:"pre_entry_rule,omitempty"`
223 HolidayMode *HolidayMode `json:"holiday_mode,omitempty"`
224 AggregateLimitMode *AggregateLimitMode `json:"aggregate_limit_mode,omitempty"`
225 FirstChargeTimeMode *FirstChargeTimeMode `json:"first_charge_time_mode,omitempty"`
226}
227
228type ChargingRuleType string
229
230func (e ChargingRuleType) Ptr() *ChargingRuleType {
231 return &e
232}
233
234const (
235 CHARGINGRULETYPE_CHARGING_RULE_UNKNOWN ChargingRuleType = "CHARGING_RULE_UNKNOWN"
236 CHARGINGRULETYPE_CHARGING_RULE_FIXED_INTERVAL ChargingRuleType = "CHARGING_RULE_FIXED_INTERVAL"
237 CHARGINGRULETYPE_CHARGING_RULE_SEGMENT ChargingRuleType = "CHARGING_RULE_SEGMENT"
238 CHARGINGRULETYPE_CHARGING_RULE_PER_ENTRY ChargingRuleType = "CHARGING_RULE_PER_ENTRY"
239)
240
241type FeeLimitType string
242
243func (e FeeLimitType) Ptr() *FeeLimitType {
244 return &e
245}
246
247const (
248 FEELIMITTYPE_FEE_LIMIT_UNKNOWN FeeLimitType = "FEE_LIMIT_UNKNOWN"
249 FEELIMITTYPE_FEE_LIMIT_AGGREGATE FeeLimitType = "FEE_LIMIT_AGGREGATE"
250 FEELIMITTYPE_FEE_LIMIT_SINGLE FeeLimitType = "FEE_LIMIT_SINGLE"
251)
252
253type DailyLimitType string
254
255func (e DailyLimitType) Ptr() *DailyLimitType {
256 return &e
257}
258
259const (
260 DAILYLIMITTYPE_DAILY_LIMIT_UNKNOWN DailyLimitType = "DAILY_LIMIT_UNKNOWN"
261 DAILYLIMITTYPE_DAILY_LIMIT_ROLLING_24_H DailyLimitType = "DAILY_LIMIT_ROLLING_24H"
262 DAILYLIMITTYPE_DAILY_LIMIT_CALENDAR_DAY DailyLimitType = "DAILY_LIMIT_CALENDAR_DAY"
263)
264
265type TimeRoundingType string
266
267func (e TimeRoundingType) Ptr() *TimeRoundingType {
268 return &e
269}
270
271const (
272 TIMEROUNDINGTYPE_TIME_ROUND_UNKNOWN TimeRoundingType = "TIME_ROUND_UNKNOWN"
273 TIMEROUNDINGTYPE_TIME_ROUND_DOWN TimeRoundingType = "TIME_ROUND_DOWN"
274 TIMEROUNDINGTYPE_TIME_ROUND_UP TimeRoundingType = "TIME_ROUND_UP"
275)
276
277type FixedIntervalRule struct {
278 DayType *DayType `json:"day_type,omitempty"`
279 StartTime *string `json:"start_time,omitempty"`
280 EndTime *string `json:"end_time,omitempty"`
281 VehicleType *VehicleType `json:"vehicle_type,omitempty"`
282 PlateType *PlateType `json:"plate_type,omitempty"`
283 FirstDuration *int64 `json:"first_duration,omitempty"`
284 FirstAmount *int64 `json:"first_amount,omitempty"`
285 IntervalDuration *int64 `json:"interval_duration,omitempty"`
286 IntervalAmount *int64 `json:"interval_amount,omitempty"`
287 IntervalMaxAmount *int64 `json:"interval_max_amount,omitempty"`
288 MaxFeePerDay *int64 `json:"max_fee_per_day,omitempty"`
289 FreePeriodChargingMode *FreePeriodChargingMode `json:"free_period_charging_mode,omitempty"`
290 FreePeriodCalculationMode *FreePeriodCalculationMode `json:"free_period_calculation_mode,omitempty"`
291 IsGreenVehicleFreeParking *bool `json:"is_green_vehicle_free_parking,omitempty"`
292 FirstDurationMode *FirstDurationMode `json:"first_duration_mode,omitempty"`
293}
294
295type DurationSegmentRule struct {
296 DayType *DayType `json:"day_type,omitempty"`
297 StartTime *string `json:"start_time,omitempty"`
298 EndTime *string `json:"end_time,omitempty"`
299 VehicleType *VehicleType `json:"vehicle_type,omitempty"`
300 PlateType *PlateType `json:"plate_type,omitempty"`
301 ChargeMode *ChargeMode `json:"charge_mode,omitempty"`
302 DurationFrom *int64 `json:"duration_from,omitempty"`
303 DurationTo *int64 `json:"duration_to,omitempty"`
304 FixedAmount *int64 `json:"fixed_amount,omitempty"`
305 IntervalMin *int64 `json:"interval_min,omitempty"`
306 IntervalAmount *int64 `json:"interval_amount,omitempty"`
307 IntervalMaxAmount *int64 `json:"interval_max_amount,omitempty"`
308 MaxFeePerDay *int64 `json:"max_fee_per_day,omitempty"`
309}
310
311type PreEntryRule struct {
312 DayType *DayType `json:"day_type,omitempty"`
313 StartTime *string `json:"start_time,omitempty"`
314 EndTime *string `json:"end_time,omitempty"`
315 VehicleType *VehicleType `json:"vehicle_type,omitempty"`
316 PlateType *PlateType `json:"plate_type,omitempty"`
317 Amount *int64 `json:"amount,omitempty"`
318 MaxFeePerDay *int64 `json:"max_fee_per_day,omitempty"`
319}
320
321type HolidayMode string
322
323func (e HolidayMode) Ptr() *HolidayMode {
324 return &e
325}
326
327const (
328 HOLIDAYMODE_HOLIDAY_MODE_UNKNOWN HolidayMode = "HOLIDAY_MODE_UNKNOWN"
329 HOLIDAYMODE_HOLIDAY_MODE_LEGAL_MODY HolidayMode = "HOLIDAY_MODE_LEGAL_MODY"
330 HOLIDAYMODE_HOLIDAY_MODE_CALENDAR_MODY HolidayMode = "HOLIDAY_MODE_CALENDAR_MODY"
331 HOLIDAYMODE_HOLIDAY_MODE_FINANCIAL_MODY HolidayMode = "HOLIDAY_MODE_FINANCIAL_MODY"
332)
333
334type AggregateLimitMode string
335
336func (e AggregateLimitMode) Ptr() *AggregateLimitMode {
337 return &e
338}
339
340const (
341 AGGREGATELIMITMODE_AGGREGATE_LIMIT_MODE_UNKNOWN AggregateLimitMode = "AGGREGATE_LIMIT_MODE_UNKNOWN"
342 AGGREGATELIMITMODE_AGGREGATE_LIMIT_MODE_NORMAL AggregateLimitMode = "AGGREGATE_LIMIT_MODE_NORMAL"
343 AGGREGATELIMITMODE_AGGREGATE_LIMIT_MODE_MIN AggregateLimitMode = "AGGREGATE_LIMIT_MODE_MIN"
344)
345
346type FirstChargeTimeMode string
347
348func (e FirstChargeTimeMode) Ptr() *FirstChargeTimeMode {
349 return &e
350}
351
352const (
353 FIRSTCHARGETIMEMODE_FIRST_CHARGE_TIME_MODE_UNKNOWN FirstChargeTimeMode = "FIRST_CHARGE_TIME_MODE_UNKNOWN"
354 FIRSTCHARGETIMEMODE_FIRST_CHARGE_TIME_MODE_ENTER FirstChargeTimeMode = "FIRST_CHARGE_TIME_MODE_ENTER"
355 FIRSTCHARGETIMEMODE_FIRST_CHARGE_TIME_MODE_AFTER_FREE FirstChargeTimeMode = "FIRST_CHARGE_TIME_MODE_AFTER_FREE"
356)
357
358type DayType string
359
360func (e DayType) Ptr() *DayType {
361 return &e
362}
363
364const (
365 DAYTYPE_DAY_TYPE_UNKNOWN DayType = "DAY_TYPE_UNKNOWN"
366 DAYTYPE_DAY_TYPE_WEEKDAY DayType = "DAY_TYPE_WEEKDAY"
367 DAYTYPE_DAY_TYPE_HOLIDAY DayType = "DAY_TYPE_HOLIDAY"
368 DAYTYPE_DAY_TYPE_ALL_DAY DayType = "DAY_TYPE_ALL_DAY"
369)
370
371type VehicleType string
372
373func (e VehicleType) Ptr() *VehicleType {
374 return &e
375}
376
377const (
378 VEHICLETYPE_VEHICLE_TYPE_UNKNOWN VehicleType = "VEHICLE_TYPE_UNKNOWN"
379 VEHICLETYPE_VEHICLE_TYPE_SMALL VehicleType = "VEHICLE_TYPE_SMALL"
380 VEHICLETYPE_VEHICLE_TYPE_LARGE VehicleType = "VEHICLE_TYPE_LARGE"
381 VEHICLETYPE_VEHICLE_TYPE_EXTRA_LARGE VehicleType = "VEHICLE_TYPE_EXTRA_LARGE"
382 VEHICLETYPE_VEHICLE_TYPE_ALL_TYPE VehicleType = "VEHICLE_TYPE_ALL_TYPE"
383)
384
385type PlateType string
386
387func (e PlateType) Ptr() *PlateType {
388 return &e
389}
390
391const (
392 PLATETYPE_PLATE_TYPE_UNKNOWN PlateType = "PLATE_TYPE_UNKNOWN"
393 PLATETYPE_PLATE_TYPE_TEMPORARY PlateType = "PLATE_TYPE_TEMPORARY"
394 PLATETYPE_PLATE_TYPE_MONTHLY PlateType = "PLATE_TYPE_MONTHLY"
395 PLATETYPE_PLATE_TYPE_FREE PlateType = "PLATE_TYPE_FREE"
396 PLATETYPE_PLATE_TYPE_PREPAID PlateType = "PLATE_TYPE_PREPAID"
397 PLATETYPE_PLATE_TYPE_OTHERS PlateType = "PLATE_TYPE_OTHERS"
398)
399
400type FreePeriodChargingMode string
401
402func (e FreePeriodChargingMode) Ptr() *FreePeriodChargingMode {
403 return &e
404}
405
406const (
407 FREEPERIODCHARGINGMODE_FREE_PERIOD_CHARGING_UNKNOWN FreePeriodChargingMode = "FREE_PERIOD_CHARGING_UNKNOWN"
408 FREEPERIODCHARGINGMODE_FREE_PERIOD_CHARGING_ONCE_PER_ENTRY FreePeriodChargingMode = "FREE_PERIOD_CHARGING_ONCE_PER_ENTRY"
409 FREEPERIODCHARGINGMODE_FREE_PERIOD_CHARGING_ONCE_PER_24_HOURS FreePeriodChargingMode = "FREE_PERIOD_CHARGING_ONCE_PER_24_HOURS"
410 FREEPERIODCHARGINGMODE_FREE_PERIOD_CHARGING_ONCE_PER_CALENDAR_DAY FreePeriodChargingMode = "FREE_PERIOD_CHARGING_ONCE_PER_CALENDAR_DAY"
411 FREEPERIODCHARGINGMODE_FREE_PERIOD_CHARGING_CUMULATIVE_QUOTA_CALCULATION FreePeriodChargingMode = "FREE_PERIOD_CHARGING_CUMULATIVE_QUOTA_CALCULATION"
412)
413
414type FreePeriodCalculationMode string
415
416func (e FreePeriodCalculationMode) Ptr() *FreePeriodCalculationMode {
417 return &e
418}
419
420const (
421 FREEPERIODCALCULATIONMODE_FREE_PERIOD_CAL_UNKNOWN FreePeriodCalculationMode = "FREE_PERIOD_CAL_UNKNOWN"
422 FREEPERIODCALCULATIONMODE_FREE_PERIOD_CAL_CONCURRENT_START FreePeriodCalculationMode = "FREE_PERIOD_CAL_CONCURRENT_START"
423 FREEPERIODCALCULATIONMODE_FREE_PERIOD_CAL_SEQUENTIAL_START FreePeriodCalculationMode = "FREE_PERIOD_CAL_SEQUENTIAL_START"
424)
425
426type FirstDurationMode string
427
428func (e FirstDurationMode) Ptr() *FirstDurationMode {
429 return &e
430}
431
432const (
433 FIRSTDURATIONMODE_FIRST_DURATION_MODE_UNKNOWN FirstDurationMode = "FIRST_DURATION_MODE_UNKNOWN"
434 FIRSTDURATIONMODE_FIRST_DURATION_MODE_ONLY_FIRST_DURATION FirstDurationMode = "FIRST_DURATION_MODE_ONLY_FIRST_DURATION"
435 FIRSTDURATIONMODE_FIRST_DURATION_MODE_EVERY_FIRST_DURATION FirstDurationMode = "FIRST_DURATION_MODE_EVERY_FIRST_DURATION"
436)
437
438type ChargeMode string
439
440func (e ChargeMode) Ptr() *ChargeMode {
441 return &e
442}
443
444const (
445 CHARGEMODE_UNKNOWN ChargeMode = "UNKNOWN"
446 CHARGEMODE_INTERVAL ChargeMode = "INTERVAL"
447 CHARGEMODE_ONE_TIME ChargeMode = "ONE_TIME"
448)
449