- nldyp:update api

master
李光春 1 year ago
parent 1602f17a51
commit 87e7c8cdc1

@ -2,6 +2,7 @@
- requestupdate ua
- ipupdate data
- nldypupdate api
## v2022-06-10

@ -1,5 +1,5 @@
package go_library
func Version() string {
return "1.0.55"
return "1.0.56"
}

@ -7,16 +7,14 @@ import (
// ClientConfig 实例配置
type ClientConfig struct {
vendor string // 秘钥
AppKey string // 渠道标记
Vendor string
}
// Client 实例
type Client struct {
requestClient *gorequest.App // 请求服务
config struct {
secret string // 秘钥
appKey string // 渠道标记
vendor string
}
log struct {
status bool // 状态

@ -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,42 @@
package nldyp
import (
"context"
"encoding/json"
"github.com/dtapps/go-library/utils/gorequest"
)
type PartnerData4GetCityListsResponse struct {
Code int `json:"code"`
Msg string `json:"msg"`
Data []struct {
Id string `json:"id"` // 城市ID
CityName string `json:"city_name"` // 城市名
Letter string `json:"letter"` // 首字母
Hot int `json:"hot"` // 是否热门0 否 1 是
} `json:"data"`
}
type PartnerData4GetCityListsResult struct {
Result PartnerData4GetCityListsResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newPartnerData4GetCityListsResult(result PartnerData4GetCityListsResponse, body []byte, http gorequest.Response, err error) *PartnerData4GetCityListsResult {
return &PartnerData4GetCityListsResult{Result: result, Body: body, Http: http, Err: err}
}
// PartnerData4GetCityLists 获取城市
// https://docs.apipost.cn/preview/fa101f4865dc783f/66e7c2e894fda4a6?target_id=d8842641-00bd-4bb4-a031-fb6d89908742
func (c *Client) PartnerData4GetCityLists(ctx context.Context) *PartnerData4GetCityListsResult {
// 参数
params := gorequest.NewParams()
// 请求
request, err := c.request(ctx, apiUrl+"/partner/data4/getCityLists", params)
// 定义
var response PartnerData4GetCityListsResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newPartnerData4GetCityListsResult(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)
}

@ -0,0 +1,52 @@
package nldyp
import (
"context"
"encoding/json"
"github.com/dtapps/go-library/utils/gorequest"
)
type PartnerData4GetOrderDetailResponse struct {
OrderNo string `json:"orderNo"` // 订单号
Status int `json:"status"` // 订单状态: 1 出票中 2 已出票 3 出票失败 4 关闭订单 5 系统已出票 6 系统关闭订单
Mobile string `json:"mobile"` // 手机号码
BuyTime int `json:"buyTime"` // 下单时间(时间戳)
FilmName string `json:"filmName"` // 电影名称
CinemaName string `json:"cinemaName"` // 影院名称
CinemaAddress string `json:"cinemaAddress"` // 影院地址
CopyLanguage string `json:"copyLanguage"` // 影片语言
MovieType string `json:"movieType"` // 影片类型
StartTime int `json:"startTime"` // 开场时间(时间戳)
TicketNum int `json:"ticketNum"` // 购票数量
HallName string `json:"hallName"` // 影厅名称
CopyType string `json:"copyType"` // 影厅类型
CityName string `json:"cityName"` // 城市
MarketPrice float64 `json:"marketPrice"` // 市场价
CostPrice float64 `json:"costPrice"` // 成本价
BuyType int `json:"buyType"` // 下单类型0 特惠 1 秒出
}
type PartnerData4GetOrderDetailResult struct {
Result PartnerData4GetOrderDetailResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newPartnerData4GetOrderDetailResult(result PartnerData4GetOrderDetailResponse, body []byte, http gorequest.Response, err error) *PartnerData4GetOrderDetailResult {
return &PartnerData4GetOrderDetailResult{Result: result, Body: body, Http: http, Err: err}
}
// PartnerData4GetOrderDetail 获取订单详情
// https://docs.apipost.cn/preview/fa101f4865dc783f/66e7c2e894fda4a6?target_id=0888fc18-6ac7-4d37-a1c5-f26e136b381a
func (c *Client) PartnerData4GetOrderDetail(ctx context.Context, orderNo string) *PartnerData4GetOrderDetailResult {
// 参数
params := gorequest.NewParams()
params["orderNo"] = orderNo // 平台订单号
// 请求
request, err := c.request(ctx, apiUrl+"/partner/data4/getOrderDetail", params)
// 定义
var response PartnerData4GetOrderDetailResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newPartnerData4GetOrderDetailResult(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,52 @@
package nldyp
import (
"context"
"encoding/json"
"github.com/dtapps/go-library/utils/gorequest"
)
type PartnerData4GetPlanSeatResponse struct {
Code int `json:"code"`
Msg string `json:"msg"`
Data []struct {
SeatState int `json:"seatState"` // 状 态 (-1 不 可 售 0-可售)
SectionCode string `json:"sectionCode"`
SeatNo string `json:"seatNo"` // 座位编号
GraphRow int `json:"graphRow"` // 逻辑坐标行(绘图)
GraphCol int `json:"graphCol"` // 逻辑坐标列(绘图)
SeatRow string `json:"seatRow"` // 物理座位行号
SeatCol string `json:"seatCol"` // 物理座位列号
SeatPieceNo string `json:"seatPieceNo"` // 连座编号,带相同编 号的必须同时锁座
SeatPieceName string `json:"seatPieceName"` // 座位名称
AreaId string `json:"areaId"` // 座区 Id该字段为 空表示未设置座区
SeatType string `json:"seatType"` // 座 位 类 型 N: 普 通 座,L:情侣座首座,M: 三连中间座R:情侣 座次座
SeatFlag int `json:"seatFlag"`
} `json:"data"`
}
type PartnerData4GetPlanSeatResult struct {
Result PartnerData4GetPlanSeatResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
}
func newPartnerData4GetPlanSeatResult(result PartnerData4GetPlanSeatResponse, body []byte, http gorequest.Response, err error) *PartnerData4GetPlanSeatResult {
return &PartnerData4GetPlanSeatResult{Result: result, Body: body, Http: http, Err: err}
}
// PartnerData4GetPlanSeat 获取实时座位图
// https://docs.apipost.cn/preview/fa101f4865dc783f/66e7c2e894fda4a6?target_id=b245efe6-f728-450a-92f4-a93669c1d555
func (c *Client) PartnerData4GetPlanSeat(ctx context.Context, cinemaId int, featureAppNo string) *PartnerData4GetPlanSeatResult {
// 参数
params := gorequest.NewParams()
params.Set("cinemaId", cinemaId)
params.Set("featureAppNo", featureAppNo)
// 请求
request, err := c.request(ctx, apiUrl+"/partner/data4/getPlanSeat", params)
// 定义
var response PartnerData4GetPlanSeatResponse
err = json.Unmarshal(request.ResponseBody, &response)
return newPartnerData4GetPlanSeatResult(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…
Cancel
Save