package service import ( "encoding/json" "net/http" ) type OrderDeliveryRequestData struct { UserId string `json:"user_id"` // 必填 用户ID WithPackage *int `json:"with_package,omitempty"` // 可选 是否发放商品打包售卖权益,默认0, 0-不发放 1-发放 PayWay *string `json:"pay_way,omitempty"` // 可选 支付渠道,默认是0 0-线上微信,1-线上支付宝 OutOrderId *string `json:"out_order_id,omitempty"` // 可选 商家侧关联外部订单号 TransactionId *string `json:"transaction_id,omitempty"` // 可选 商家侧交易单号 ProductInfos []ProductInfo `json:"product_infos"` // 必填 商品列表 最多20个 Express *ExpressInfo `json:"express,omitempty"` // 可选快递配送信息(实物必填) } // ProductInfo 商品信息 type ProductInfo struct { SpuId string `json:"spu_id"` // 必填 统一商品ID SkuId *string `json:"sku_id,omitempty"` // 必填 统一商品规格ID BuyNum *int `json:"buy_num,omitempty"` // 可选 购买份数 默认1 DiscountPrice *int `json:"discount_price,omitempty"` // 可选 api优惠金额 单位分 Period *int `json:"period,omitempty"` // 可选 有效期 单位秒 PeriodTime *string `json:"period_time,omitempty"` // 可选 权益开始生效时间 } // ExpressInfo 快递配送信息(当 express 存在时,内部字段均必填) type ExpressInfo struct { Receiver string `json:"receiver"` // 必填 收货人 Phone string `json:"phone"` // 必填 收货人联系方式 Province string `json:"province"` // 必填 收货人地址省份 City string `json:"city"` // 必填 收货人地址城市 County string `json:"county"` // 必填 收货人地址所在区 Detail string `json:"detail"` // 必填 收货人地址详细地址 } type OrderDeliveryRequest struct { Data OrderDeliveryRequestData `json:"data"` } type OrderDeliveryOrder struct { Price int `json:"price"` OrderId string `json:"order_id"` PurchaseName string `json:"PurchaseName"` CreatedAt string `json:"created_at"` } type OrderDeliveryResponseData struct { Orders []OrderDeliveryOrder `json:"orders"` } type OrderDeliveryResponse struct { BaseResponse Data OrderDeliveryResponseData `json:"data"` } type ResourcePurchaseCheckRequest struct { UserId string `json:"user_id"` // 用户id ResourceId string `json:"resource_id"` // 资源id } type ResourcePurchaseCheckResponseData struct { AuthState int `json:"auth_state"` // 是否拥有权益 0-否 1-是 } type ResourcePurchaseCheckResponse struct { BaseResponse Data ResourcePurchaseCheckResponseData `json:"data"` } type PurchaseDeleteRequestData struct { PaymentType string `json:"payment_type"` // 必填,购买方式:2-单笔、3-付费产品包、15-超级会员 ResourceType *string `json:"resource_type,omitempty"` // 可选(单笔购买时必填),资源类型 ResourceId *string `json:"resource_id,omitempty"` // 可选(单笔购买时必填),资源id ProductId *string `json:"product_id,omitempty"` // 可选(产品包/超级会员时必填),产品包id UserId string `json:"user_id"` // 必填,用户id } type PurchaseDeleteRequest struct { UserId string `json:"user_id"` // 用户id Data PurchaseDeleteRequestData `json:"data"` } type PurchaseDeleteResponseData struct { Delete int `json:"delete"` // 1-订阅取消成功 } type PurchaseDeleteResponse struct { BaseResponse Data PurchaseDeleteResponseData `json:"data"` } type OrderDeliveryRequestV1 struct { UserId string `json:"user_id"` // 用户ID(顶层) Data OrderDeliveryDataV1 `json:"data"` // 订单数据 } // OrderDeliveryDataV1 订单数据 type OrderDeliveryDataV1 struct { PaymentType int `json:"payment_type"` // 必填,付费类型:2-单品,3-产品包,15-超级会员 ResourceType int `json:"resource_type"` // 必填,资源类型 ResourceId *string `json:"resource_id,omitempty"` // 单品ID(payment_type=2时必填) ProductId *string `json:"product_id,omitempty"` // 产品包ID(payment_type=3时必填) UserId string `json:"user_id"` // 必填,用户ID OutOrderId *string `json:"out_order_id,omitempty"` // 可选,外部订单号 PayWay *int `json:"pay_way,omitempty"` // 可选,支付渠道:0-线上微信,2-线上支付宝,1-未指定 ChannelId *string `json:"channel_id,omitempty"` // 可选,渠道ID ChannelInfo *string `json:"channel_info,omitempty"` // 可选,渠道来源 Period *string `json:"period,omitempty"` // 可选,有效期(秒),超级会员必传 PeriodTime *string `json:"period_time,omitempty"` // 可选,会员开始时间,超级会员必传 Agent *string `json:"agent,omitempty"` // 可选,用户设备信息 DiscountPrice *int `json:"discount_price,omitempty"` // 可选,API优惠金额(单位:分) Source *int `json:"source,omitempty"` // 可选,开通知识带货商品必传10 } // OrderDeliveryResponseV1 订单发货响应(V1版本) type OrderDeliveryResponseV1 struct { Code int `json:"code"` // 请求结果码,0表示成功 Msg string `json:"msg"` // 描述信息 Data OrderDeliveryResponseDataV1 `json:"data"` // 数据 } // OrderDeliveryResponseDataV1 响应数据 type OrderDeliveryResponseDataV1 struct { Price int `json:"price"` // 商品价格(单位:分) OrderId string `json:"order_id"` // 订单编号 PurchaseName string `json:"purchase_name"` // 商品名称 CreatedAt CreatedAt `json:"created_at"` // 创建时间 } type CreatedAt struct { Date string `json:"date"` Timezone string `json:"timezone"` TimezoneType int `json:"timezone_type"` } // MARK 用户开通产品包权益2.0 func (client *Client) OrderDelivery(req *OrderDeliveryRequest) (*OrderDeliveryResponse, error) { paramsMap, err := ToMap(req) if err != nil { return nil, err } respByte, err := client.CurlDo(http.MethodPost, OrderDeliveryUrl, paramsMap) if err != nil { return nil, err } resp := OrderDeliveryResponse{} err = json.Unmarshal(respByte, &resp) if err != nil { return nil, err } return &resp, nil } // MARK 用户开通产品包权益1.0 func (client *Client) OrderDeliveryV1(req *OrderDeliveryRequestV1) (*OrderDeliveryResponseV1, error) { paramsMap, err := ToMap(req) if err != nil { return nil, err } respByte, err := client.CurlDo(http.MethodPost, OrderDeliveryUrlV1, paramsMap) if err != nil { return nil, err } resp := OrderDeliveryResponseV1{} err = json.Unmarshal(respByte, &resp) if err != nil { return nil, err } return &resp, nil } // MARK 查询用户资源权益 func (client *Client) ResourcePurchaseCheck(req *ResourcePurchaseCheckRequest) (resp *ResourcePurchaseCheckResponse, err error) { paramsMap, err := ToMap(req) if err != nil { return } respByte, err := client.CurlDo(http.MethodPost, PermissionCheckUrl, paramsMap) if err != nil { return } resp2 := ResourcePurchaseCheckResponse{} err = json.Unmarshal(respByte, &resp2) if err != nil { return } resp = &resp2 return } // MARK 取消订购 func (client *Client) PurchaseDelete(req *PurchaseDeleteRequest) (resp *PurchaseDeleteResponse, err error) { paramsMap, err := ToMap(req) if err != nil { return } respByte, err := client.CurlDo(http.MethodPost, PurchaseDeleteUrl, paramsMap) if err != nil { return } resp2 := PurchaseDeleteResponse{} err = json.Unmarshal(respByte, &resp2) if err != nil { return } resp = &resp2 return }