parent
1602f17a51
commit
87e7c8cdc1
@ -1,5 +1,5 @@
|
||||
package go_library
|
||||
|
||||
func Version() string {
|
||||
return "1.0.55"
|
||||
return "1.0.56"
|
||||
}
|
||||
|
@ -0,0 +1,5 @@
|
||||
package nldyp
|
||||
|
||||
func (c *Client) GetVendor() string {
|
||||
return c.config.vendor
|
||||
}
|
@ -1 +1,41 @@
|
||||
package nldyp
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"github.com/dtapps/go-library/utils/gorequest"
|
||||
)
|
||||
|
||||
type PartnerCommonGetSurplusMoneyResponse struct {
|
||||
Status int `json:"status"`
|
||||
Data []struct {
|
||||
SurplusMoney float64 `json:"surplusMoney"` // 余额
|
||||
WithholdingMoney float64 `json:"withholdingMoney"` // 预扣金额
|
||||
AvailableMoney float64 `json:"AvailableMoney"` // 可用余额
|
||||
} `json:"data"`
|
||||
Content string `json:"content"`
|
||||
}
|
||||
|
||||
type PartnerCommonGetSurplusMoneyResult struct {
|
||||
Result PartnerCommonGetSurplusMoneyResponse // 结果
|
||||
Body []byte // 内容
|
||||
Http gorequest.Response // 请求
|
||||
Err error // 错误
|
||||
}
|
||||
|
||||
func newPartnerCommonGetSurplusMoneyResult(result PartnerCommonGetSurplusMoneyResponse, body []byte, http gorequest.Response, err error) *PartnerCommonGetSurplusMoneyResult {
|
||||
return &PartnerCommonGetSurplusMoneyResult{Result: result, Body: body, Http: http, Err: err}
|
||||
}
|
||||
|
||||
// PartnerCommonGetSurplusMoney 释放锁座
|
||||
// https://docs.apipost.cn/preview/fa101f4865dc783f/66e7c2e894fda4a6?target_id=802c4269-60c5-4d61-bda2-ec82cae60930
|
||||
func (c *Client) PartnerCommonGetSurplusMoney(ctx context.Context, notMustParams ...gorequest.Params) *PartnerCommonGetSurplusMoneyResult {
|
||||
// 参数
|
||||
params := gorequest.NewParamsWith(notMustParams...)
|
||||
// 请求
|
||||
request, err := c.request(ctx, apiUrl+"/partner/common/GetSurplusMoney", params)
|
||||
// 定义
|
||||
var response PartnerCommonGetSurplusMoneyResponse
|
||||
err = json.Unmarshal(request.ResponseBody, &response)
|
||||
return newPartnerCommonGetSurplusMoneyResult(response, request.ResponseBody, request, err)
|
||||
}
|
||||
|
@ -1 +1,36 @@
|
||||
package nldyp
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"github.com/dtapps/go-library/utils/gorequest"
|
||||
)
|
||||
|
||||
type PartnerData4GetOrderDataResponse struct {
|
||||
Status int `json:"status"`
|
||||
Content string `json:"content"`
|
||||
}
|
||||
|
||||
type PartnerData4GetOrderDataResult struct {
|
||||
Result PartnerData4GetOrderDataResponse // 结果
|
||||
Body []byte // 内容
|
||||
Http gorequest.Response // 请求
|
||||
Err error // 错误
|
||||
}
|
||||
|
||||
func newPartnerData4GetOrderDataResult(result PartnerData4GetOrderDataResponse, body []byte, http gorequest.Response, err error) *PartnerData4GetOrderDataResult {
|
||||
return &PartnerData4GetOrderDataResult{Result: result, Body: body, Http: http, Err: err}
|
||||
}
|
||||
|
||||
// PartnerData4GetOrderData 15分钟出票模式
|
||||
// https://docs.apipost.cn/preview/fa101f4865dc783f/66e7c2e894fda4a6?target_id=98dfc19f-6f76-4018-8de4-86cdeea4fcab
|
||||
func (c *Client) PartnerData4GetOrderData(ctx context.Context, notMustParams ...gorequest.Params) *PartnerData4GetOrderDataResult {
|
||||
// 参数
|
||||
params := gorequest.NewParamsWith(notMustParams...)
|
||||
// 请求
|
||||
request, err := c.request(ctx, apiUrl+"/partner/data4/GetOrderData", params)
|
||||
// 定义
|
||||
var response PartnerData4GetOrderDataResponse
|
||||
err = json.Unmarshal(request.ResponseBody, &response)
|
||||
return newPartnerData4GetOrderDataResult(response, request.ResponseBody, request, err)
|
||||
}
|
||||
|
@ -1 +1,41 @@
|
||||
package nldyp
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"github.com/dtapps/go-library/utils/gorequest"
|
||||
)
|
||||
|
||||
type PartnerData4GetAddressListsResponse struct {
|
||||
Code int `json:"code"`
|
||||
Msg string `json:"msg"`
|
||||
Data []struct {
|
||||
Id int `json:"id"` // 地区ID
|
||||
AreaName string `json:"area_name"` // 地区名
|
||||
CityId string `json:"city_id"` // 城市ID
|
||||
} `json:"data"`
|
||||
}
|
||||
|
||||
type PartnerData4GetAddressListsResult struct {
|
||||
Result PartnerData4GetAddressListsResponse // 结果
|
||||
Body []byte // 内容
|
||||
Http gorequest.Response // 请求
|
||||
Err error // 错误
|
||||
}
|
||||
|
||||
func newPartnerData4GetAddressListsResult(result PartnerData4GetAddressListsResponse, body []byte, http gorequest.Response, err error) *PartnerData4GetAddressListsResult {
|
||||
return &PartnerData4GetAddressListsResult{Result: result, Body: body, Http: http, Err: err}
|
||||
}
|
||||
|
||||
// PartnerData4GetAddressLists 获取地区
|
||||
// https://docs.apipost.cn/preview/fa101f4865dc783f/66e7c2e894fda4a6?target_id=85053df1-09b5-4042-aeed-c7e10f3cdddc
|
||||
func (c *Client) PartnerData4GetAddressLists(ctx context.Context) *PartnerData4GetAddressListsResult {
|
||||
// 参数
|
||||
params := gorequest.NewParams()
|
||||
// 请求
|
||||
request, err := c.request(ctx, apiUrl+"/partner/data4/getAddressLists", params)
|
||||
// 定义
|
||||
var response PartnerData4GetAddressListsResponse
|
||||
err = json.Unmarshal(request.ResponseBody, &response)
|
||||
return newPartnerData4GetAddressListsResult(response, request.ResponseBody, request, err)
|
||||
}
|
||||
|
@ -1 +1,54 @@
|
||||
package nldyp
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"github.com/dtapps/go-library/utils/gorequest"
|
||||
)
|
||||
|
||||
type PartnerData4GetCinemaResponse struct {
|
||||
Code int `json:"code"`
|
||||
Msg string `json:"msg"`
|
||||
Data []struct {
|
||||
Id string `json:"id"` // 影城 id (注:用于请求其他数据)
|
||||
CinemaId int `json:"cinemaId"` // 版本4 影城ID (注:用于锁座,判断是否有秒出票,为空则不能秒出票)
|
||||
CinemaCode int `json:"cinemaCode"` // 影城编码
|
||||
CinemaName string `json:"cinemaName"` // 影城名称
|
||||
ProvinceId string `json:"provinceId"` // 省份ID
|
||||
CityId string `json:"cityId"` // 城市ID
|
||||
CountyId int `json:"countyId"` // 区县ID
|
||||
Address string `json:"address"` // 影城地址
|
||||
Longitude string `json:"longitude"` // 经度(高德)
|
||||
Latitude string `json:"latitude"` // 维度(高德)
|
||||
Province string `json:"province"` // 省份
|
||||
City string `json:"city"` // 城市
|
||||
County string `json:"county"` // 区县
|
||||
StopSaleTime string `json:"stopSaleTime"` // 停售时间
|
||||
Direct interface{} `json:"direct"`
|
||||
BackTicketConfig interface{} `json:"backTicketConfig"`
|
||||
} `json:"data"`
|
||||
}
|
||||
|
||||
type PartnerData4GetCinemaResult struct {
|
||||
Result PartnerData4GetCinemaResponse // 结果
|
||||
Body []byte // 内容
|
||||
Http gorequest.Response // 请求
|
||||
Err error // 错误
|
||||
}
|
||||
|
||||
func newPartnerData4GetCinemaResult(result PartnerData4GetCinemaResponse, body []byte, http gorequest.Response, err error) *PartnerData4GetCinemaResult {
|
||||
return &PartnerData4GetCinemaResult{Result: result, Body: body, Http: http, Err: err}
|
||||
}
|
||||
|
||||
// PartnerData4GetCinema 获取影院
|
||||
// https://docs.apipost.cn/preview/fa101f4865dc783f/66e7c2e894fda4a6?target_id=a1db1066-f346-4f9a-bffe-b892b3c73a1d
|
||||
func (c *Client) PartnerData4GetCinema(ctx context.Context) *PartnerData4GetCinemaResult {
|
||||
// 参数
|
||||
params := gorequest.NewParams()
|
||||
// 请求
|
||||
request, err := c.request(ctx, apiUrl+"/partner/data4/getCinema", params)
|
||||
// 定义
|
||||
var response PartnerData4GetCinemaResponse
|
||||
err = json.Unmarshal(request.ResponseBody, &response)
|
||||
return newPartnerData4GetCinemaResult(response, request.ResponseBody, request, err)
|
||||
}
|
||||
|
@ -1 +1,55 @@
|
||||
package nldyp
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"github.com/dtapps/go-library/utils/gorequest"
|
||||
)
|
||||
|
||||
type PartnerData4GetFilmListResponse struct {
|
||||
Code int `json:"code"`
|
||||
Msg string `json:"msg"`
|
||||
Data []struct {
|
||||
Id string `json:"id"` // 影片 id
|
||||
FilmCode string `json:"filmCode"` // 影片编码(标准影片 编码去除第 4 位)
|
||||
FilmName string `json:"filmName"` // 影片名称
|
||||
Version string `json:"version"` // 影片制式
|
||||
Duration int `json:"duration"` // 影片时长单位分钟
|
||||
PublishDate int `json:"publishDate"` // 上映时间 unix 时间 戳
|
||||
Director string `json:"director"` // 导演
|
||||
CastType int `json:"castType"` // 0、主演 1、配音演 员
|
||||
Cast string `json:"cast"` // 主演/配音演员
|
||||
Introduction string `json:"introduction"` // 影片描述
|
||||
Wantview int `json:"wantview"` // 想看人数
|
||||
Score int `json:"score"` // 电影评分
|
||||
Cover string `json:"cover"` // 封面图
|
||||
Area string `json:"area"` // 影片归属地区
|
||||
Type string `json:"type"` // 影片类型
|
||||
PlanNum interface{} `json:"planNum"`
|
||||
PreSaleFlag int `json:"preSaleFlag"` // 是 否 预 售 0 、 否 1、预售
|
||||
} `json:"data"`
|
||||
}
|
||||
|
||||
type PartnerData4GetFilmListResult struct {
|
||||
Result PartnerData4GetFilmListResponse // 结果
|
||||
Body []byte // 内容
|
||||
Http gorequest.Response // 请求
|
||||
Err error // 错误
|
||||
}
|
||||
|
||||
func newPartnerData4GetFilmListResult(result PartnerData4GetFilmListResponse, body []byte, http gorequest.Response, err error) *PartnerData4GetFilmListResult {
|
||||
return &PartnerData4GetFilmListResult{Result: result, Body: body, Http: http, Err: err}
|
||||
}
|
||||
|
||||
// PartnerData4GetFilmList 获取影片
|
||||
// https://docs.apipost.cn/preview/fa101f4865dc783f/66e7c2e894fda4a6?target_id=b13d7051-6a31-49d4-ba49-42e423da41d3
|
||||
func (c *Client) PartnerData4GetFilmList(ctx context.Context) *PartnerData4GetFilmListResult {
|
||||
// 参数
|
||||
params := gorequest.NewParams()
|
||||
// 请求
|
||||
request, err := c.request(ctx, apiUrl+"/partner/data4/getFilmList", params)
|
||||
// 定义
|
||||
var response PartnerData4GetFilmListResponse
|
||||
err = json.Unmarshal(request.ResponseBody, &response)
|
||||
return newPartnerData4GetFilmListResult(response, request.ResponseBody, request, err)
|
||||
}
|
||||
|
@ -1 +1,60 @@
|
||||
package nldyp
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"github.com/dtapps/go-library/utils/gorequest"
|
||||
)
|
||||
|
||||
type PartnerData4GetOrderStatusResponse struct {
|
||||
Status int `json:"status"`
|
||||
Data struct {
|
||||
OrderNo string `json:"orderNo"` // 系统商锁座订单号
|
||||
PrintNo interface{} `json:"printNo"`
|
||||
OrderStatus int `json:"orderStatus"` //
|
||||
PlanOrderNo interface{} `json:"planOrderNo"`
|
||||
TicketInfo []struct {
|
||||
Name string `json:"name"`
|
||||
Value string `json:"value"`
|
||||
} `json:"ticketInfo"`
|
||||
Tickets struct {
|
||||
Field1 struct {
|
||||
SeatNo string `json:"seatNo"`
|
||||
TicketCode interface{} `json:"ticketCode"`
|
||||
InfoCode interface{} `json:"infoCode"`
|
||||
PrintFlag interface{} `json:"printFlag"`
|
||||
} `json:"0000000000000001-1-05"`
|
||||
Field2 struct {
|
||||
SeatNo string `json:"seatNo"`
|
||||
TicketCode interface{} `json:"ticketCode"`
|
||||
InfoCode interface{} `json:"infoCode"`
|
||||
PrintFlag interface{} `json:"printFlag"`
|
||||
} `json:"0000000000000001-1-06"`
|
||||
} `json:"tickets"`
|
||||
} `json:"data"`
|
||||
Content string `json:"content"`
|
||||
}
|
||||
|
||||
type PartnerData4GetOrderStatusResult struct {
|
||||
Result PartnerData4GetOrderStatusResponse // 结果
|
||||
Body []byte // 内容
|
||||
Http gorequest.Response // 请求
|
||||
Err error // 错误
|
||||
}
|
||||
|
||||
func newPartnerData4GetOrderStatusResult(result PartnerData4GetOrderStatusResponse, body []byte, http gorequest.Response, err error) *PartnerData4GetOrderStatusResult {
|
||||
return &PartnerData4GetOrderStatusResult{Result: result, Body: body, Http: http, Err: err}
|
||||
}
|
||||
|
||||
// PartnerData4GetOrderStatus 查询秒出票订单状态
|
||||
// https://docs.apipost.cn/preview/fa101f4865dc783f/66e7c2e894fda4a6?target_id=fce3fbc1-28e1-4757-8665-ffa316a60bfb
|
||||
func (c *Client) PartnerData4GetOrderStatus(ctx context.Context, notMustParams ...gorequest.Params) *PartnerData4GetOrderStatusResult {
|
||||
// 参数
|
||||
params := gorequest.NewParamsWith(notMustParams...)
|
||||
// 请求
|
||||
request, err := c.request(ctx, apiUrl+"/partner/data4/getOrderStatus", params)
|
||||
// 定义
|
||||
var response PartnerData4GetOrderStatusResponse
|
||||
err = json.Unmarshal(request.ResponseBody, &response)
|
||||
return newPartnerData4GetOrderStatusResult(response, request.ResponseBody, request, err)
|
||||
}
|
||||
|
@ -1 +1,56 @@
|
||||
package nldyp
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"github.com/dtapps/go-library/utils/gorequest"
|
||||
)
|
||||
|
||||
type PartnerData4GetPlanResponse struct {
|
||||
Code int `json:"code"`
|
||||
Data []struct {
|
||||
FeatureAppNo string `json:"featureAppNo"` // 排期编码
|
||||
CinemaCode int `json:"cinemaCode"` // 影城编码
|
||||
SourceFilmNo string `json:"sourceFilmNo"`
|
||||
FilmNo string `json:"filmNo"` // 影片编码
|
||||
FilmName string `json:"filmName"` // 影片名称
|
||||
HallNo string `json:"hallNo"` // 影厅编码
|
||||
HallName string `json:"hallName"` // 影厅名称
|
||||
StartTime int `json:"startTime"` // 放映时间
|
||||
CopyType string `json:"copyType"` // 影片制式
|
||||
CopyLanguage string `json:"copyLanguage"` // 语言
|
||||
TotalTime string `json:"totalTime"` // 时长
|
||||
ListingPrice string `json:"listingPrice"` // 挂牌价
|
||||
TicketPrice string `json:"ticketPrice"` // 票价
|
||||
ServiceAddFee string `json:"serviceAddFee"` // 服务费下限
|
||||
LowestPrice string `json:"lowestPrice"` // 最低保护价
|
||||
Thresholds string `json:"thresholds"` // 服务费上限
|
||||
Areas string `json:"areas"` // 座区属性
|
||||
MarketPrice string `json:"marketPrice"` // 市场参考价(无座位区间时,下特价票使用该价格,有座位区间则使用座位区间价)
|
||||
} `json:"data"`
|
||||
Content string `json:"content"`
|
||||
}
|
||||
|
||||
type PartnerData4GetPlanResult struct {
|
||||
Result PartnerData4GetPlanResponse // 结果
|
||||
Body []byte // 内容
|
||||
Http gorequest.Response // 请求
|
||||
Err error // 错误
|
||||
}
|
||||
|
||||
func newPartnerData4GetPlanResult(result PartnerData4GetPlanResponse, body []byte, http gorequest.Response, err error) *PartnerData4GetPlanResult {
|
||||
return &PartnerData4GetPlanResult{Result: result, Body: body, Http: http, Err: err}
|
||||
}
|
||||
|
||||
// PartnerData4GetPlan 获取影院排期
|
||||
// https://docs.apipost.cn/preview/fa101f4865dc783f/66e7c2e894fda4a6?target_id=1e0161fe-12ca-4a64-afb9-5c97431f1f70
|
||||
func (c *Client) PartnerData4GetPlan(ctx context.Context) *PartnerData4GetPlanResult {
|
||||
// 参数
|
||||
params := gorequest.NewParams()
|
||||
// 请求
|
||||
request, err := c.request(ctx, apiUrl+"/partner/data4/getPlan", params)
|
||||
// 定义
|
||||
var response PartnerData4GetPlanResponse
|
||||
err = json.Unmarshal(request.ResponseBody, &response)
|
||||
return newPartnerData4GetPlanResult(response, request.ResponseBody, request, err)
|
||||
}
|
||||
|
@ -1 +1,58 @@
|
||||
package nldyp
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"github.com/dtapps/go-library/utils/gorequest"
|
||||
)
|
||||
|
||||
type PartnerData4GetPlanDetailResponse struct {
|
||||
Code int `json:"code"`
|
||||
Data []struct {
|
||||
FeatureAppNo string `json:"featureAppNo"` // 排期编码
|
||||
CinemaCode int `json:"cinemaCode"` // 影城编码
|
||||
SourceFilmNo string `json:"sourceFilmNo"`
|
||||
FilmNo string `json:"filmNo"` // 影片编码
|
||||
FilmName string `json:"filmName"` // 影片名称
|
||||
HallNo string `json:"hallNo"` // 影厅编码
|
||||
HallName string `json:"hallName"` // 影厅名称
|
||||
StartTime int `json:"startTime"` // 放映时间
|
||||
CopyType string `json:"copyType"` // 影片制式
|
||||
CopyLanguage string `json:"copyLanguage"` // 语言
|
||||
TotalTime string `json:"totalTime"` // 时长
|
||||
ListingPrice string `json:"listingPrice"` // 挂牌价
|
||||
TicketPrice string `json:"ticketPrice"` // 票价
|
||||
ServiceAddFee string `json:"serviceAddFee"` // 服务费下限
|
||||
LowestPrice string `json:"lowestPrice"` // 最低保护价
|
||||
Thresholds string `json:"thresholds"` // 服务费上限
|
||||
Areas string `json:"areas"` // 座区属性
|
||||
MarketPrice string `json:"marketPrice"` // 市场参考价(无座位区间时,下特价票使用该价格,有座位区间则使用座位区间价)
|
||||
} `json:"data"`
|
||||
Content string `json:"content"`
|
||||
}
|
||||
|
||||
type PartnerData4GetPlanDetailResult struct {
|
||||
Result PartnerData4GetPlanDetailResponse // 结果
|
||||
Body []byte // 内容
|
||||
Http gorequest.Response // 请求
|
||||
Err error // 错误
|
||||
}
|
||||
|
||||
func newPartnerData4GetPlanDetailResult(result PartnerData4GetPlanDetailResponse, body []byte, http gorequest.Response, err error) *PartnerData4GetPlanDetailResult {
|
||||
return &PartnerData4GetPlanDetailResult{Result: result, Body: body, Http: http, Err: err}
|
||||
}
|
||||
|
||||
// PartnerData4GetPlanDetail 获取影城单个排期详情
|
||||
// https://docs.apipost.cn/preview/fa101f4865dc783f/66e7c2e894fda4a6?target_id=05639c5c-080f-43f4-b94d-e4b8bb14130e
|
||||
func (c *Client) PartnerData4GetPlanDetail(ctx context.Context, cinemaId int, featureAppNo string) *PartnerData4GetPlanDetailResult {
|
||||
// 参数
|
||||
params := gorequest.NewParams()
|
||||
params.Set("cinemaId", cinemaId)
|
||||
params.Set("featureAppNo", featureAppNo)
|
||||
// 请求
|
||||
request, err := c.request(ctx, apiUrl+"/partner/data4/getPlanDetail", params)
|
||||
// 定义
|
||||
var response PartnerData4GetPlanDetailResponse
|
||||
err = json.Unmarshal(request.ResponseBody, &response)
|
||||
return newPartnerData4GetPlanDetailResult(response, request.ResponseBody, request, err)
|
||||
}
|
||||
|
@ -1 +1,43 @@
|
||||
package nldyp
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"github.com/dtapps/go-library/utils/gorequest"
|
||||
)
|
||||
|
||||
type PartnerData4LockSeatResponse struct {
|
||||
Status int `json:"status"`
|
||||
Data []struct {
|
||||
OrderId string `json:"orderId"` // 订单 id
|
||||
OrderNo string `json:"orderNo"` // 系统商锁座订单号
|
||||
SerialNum string `json:"serialNum"` // 锁座流水号
|
||||
Direct int `json:"direct"` // 是否直签
|
||||
BackTicketConfig []string `json:"backTicketConfig"`
|
||||
} `json:"data"`
|
||||
Content string `json:"content"`
|
||||
}
|
||||
|
||||
type PartnerData4LockSeatResult struct {
|
||||
Result PartnerData4LockSeatResponse // 结果
|
||||
Body []byte // 内容
|
||||
Http gorequest.Response // 请求
|
||||
Err error // 错误
|
||||
}
|
||||
|
||||
func newPartnerData4LockSeatResult(result PartnerData4LockSeatResponse, body []byte, http gorequest.Response, err error) *PartnerData4LockSeatResult {
|
||||
return &PartnerData4LockSeatResult{Result: result, Body: body, Http: http, Err: err}
|
||||
}
|
||||
|
||||
// PartnerData4LockSeat 锁座(支持多座区下单)
|
||||
// https://docs.apipost.cn/preview/fa101f4865dc783f/66e7c2e894fda4a6?target_id=ac7d2885-c575-4efa-8438-03175f8978a9
|
||||
func (c *Client) PartnerData4LockSeat(ctx context.Context, notMustParams ...gorequest.Params) *PartnerData4LockSeatResult {
|
||||
// 参数
|
||||
params := gorequest.NewParamsWith(notMustParams...)
|
||||
// 请求
|
||||
request, err := c.request(ctx, apiUrl+"/partner/data4/lockSeat", params)
|
||||
// 定义
|
||||
var response PartnerData4LockSeatResponse
|
||||
err = json.Unmarshal(request.ResponseBody, &response)
|
||||
return newPartnerData4LockSeatResult(response, request.ResponseBody, request, err)
|
||||
}
|
||||
|
@ -1 +1,45 @@
|
||||
package nldyp
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"github.com/dtapps/go-library/utils/gorequest"
|
||||
)
|
||||
|
||||
type PartnerData4SellTicketResponse struct {
|
||||
Status int `json:"status"`
|
||||
Data []struct {
|
||||
OrderId string `json:"orderId"` // 订单 id
|
||||
OrderNo string `json:"orderNo"` // 系统商锁座订单号
|
||||
} `json:"data"`
|
||||
Content string `json:"content"`
|
||||
}
|
||||
|
||||
type PartnerData4SellTicketResult struct {
|
||||
Result PartnerData4SellTicketResponse // 结果
|
||||
Body []byte // 内容
|
||||
Http gorequest.Response // 请求
|
||||
Err error // 错误
|
||||
}
|
||||
|
||||
func newPartnerData4SellTicketResult(result PartnerData4SellTicketResponse, body []byte, http gorequest.Response, err error) *PartnerData4SellTicketResult {
|
||||
return &PartnerData4SellTicketResult{Result: result, Body: body, Http: http, Err: err}
|
||||
}
|
||||
|
||||
// PartnerData4SellTicket 售票
|
||||
// https://docs.apipost.cn/preview/fa101f4865dc783f/66e7c2e894fda4a6?target_id=edd25537-3425-49e0-b6b5-373ebe4e919c
|
||||
func (c *Client) PartnerData4SellTicket(ctx context.Context, orderId, orderNo, notifyUrl string) *PartnerData4SellTicketResult {
|
||||
// 参数
|
||||
params := gorequest.NewParams()
|
||||
params.Set("orderId", orderId) // 订单 id
|
||||
if orderNo != "" {
|
||||
params.Set("orderNo", orderNo) // 接入方平台订单号(方便快速查询平台订单信息,又接入方自行生成)
|
||||
}
|
||||
params.Set("notifyUrl", notifyUrl) // 退票通知地址
|
||||
// 请求
|
||||
request, err := c.request(ctx, apiUrl+"/partner/data4/sellTicket", params)
|
||||
// 定义
|
||||
var response PartnerData4SellTicketResponse
|
||||
err = json.Unmarshal(request.ResponseBody, &response)
|
||||
return newPartnerData4SellTicketResult(response, request.ResponseBody, request, err)
|
||||
}
|
||||
|
@ -1 +1,40 @@
|
||||
package nldyp
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"github.com/dtapps/go-library/utils/gorequest"
|
||||
)
|
||||
|
||||
type PartnerData4UnLockOrderResponse struct {
|
||||
Status int `json:"status"`
|
||||
Data []struct {
|
||||
OrderId string `json:"orderId"` // 订单 id
|
||||
OrderNo string `json:"orderNo"` // 系统商锁座订单号
|
||||
} `json:"data"`
|
||||
Content string `json:"content"`
|
||||
}
|
||||
|
||||
type PartnerData4UnLockOrderResult struct {
|
||||
Result PartnerData4UnLockOrderResponse // 结果
|
||||
Body []byte // 内容
|
||||
Http gorequest.Response // 请求
|
||||
Err error // 错误
|
||||
}
|
||||
|
||||
func newPartnerData4UnLockOrderResult(result PartnerData4UnLockOrderResponse, body []byte, http gorequest.Response, err error) *PartnerData4UnLockOrderResult {
|
||||
return &PartnerData4UnLockOrderResult{Result: result, Body: body, Http: http, Err: err}
|
||||
}
|
||||
|
||||
// PartnerData4UnLockOrder 释放锁座
|
||||
// https://docs.apipost.cn/preview/fa101f4865dc783f/66e7c2e894fda4a6?target_id=43074323-fd3d-4c14-9a17-a447101b410f
|
||||
func (c *Client) PartnerData4UnLockOrder(ctx context.Context, notMustParams ...gorequest.Params) *PartnerData4UnLockOrderResult {
|
||||
// 参数
|
||||
params := gorequest.NewParamsWith(notMustParams...)
|
||||
// 请求
|
||||
request, err := c.request(ctx, apiUrl+"/partner/data4/unLockOrder", params)
|
||||
// 定义
|
||||
var response PartnerData4UnLockOrderResponse
|
||||
err = json.Unmarshal(request.ResponseBody, &response)
|
||||
return newPartnerData4UnLockOrderResult(response, request.ResponseBody, request, err)
|
||||
}
|
||||
|
@ -0,0 +1,38 @@
|
||||
package nldyp
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/dtapps/go-library"
|
||||
"github.com/dtapps/go-library/utils/gorequest"
|
||||
)
|
||||
|
||||
func (c *Client) request(ctx context.Context, url string, param map[string]interface{}) (gorequest.Response, error) {
|
||||
|
||||
// 签名
|
||||
params := c.Sign(param)
|
||||
|
||||
// 创建请求
|
||||
client := c.requestClient
|
||||
|
||||
// 设置请求地址
|
||||
client.SetUri(url)
|
||||
|
||||
// 设置格式
|
||||
client.SetContentTypeJson()
|
||||
|
||||
// 设置参数
|
||||
client.SetParams(params)
|
||||
|
||||
// 发起请求
|
||||
request, err := client.Post(ctx)
|
||||
if err != nil {
|
||||
return gorequest.Response{}, err
|
||||
}
|
||||
|
||||
// 日志
|
||||
if c.log.status {
|
||||
go c.log.client.Middleware(ctx, request, go_library.Version())
|
||||
}
|
||||
|
||||
return request, err
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
package nldyp
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/gin-gonic/gin"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
// RequestServeHttpPartnerData4GetOrderData 返回参数
|
||||
type RequestServeHttpPartnerData4GetOrderData struct {
|
||||
Vendor string `json:"vendor"`
|
||||
Ts int `json:"ts"`
|
||||
Sign string `json:"sign"`
|
||||
Code int `json:"code"`
|
||||
Message string `json:"message"`
|
||||
Data struct {
|
||||
Status int `json:"status"`
|
||||
OrderNumber string `json:"orderNumber"`
|
||||
Cpje float64 `json:"cpje"`
|
||||
TicketList []struct {
|
||||
TicketCode string `json:"ticketCode"`
|
||||
Url string `json:"url"`
|
||||
YuanUrl string `json:"yuan_url"`
|
||||
} `json:"ticketList"`
|
||||
Beizhu string `json:"beizhu"`
|
||||
IsChangeSeat string `json:"is_changeSeat"`
|
||||
ChangeSeatName string `json:"changeSeatName"`
|
||||
} `json:"data"`
|
||||
}
|
||||
|
||||
// ServeHttpPartnerData4GetOrderData 回调
|
||||
// https://docs.apipost.cn/preview/fa101f4865dc783f/66e7c2e894fda4a6?target_id=2e99efc0-6c77-457f-80d5-adaf19fdf313
|
||||
func (c *Client) ServeHttpPartnerData4GetOrderData(ctx context.Context, gCtx *gin.Context) (validateJson RequestServeHttpPartnerData4GetOrderData, err error) {
|
||||
// 声明接收的变量
|
||||
err = gCtx.ShouldBind(&validateJson)
|
||||
return
|
||||
}
|
||||
|
||||
// Success 数据正常
|
||||
func (r *RequestServeHttpPartnerData4GetOrderData) Success(c *gin.Context, msg string) {
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"code": 0,
|
||||
"msg": msg,
|
||||
})
|
||||
}
|
||||
|
||||
// Error 数据错误
|
||||
func (r *RequestServeHttpPartnerData4GetOrderData) Error(c *gin.Context, msg string) {
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"code": 400,
|
||||
"msg": msg,
|
||||
})
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
package nldyp
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/gin-gonic/gin"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
// RequestServeHttpPartnerData4SellTicket 返回参数
|
||||
type RequestServeHttpPartnerData4SellTicket struct {
|
||||
OrderId string `json:"orderId"`
|
||||
Account string `json:"account"`
|
||||
CinemaId string `json:"cinemaId"`
|
||||
RequestTime string `json:"requestTime"`
|
||||
Reason string `json:"reason"`
|
||||
VerifyInfo string `json:"verifyInfo"`
|
||||
}
|
||||
|
||||
// ServeHttpPartnerData4SellTicket 退票通知
|
||||
// https://docs.apipost.cn/preview/fa101f4865dc783f/66e7c2e894fda4a6?target_id=6f36e1f2-bdbc-476e-b9ca-a8806c0087ab
|
||||
func (c *Client) ServeHttpPartnerData4SellTicket(ctx context.Context, gCtx *gin.Context) (validateJson RequestServeHttpPartnerData4SellTicket, err error) {
|
||||
// 声明接收的变量
|
||||
err = gCtx.ShouldBind(&validateJson)
|
||||
return
|
||||
}
|
||||
|
||||
// Success 数据正常
|
||||
func (r *RequestServeHttpPartnerData4SellTicket) Success(c *gin.Context, msg string) {
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"code": 0,
|
||||
"msg": msg,
|
||||
})
|
||||
}
|
||||
|
||||
// Error 数据错误
|
||||
func (r *RequestServeHttpPartnerData4SellTicket) Error(c *gin.Context, msg string) {
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"code": 400,
|
||||
"msg": msg,
|
||||
})
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
package nldyp
|
||||
|
||||
import (
|
||||
"crypto/md5"
|
||||
"encoding/hex"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/dtapps/go-library/utils/gotime"
|
||||
"sort"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func (c *Client) Sign(p map[string]interface{}) map[string]interface{} {
|
||||
p["vendor"] = c.GetVendor()
|
||||
p["ts"] = gotime.Current().Timestamp()
|
||||
// 排序所有的 key
|
||||
var keys []string
|
||||
for key := range p {
|
||||
keys = append(keys, key)
|
||||
}
|
||||
sort.Strings(keys)
|
||||
signStr := ""
|
||||
for _, key := range keys {
|
||||
signStr += key + getString(p[key])
|
||||
}
|
||||
p["sign"] = createSign(fmt.Sprintf("%s%s%s", c.GetVendor(), p["ts"], signStr))
|
||||
return p
|
||||
}
|
||||
|
||||
func getString(i interface{}) string {
|
||||
switch v := i.(type) {
|
||||
case string:
|
||||
return v
|
||||
case []byte:
|
||||
return string(v)
|
||||
case int:
|
||||
return strconv.Itoa(v)
|
||||
case bool:
|
||||
return strconv.FormatBool(v)
|
||||
default:
|
||||
bytes, _ := json.Marshal(v)
|
||||
return string(bytes)
|
||||
}
|
||||
}
|
||||
|
||||
// 签名
|
||||
func createSign(signStr string) string {
|
||||
h := md5.New()
|
||||
h.Write([]byte(signStr))
|
||||
cipherStr := h.Sum(nil)
|
||||
return strings.ToUpper(hex.EncodeToString(cipherStr))
|
||||
}
|
Loading…
Reference in new issue