代码拉取完成,页面将自动刷新
// Copyright 2021 Tencent Inc. All rights reserved.
//
// 微信支付分账API
//
// 微信支付分账API
//
// API version: 0.0.3
// Code generated by WechatPay APIv3 Generator based on [OpenAPI Generator](https://openapi-generator.tech); DO NOT EDIT.
package profitsharing
import (
"encoding/json"
"fmt"
"time"
)
// AddReceiverRequest
type AddReceiverRequest struct {
// 类型是MERCHANT_ID时,是商户号 类型是PERSONAL_OPENID时,是个人openid 类型是PERSONAL_SUB_OPENID时,是个人sub_openid
Account *string `json:"account"`
// 微信分配的公众账号ID
Appid *string `json:"appid"`
// 子商户与接收方具体的关系,本字段最多10个字。 当字段relation_type的值为CUSTOM时,本字段必填 当字段relation_type的值不为CUSTOM时,本字段无需填写
CustomRelation *string `json:"custom_relation,omitempty"`
// 分账接收方类型是MERCHANT_ID时,是商户全称(必传),当商户是小微商户或个体户时,是开户人姓名 分账接收方类型是PERSONAL_OPENID时,是个人姓名(选传,传则校验) 分账接收方类型是PERSONAL_SUB_OPENID时,是个人姓名(选传,传则校验) 1、此字段需要加密,的加密方法详见:敏感信息加密说明 2、使用微信支付平台证书中的公钥 3、使用RSAES-OAEP算法进行加密 4、将请求中HTTP头部的Wechatpay-Serial设置为证书序列号
Name *string `json:"name,omitempty" encryption:"EM_APIV3"`
// 子商户与接收方的关系。 本字段值为枚举: SERVICE_PROVIDER:服务商 STORE:门店 STAFF:员工 STORE_OWNER:店主 PARTNER:合作伙伴 HEADQUARTER:总部 BRAND:品牌方 DISTRIBUTOR:分销商 USER:用户 SUPPLIER:供应商 CUSTOM:自定义 * `SERVICE_PROVIDER` - 服务商, * `STORE` - 门店, * `STAFF` - 员工, * `STORE_OWNER` - 店主, * `PARTNER` - 合作伙伴, * `HEADQUARTER` - 总部, * `BRAND` - 品牌方, * `DISTRIBUTOR` - 分销商, * `USER` - 用户, * `SUPPLIER` - 供应商, * `CUSTOM` - 自定义,
RelationType *ReceiverRelationType `json:"relation_type"`
// 子商户的公众账号ID,分账接收方类型包含PERSONAL_SUB_OPENID时必填。(直连商户不需要,服务商需要)
SubAppid *string `json:"sub_appid,omitempty"`
// 微信支付分配的子商户号,即分账的出资商户号。(直连商户不需要,服务商需要)
SubMchid *string `json:"sub_mchid,omitempty"`
// 枚举值: MERCHANT_ID:商户ID PERSONAL_OPENID:个人openid(由父商户APPID转换得到) PERSONAL_SUB_OPENID:个人sub_openid(由子商户APPID转换得到) * `MERCHANT_ID` - 商户号, * `PERSONAL_OPENID` - 个人openid(由父商户APPID转换得到), * `PERSONAL_SUB_OPENID` - 个人sub_openid(由子商户APPID转换得到)(直连商户不需要,服务商需要),
Type *ReceiverType `json:"type"`
}
func (o AddReceiverRequest) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if o.Account == nil {
return nil, fmt.Errorf("field `Account` is required and must be specified in AddReceiverRequest")
}
toSerialize["account"] = o.Account
if o.Appid == nil {
return nil, fmt.Errorf("field `Appid` is required and must be specified in AddReceiverRequest")
}
toSerialize["appid"] = o.Appid
if o.CustomRelation != nil {
toSerialize["custom_relation"] = o.CustomRelation
}
if o.Name != nil {
toSerialize["name"] = o.Name
}
if o.RelationType == nil {
return nil, fmt.Errorf("field `RelationType` is required and must be specified in AddReceiverRequest")
}
toSerialize["relation_type"] = o.RelationType
if o.SubAppid != nil {
toSerialize["sub_appid"] = o.SubAppid
}
if o.SubMchid != nil {
toSerialize["sub_mchid"] = o.SubMchid
}
if o.Type == nil {
return nil, fmt.Errorf("field `Type` is required and must be specified in AddReceiverRequest")
}
toSerialize["type"] = o.Type
return json.Marshal(toSerialize)
}
func (o AddReceiverRequest) String() string {
var ret string
if o.Account == nil {
ret += "Account:<nil>, "
} else {
ret += fmt.Sprintf("Account:%v, ", *o.Account)
}
if o.Appid == nil {
ret += "Appid:<nil>, "
} else {
ret += fmt.Sprintf("Appid:%v, ", *o.Appid)
}
if o.CustomRelation == nil {
ret += "CustomRelation:<nil>, "
} else {
ret += fmt.Sprintf("CustomRelation:%v, ", *o.CustomRelation)
}
if o.Name == nil {
ret += "Name:<nil>, "
} else {
ret += fmt.Sprintf("Name:%v, ", *o.Name)
}
if o.RelationType == nil {
ret += "RelationType:<nil>, "
} else {
ret += fmt.Sprintf("RelationType:%v, ", *o.RelationType)
}
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.Type == nil {
ret += "Type:<nil>"
} else {
ret += fmt.Sprintf("Type:%v", *o.Type)
}
return fmt.Sprintf("AddReceiverRequest{%s}", ret)
}
func (o AddReceiverRequest) Clone() *AddReceiverRequest {
ret := AddReceiverRequest{}
if o.Account != nil {
ret.Account = new(string)
*ret.Account = *o.Account
}
if o.Appid != nil {
ret.Appid = new(string)
*ret.Appid = *o.Appid
}
if o.CustomRelation != nil {
ret.CustomRelation = new(string)
*ret.CustomRelation = *o.CustomRelation
}
if o.Name != nil {
ret.Name = new(string)
*ret.Name = *o.Name
}
if o.RelationType != nil {
ret.RelationType = new(ReceiverRelationType)
*ret.RelationType = *o.RelationType
}
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.Type != nil {
ret.Type = new(ReceiverType)
*ret.Type = *o.Type
}
return &ret
}
// AddReceiverResponse
type AddReceiverResponse struct {
// 参考请求参数
Account *string `json:"account"`
// 参考请求参数
CustomRelation *string `json:"custom_relation,omitempty"`
// 参考请求参数。使用APIv3敏感信息加密方式
Name *string `json:"name,omitempty" encryption:"EM_APIV3"`
// 参考请求参数 * `SERVICE_PROVIDER` - 服务商, * `STORE` - 门店, * `STAFF` - 员工, * `STORE_OWNER` - 店主, * `PARTNER` - 合作伙伴, * `HEADQUARTER` - 总部, * `BRAND` - 品牌方, * `DISTRIBUTOR` - 分销商, * `USER` - 用户, * `SUPPLIER` - 供应商, * `CUSTOM` - 自定义,
RelationType *ReceiverRelationType `json:"relation_type"`
// 参考请求参数
SubMchid *string `json:"sub_mchid,omitempty"`
// 参考请求参数 * `MERCHANT_ID` - 商户号, * `PERSONAL_OPENID` - 个人openid(由父商户APPID转换得到), * `PERSONAL_SUB_OPENID` - 个人sub_openid(由子商户APPID转换得到)(直连商户不需要,服务商需要),
Type *ReceiverType `json:"type"`
}
func (o AddReceiverResponse) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if o.Account == nil {
return nil, fmt.Errorf("field `Account` is required and must be specified in AddReceiverResponse")
}
toSerialize["account"] = o.Account
if o.CustomRelation != nil {
toSerialize["custom_relation"] = o.CustomRelation
}
if o.Name != nil {
toSerialize["name"] = o.Name
}
if o.RelationType == nil {
return nil, fmt.Errorf("field `RelationType` is required and must be specified in AddReceiverResponse")
}
toSerialize["relation_type"] = o.RelationType
if o.SubMchid != nil {
toSerialize["sub_mchid"] = o.SubMchid
}
if o.Type == nil {
return nil, fmt.Errorf("field `Type` is required and must be specified in AddReceiverResponse")
}
toSerialize["type"] = o.Type
return json.Marshal(toSerialize)
}
func (o AddReceiverResponse) String() string {
var ret string
if o.Account == nil {
ret += "Account:<nil>, "
} else {
ret += fmt.Sprintf("Account:%v, ", *o.Account)
}
if o.CustomRelation == nil {
ret += "CustomRelation:<nil>, "
} else {
ret += fmt.Sprintf("CustomRelation:%v, ", *o.CustomRelation)
}
if o.Name == nil {
ret += "Name:<nil>, "
} else {
ret += fmt.Sprintf("Name:%v, ", *o.Name)
}
if o.RelationType == nil {
ret += "RelationType:<nil>, "
} else {
ret += fmt.Sprintf("RelationType:%v, ", *o.RelationType)
}
if o.SubMchid == nil {
ret += "SubMchid:<nil>, "
} else {
ret += fmt.Sprintf("SubMchid:%v, ", *o.SubMchid)
}
if o.Type == nil {
ret += "Type:<nil>"
} else {
ret += fmt.Sprintf("Type:%v", *o.Type)
}
return fmt.Sprintf("AddReceiverResponse{%s}", ret)
}
func (o AddReceiverResponse) Clone() *AddReceiverResponse {
ret := AddReceiverResponse{}
if o.Account != nil {
ret.Account = new(string)
*ret.Account = *o.Account
}
if o.CustomRelation != nil {
ret.CustomRelation = new(string)
*ret.CustomRelation = *o.CustomRelation
}
if o.Name != nil {
ret.Name = new(string)
*ret.Name = *o.Name
}
if o.RelationType != nil {
ret.RelationType = new(ReceiverRelationType)
*ret.RelationType = *o.RelationType
}
if o.SubMchid != nil {
ret.SubMchid = new(string)
*ret.SubMchid = *o.SubMchid
}
if o.Type != nil {
ret.Type = new(ReceiverType)
*ret.Type = *o.Type
}
return &ret
}
// CreateOrderReceiver
type CreateOrderReceiver struct {
// 1、类型是MERCHANT_ID时,是商户号 2、类型是PERSONAL_OPENID时,是个人openid 3、类型是PERSONAL_SUB_OPENID时,是个人sub_openid
Account *string `json:"account"`
// 分账金额,单位为分,只能为整数,不能超过原订单支付金额及最大分账比例金额
Amount *int64 `json:"amount"`
// 分账的原因描述,分账账单中需要体现
Description *string `json:"description"`
// 可选项,在接收方类型为个人的时可选填,若有值,会检查与 name 是否实名匹配,不匹配会拒绝分账请求 1、分账接收方类型是PERSONAL_OPENID或PERSONAL_SUB_OPENID时,是个人姓名的密文(选传,传则校验) 此字段的加密的方式为:敏感信息加密说明 2、使用微信支付平台证书中的公钥 3、使用RSAES-OAEP算法进行加密 4、将请求中HTTP头部的Wechatpay-Serial设置为证书序列号
Name *string `json:"name,omitempty" encryption:"EM_APIV3"`
// 1、MERCHANT_ID:商户号 2、PERSONAL_OPENID:个人openid(由父商户APPID转换得到) 3、PERSONAL_SUB_OPENID: 个人sub_openid(由子商户APPID转换得到)
Type *string `json:"type"`
}
func (o CreateOrderReceiver) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if o.Account == nil {
return nil, fmt.Errorf("field `Account` is required and must be specified in CreateOrderReceiver")
}
toSerialize["account"] = o.Account
if o.Amount == nil {
return nil, fmt.Errorf("field `Amount` is required and must be specified in CreateOrderReceiver")
}
toSerialize["amount"] = o.Amount
if o.Description == nil {
return nil, fmt.Errorf("field `Description` is required and must be specified in CreateOrderReceiver")
}
toSerialize["description"] = o.Description
if o.Name != nil {
toSerialize["name"] = o.Name
}
if o.Type == nil {
return nil, fmt.Errorf("field `Type` is required and must be specified in CreateOrderReceiver")
}
toSerialize["type"] = o.Type
return json.Marshal(toSerialize)
}
func (o CreateOrderReceiver) String() string {
var ret string
if o.Account == nil {
ret += "Account:<nil>, "
} else {
ret += fmt.Sprintf("Account:%v, ", *o.Account)
}
if o.Amount == nil {
ret += "Amount:<nil>, "
} else {
ret += fmt.Sprintf("Amount:%v, ", *o.Amount)
}
if o.Description == nil {
ret += "Description:<nil>, "
} else {
ret += fmt.Sprintf("Description:%v, ", *o.Description)
}
if o.Name == nil {
ret += "Name:<nil>, "
} else {
ret += fmt.Sprintf("Name:%v, ", *o.Name)
}
if o.Type == nil {
ret += "Type:<nil>"
} else {
ret += fmt.Sprintf("Type:%v", *o.Type)
}
return fmt.Sprintf("CreateOrderReceiver{%s}", ret)
}
func (o CreateOrderReceiver) Clone() *CreateOrderReceiver {
ret := CreateOrderReceiver{}
if o.Account != nil {
ret.Account = new(string)
*ret.Account = *o.Account
}
if o.Amount != nil {
ret.Amount = new(int64)
*ret.Amount = *o.Amount
}
if o.Description != nil {
ret.Description = new(string)
*ret.Description = *o.Description
}
if o.Name != nil {
ret.Name = new(string)
*ret.Name = *o.Name
}
if o.Type != nil {
ret.Type = new(string)
*ret.Type = *o.Type
}
return &ret
}
// CreateOrderRequest
type CreateOrderRequest struct {
// 微信分配的服务商appid
Appid *string `json:"appid"`
// 服务商系统内部的分账单号,在服务商系统内部唯一,同一分账单号多次请求等同一次。只能是数字、大小写字母_-|*@
OutOrderNo *string `json:"out_order_no"`
// 分账接收方列表,可以设置出资商户作为分账接受方,最多可有50个分账接收方
Receivers []CreateOrderReceiver `json:"receivers,omitempty"`
// 微信分配的子商户公众账号ID,分账接收方类型包含PERSONAL_SUB_OPENID时必填。(直连商户不需要,服务商需要)
SubAppid *string `json:"sub_appid,omitempty"`
// 微信支付分配的子商户号,即分账的出资商户号。(直连商户不需要,服务商需要)
SubMchid *string `json:"sub_mchid,omitempty"`
// 微信支付订单号
TransactionId *string `json:"transaction_id"`
// 1、如果为true,该笔订单剩余未分账的金额会解冻回分账方商户; 2、如果为false,该笔订单剩余未分账的金额不会解冻回分账方商户,可以对该笔订单再次进行分账。
UnfreezeUnsplit *bool `json:"unfreeze_unsplit"`
}
func (o CreateOrderRequest) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if o.Appid == nil {
return nil, fmt.Errorf("field `Appid` is required and must be specified in CreateOrderRequest")
}
toSerialize["appid"] = o.Appid
if o.OutOrderNo == nil {
return nil, fmt.Errorf("field `OutOrderNo` is required and must be specified in CreateOrderRequest")
}
toSerialize["out_order_no"] = o.OutOrderNo
if o.Receivers != nil {
toSerialize["receivers"] = o.Receivers
}
if o.SubAppid != nil {
toSerialize["sub_appid"] = o.SubAppid
}
if o.SubMchid != nil {
toSerialize["sub_mchid"] = o.SubMchid
}
if o.TransactionId == nil {
return nil, fmt.Errorf("field `TransactionId` is required and must be specified in CreateOrderRequest")
}
toSerialize["transaction_id"] = o.TransactionId
if o.UnfreezeUnsplit == nil {
return nil, fmt.Errorf("field `UnfreezeUnsplit` is required and must be specified in CreateOrderRequest")
}
toSerialize["unfreeze_unsplit"] = o.UnfreezeUnsplit
return json.Marshal(toSerialize)
}
func (o CreateOrderRequest) String() string {
var ret string
if o.Appid == nil {
ret += "Appid:<nil>, "
} else {
ret += fmt.Sprintf("Appid:%v, ", *o.Appid)
}
if o.OutOrderNo == nil {
ret += "OutOrderNo:<nil>, "
} else {
ret += fmt.Sprintf("OutOrderNo:%v, ", *o.OutOrderNo)
}
ret += fmt.Sprintf("Receivers:%v, ", o.Receivers)
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.TransactionId == nil {
ret += "TransactionId:<nil>, "
} else {
ret += fmt.Sprintf("TransactionId:%v, ", *o.TransactionId)
}
if o.UnfreezeUnsplit == nil {
ret += "UnfreezeUnsplit:<nil>"
} else {
ret += fmt.Sprintf("UnfreezeUnsplit:%v", *o.UnfreezeUnsplit)
}
return fmt.Sprintf("CreateOrderRequest{%s}", ret)
}
func (o CreateOrderRequest) Clone() *CreateOrderRequest {
ret := CreateOrderRequest{}
if o.Appid != nil {
ret.Appid = new(string)
*ret.Appid = *o.Appid
}
if o.OutOrderNo != nil {
ret.OutOrderNo = new(string)
*ret.OutOrderNo = *o.OutOrderNo
}
if o.Receivers != nil {
ret.Receivers = make([]CreateOrderReceiver, len(o.Receivers))
for i, item := range o.Receivers {
ret.Receivers[i] = *item.Clone()
}
}
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.TransactionId != nil {
ret.TransactionId = new(string)
*ret.TransactionId = *o.TransactionId
}
if o.UnfreezeUnsplit != nil {
ret.UnfreezeUnsplit = new(bool)
*ret.UnfreezeUnsplit = *o.UnfreezeUnsplit
}
return &ret
}
// CreateReturnOrderRequest
type CreateReturnOrderRequest struct {
// 需要从分账接收方回退的金额,单位为分,只能为整数,不能超过原始分账单分出给该接收方的金额
Amount *int64 `json:"amount"`
// 分账回退的原因描述
Description *string `json:"description"`
// 微信分账单号,微信系统返回的唯一标识。微信分账单号和商户分账单号二选一填写
OrderId *string `json:"order_id,omitempty"`
// 商户系统内部的分账单号,在商户系统内部唯一,同一分账单号多次请求等同一次。微信分账单号和商户分账单号二选一填写 取值范围:[0-9a-zA-Z_*@-]
OutOrderNo *string `json:"out_order_no,omitempty"`
// 此回退单号是商户在自己后台生成的一个新的回退单号,在商户后台唯一
OutReturnNo *string `json:"out_return_no"`
// 分账回退的出资商户,只能对原分账请求中成功分给商户接收方进行回退
ReturnMchid *string `json:"return_mchid"`
// 分账回退的接收商户,对应原分账出资的分账方商户,填写微信支付分配的商户号。(直连商户不需要,服务商需要)
SubMchid *string `json:"sub_mchid,omitempty"`
}
func (o CreateReturnOrderRequest) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if o.Amount == nil {
return nil, fmt.Errorf("field `Amount` is required and must be specified in CreateReturnOrderRequest")
}
toSerialize["amount"] = o.Amount
if o.Description == nil {
return nil, fmt.Errorf("field `Description` is required and must be specified in CreateReturnOrderRequest")
}
toSerialize["description"] = o.Description
if o.OrderId != nil {
toSerialize["order_id"] = o.OrderId
}
if o.OutOrderNo != nil {
toSerialize["out_order_no"] = o.OutOrderNo
}
if o.OutReturnNo == nil {
return nil, fmt.Errorf("field `OutReturnNo` is required and must be specified in CreateReturnOrderRequest")
}
toSerialize["out_return_no"] = o.OutReturnNo
if o.ReturnMchid == nil {
return nil, fmt.Errorf("field `ReturnMchid` is required and must be specified in CreateReturnOrderRequest")
}
toSerialize["return_mchid"] = o.ReturnMchid
if o.SubMchid != nil {
toSerialize["sub_mchid"] = o.SubMchid
}
return json.Marshal(toSerialize)
}
func (o CreateReturnOrderRequest) String() string {
var ret string
if o.Amount == nil {
ret += "Amount:<nil>, "
} else {
ret += fmt.Sprintf("Amount:%v, ", *o.Amount)
}
if o.Description == nil {
ret += "Description:<nil>, "
} else {
ret += fmt.Sprintf("Description:%v, ", *o.Description)
}
if o.OrderId == nil {
ret += "OrderId:<nil>, "
} else {
ret += fmt.Sprintf("OrderId:%v, ", *o.OrderId)
}
if o.OutOrderNo == nil {
ret += "OutOrderNo:<nil>, "
} else {
ret += fmt.Sprintf("OutOrderNo:%v, ", *o.OutOrderNo)
}
if o.OutReturnNo == nil {
ret += "OutReturnNo:<nil>, "
} else {
ret += fmt.Sprintf("OutReturnNo:%v, ", *o.OutReturnNo)
}
if o.ReturnMchid == nil {
ret += "ReturnMchid:<nil>, "
} else {
ret += fmt.Sprintf("ReturnMchid:%v, ", *o.ReturnMchid)
}
if o.SubMchid == nil {
ret += "SubMchid:<nil>"
} else {
ret += fmt.Sprintf("SubMchid:%v", *o.SubMchid)
}
return fmt.Sprintf("CreateReturnOrderRequest{%s}", ret)
}
func (o CreateReturnOrderRequest) Clone() *CreateReturnOrderRequest {
ret := CreateReturnOrderRequest{}
if o.Amount != nil {
ret.Amount = new(int64)
*ret.Amount = *o.Amount
}
if o.Description != nil {
ret.Description = new(string)
*ret.Description = *o.Description
}
if o.OrderId != nil {
ret.OrderId = new(string)
*ret.OrderId = *o.OrderId
}
if o.OutOrderNo != nil {
ret.OutOrderNo = new(string)
*ret.OutOrderNo = *o.OutOrderNo
}
if o.OutReturnNo != nil {
ret.OutReturnNo = new(string)
*ret.OutReturnNo = *o.OutReturnNo
}
if o.ReturnMchid != nil {
ret.ReturnMchid = new(string)
*ret.ReturnMchid = *o.ReturnMchid
}
if o.SubMchid != nil {
ret.SubMchid = new(string)
*ret.SubMchid = *o.SubMchid
}
return &ret
}
// DeleteReceiverRequest
type DeleteReceiverRequest struct {
// 类型是MERCHANT_ID时,是商户号 类型是PERSONAL_OPENID时,是个人openid 类型是PERSONAL_SUB_OPENID时,是个人sub_openid
Account *string `json:"account"`
// 微信分配的公众账号ID
Appid *string `json:"appid"`
// 微信分配的子商户公众账号ID,分账接收方类型包含PERSONAL_SUB_OPENID时必填。(直连商户不需要,服务商需要)
SubAppid *string `json:"sub_appid,omitempty"`
// 微信支付分配的子商户号,即分账的出资商户号。(直连商户不需要,服务商需要)
SubMchid *string `json:"sub_mchid,omitempty"`
// 枚举值: MERCHANT_ID:商户ID PERSONAL_OPENID:个人openid(由父商户APPID转换得到) PERSONAL_SUB_OPENID:个人sub_openid(由子商户APPID转换得到) * `MERCHANT_ID` - 商户号, * `PERSONAL_OPENID` - 个人openid(由父商户APPID转换得到), * `PERSONAL_SUB_OPENID` - 个人sub_openid(由子商户APPID转换得到)(直连商户不需要,服务商需要),
Type *ReceiverType `json:"type"`
}
func (o DeleteReceiverRequest) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if o.Account == nil {
return nil, fmt.Errorf("field `Account` is required and must be specified in DeleteReceiverRequest")
}
toSerialize["account"] = o.Account
if o.Appid == nil {
return nil, fmt.Errorf("field `Appid` is required and must be specified in DeleteReceiverRequest")
}
toSerialize["appid"] = o.Appid
if o.SubAppid != nil {
toSerialize["sub_appid"] = o.SubAppid
}
if o.SubMchid != nil {
toSerialize["sub_mchid"] = o.SubMchid
}
if o.Type == nil {
return nil, fmt.Errorf("field `Type` is required and must be specified in DeleteReceiverRequest")
}
toSerialize["type"] = o.Type
return json.Marshal(toSerialize)
}
func (o DeleteReceiverRequest) String() string {
var ret string
if o.Account == nil {
ret += "Account:<nil>, "
} else {
ret += fmt.Sprintf("Account:%v, ", *o.Account)
}
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.Type == nil {
ret += "Type:<nil>"
} else {
ret += fmt.Sprintf("Type:%v", *o.Type)
}
return fmt.Sprintf("DeleteReceiverRequest{%s}", ret)
}
func (o DeleteReceiverRequest) Clone() *DeleteReceiverRequest {
ret := DeleteReceiverRequest{}
if o.Account != nil {
ret.Account = new(string)
*ret.Account = *o.Account
}
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.Type != nil {
ret.Type = new(ReceiverType)
*ret.Type = *o.Type
}
return &ret
}
// DeleteReceiverResponse
type DeleteReceiverResponse struct {
// 参考请求参数
Account *string `json:"account"`
// 参考请求参数
SubMchid *string `json:"sub_mchid,omitempty"`
// 参考请求参数 * `MERCHANT_ID` - 商户号, * `PERSONAL_OPENID` - 个人openid(由父商户APPID转换得到), * `PERSONAL_SUB_OPENID` - 个人sub_openid(由子商户APPID转换得到)(直连商户不需要,服务商需要),
Type *ReceiverType `json:"type"`
}
func (o DeleteReceiverResponse) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if o.Account == nil {
return nil, fmt.Errorf("field `Account` is required and must be specified in DeleteReceiverResponse")
}
toSerialize["account"] = o.Account
if o.SubMchid != nil {
toSerialize["sub_mchid"] = o.SubMchid
}
if o.Type == nil {
return nil, fmt.Errorf("field `Type` is required and must be specified in DeleteReceiverResponse")
}
toSerialize["type"] = o.Type
return json.Marshal(toSerialize)
}
func (o DeleteReceiverResponse) String() string {
var ret string
if o.Account == nil {
ret += "Account:<nil>, "
} else {
ret += fmt.Sprintf("Account:%v, ", *o.Account)
}
if o.SubMchid == nil {
ret += "SubMchid:<nil>, "
} else {
ret += fmt.Sprintf("SubMchid:%v, ", *o.SubMchid)
}
if o.Type == nil {
ret += "Type:<nil>"
} else {
ret += fmt.Sprintf("Type:%v", *o.Type)
}
return fmt.Sprintf("DeleteReceiverResponse{%s}", ret)
}
func (o DeleteReceiverResponse) Clone() *DeleteReceiverResponse {
ret := DeleteReceiverResponse{}
if o.Account != nil {
ret.Account = new(string)
*ret.Account = *o.Account
}
if o.SubMchid != nil {
ret.SubMchid = new(string)
*ret.SubMchid = *o.SubMchid
}
if o.Type != nil {
ret.Type = new(ReceiverType)
*ret.Type = *o.Type
}
return &ret
}
// DetailFailReason * `ACCOUNT_ABNORMAL` - 分账接收账户异常, * `NO_RELATION` - 分账关系已解除, * `RECEIVER_HIGH_RISK` - 高风险接收方, * `RECEIVER_REAL_NAME_NOT_VERIFIED` - 接收方未实名, * `NO_AUTH` - 分账权限已解除,
type DetailFailReason string
func (e DetailFailReason) Ptr() *DetailFailReason {
return &e
}
// Enums of DetailFailReason
const (
DETAILFAILREASON_ACCOUNT_ABNORMAL DetailFailReason = "ACCOUNT_ABNORMAL"
DETAILFAILREASON_NO_RELATION DetailFailReason = "NO_RELATION"
DETAILFAILREASON_RECEIVER_HIGH_RISK DetailFailReason = "RECEIVER_HIGH_RISK"
DETAILFAILREASON_RECEIVER_REAL_NAME_NOT_VERIFIED DetailFailReason = "RECEIVER_REAL_NAME_NOT_VERIFIED"
DETAILFAILREASON_NO_AUTH DetailFailReason = "NO_AUTH"
)
// DetailStatus * `PENDING` - 待分账, * `SUCCESS` - 分账成功, * `CLOSED` - 已关闭,
type DetailStatus string
func (e DetailStatus) Ptr() *DetailStatus {
return &e
}
// Enums of DetailStatus
const (
DETAILSTATUS_PENDING DetailStatus = "PENDING"
DETAILSTATUS_SUCCESS DetailStatus = "SUCCESS"
DETAILSTATUS_CLOSED DetailStatus = "CLOSED"
)
// OrderReceiverDetail
type OrderReceiverDetail struct {
// 1、类型是MERCHANT_ID时,是商户号 2、类型是PERSONAL_OPENID时,是个人openid 3、类型是PERSONAL_SUB_OPENID时,是个人sub_openid
Account *string `json:"account"`
// 分账金额,单位为分,只能为整数,不能超过原订单支付金额及最大分账比例金额
Amount *int64 `json:"amount"`
// 分账创建时间,遵循RFC3339标准格式
CreateTime *time.Time `json:"create_time"`
// 分账的原因描述,分账账单中需要体现
Description *string `json:"description"`
// 微信分账明细单号,每笔分账业务执行的明细单号,可与资金账单对账使用
DetailId *string `json:"detail_id"`
// 分账失败原因。包含以下枚举值: 1、ACCOUNT_ABNORMAL : 分账接收账户异常 2、NO_RELATION : 分账关系已解除 3、RECEIVER_HIGH_RISK : 高风险接收方 4、RECEIVER_REAL_NAME_NOT_VERIFIED : 接收方未实名 5、NO_AUTH : 分账权限已解除 * `ACCOUNT_ABNORMAL` - 分账接收账户异常, * `NO_RELATION` - 分账关系已解除, * `RECEIVER_HIGH_RISK` - 高风险接收方, * `RECEIVER_REAL_NAME_NOT_VERIFIED` - 接收方未实名, * `NO_AUTH` - 分账权限已解除,
FailReason *DetailFailReason `json:"fail_reason,omitempty"`
// 分账完成时间,遵循RFC3339标准格式
FinishTime *time.Time `json:"finish_time"`
// 枚举值: 1、PENDING:待分账 2、SUCCESS:分账成功 3、CLOSED:已关闭 * `PENDING` - 待分账, * `SUCCESS` - 分账成功, * `CLOSED` - 已关闭,
Result *DetailStatus `json:"result"`
// 1、MERCHANT_ID:商户号 2、PERSONAL_OPENID:个人openid(由父商户APPID转换得到) 3、PERSONAL_SUB_OPENID: 个人sub_openid(由子商户APPID转换得到) * `MERCHANT_ID` - 商户号, * `PERSONAL_OPENID` - 个人openid(由父商户APPID转换得到), * `PERSONAL_SUB_OPENID` - 个人sub_openid(由子商户APPID转换得到)(直连商户不需要,服务商需要),
Type *ReceiverType `json:"type"`
}
func (o OrderReceiverDetail) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if o.Account == nil {
return nil, fmt.Errorf("field `Account` is required and must be specified in OrderReceiverDetail")
}
toSerialize["account"] = o.Account
if o.Amount == nil {
return nil, fmt.Errorf("field `Amount` is required and must be specified in OrderReceiverDetail")
}
toSerialize["amount"] = o.Amount
if o.CreateTime == nil {
return nil, fmt.Errorf("field `CreateTime` is required and must be specified in OrderReceiverDetail")
}
toSerialize["create_time"] = o.CreateTime.Format(time.RFC3339)
if o.Description == nil {
return nil, fmt.Errorf("field `Description` is required and must be specified in OrderReceiverDetail")
}
toSerialize["description"] = o.Description
if o.DetailId == nil {
return nil, fmt.Errorf("field `DetailId` is required and must be specified in OrderReceiverDetail")
}
toSerialize["detail_id"] = o.DetailId
if o.FailReason != nil {
toSerialize["fail_reason"] = o.FailReason
}
if o.FinishTime == nil {
return nil, fmt.Errorf("field `FinishTime` is required and must be specified in OrderReceiverDetail")
}
toSerialize["finish_time"] = o.FinishTime.Format(time.RFC3339)
if o.Result == nil {
return nil, fmt.Errorf("field `Result` is required and must be specified in OrderReceiverDetail")
}
toSerialize["result"] = o.Result
if o.Type == nil {
return nil, fmt.Errorf("field `Type` is required and must be specified in OrderReceiverDetail")
}
toSerialize["type"] = o.Type
return json.Marshal(toSerialize)
}
func (o OrderReceiverDetail) String() string {
var ret string
if o.Account == nil {
ret += "Account:<nil>, "
} else {
ret += fmt.Sprintf("Account:%v, ", *o.Account)
}
if o.Amount == nil {
ret += "Amount:<nil>, "
} else {
ret += fmt.Sprintf("Amount:%v, ", *o.Amount)
}
if o.CreateTime == nil {
ret += "CreateTime:<nil>, "
} else {
ret += fmt.Sprintf("CreateTime:%v, ", *o.CreateTime)
}
if o.Description == nil {
ret += "Description:<nil>, "
} else {
ret += fmt.Sprintf("Description:%v, ", *o.Description)
}
if o.DetailId == nil {
ret += "DetailId:<nil>, "
} else {
ret += fmt.Sprintf("DetailId:%v, ", *o.DetailId)
}
if o.FailReason == nil {
ret += "FailReason:<nil>, "
} else {
ret += fmt.Sprintf("FailReason:%v, ", *o.FailReason)
}
if o.FinishTime == nil {
ret += "FinishTime:<nil>, "
} else {
ret += fmt.Sprintf("FinishTime:%v, ", *o.FinishTime)
}
if o.Result == nil {
ret += "Result:<nil>, "
} else {
ret += fmt.Sprintf("Result:%v, ", *o.Result)
}
if o.Type == nil {
ret += "Type:<nil>"
} else {
ret += fmt.Sprintf("Type:%v", *o.Type)
}
return fmt.Sprintf("OrderReceiverDetail{%s}", ret)
}
func (o OrderReceiverDetail) Clone() *OrderReceiverDetail {
ret := OrderReceiverDetail{}
if o.Account != nil {
ret.Account = new(string)
*ret.Account = *o.Account
}
if o.Amount != nil {
ret.Amount = new(int64)
*ret.Amount = *o.Amount
}
if o.CreateTime != nil {
ret.CreateTime = new(time.Time)
*ret.CreateTime = *o.CreateTime
}
if o.Description != nil {
ret.Description = new(string)
*ret.Description = *o.Description
}
if o.DetailId != nil {
ret.DetailId = new(string)
*ret.DetailId = *o.DetailId
}
if o.FailReason != nil {
ret.FailReason = new(DetailFailReason)
*ret.FailReason = *o.FailReason
}
if o.FinishTime != nil {
ret.FinishTime = new(time.Time)
*ret.FinishTime = *o.FinishTime
}
if o.Result != nil {
ret.Result = new(DetailStatus)
*ret.Result = *o.Result
}
if o.Type != nil {
ret.Type = new(ReceiverType)
*ret.Type = *o.Type
}
return &ret
}
// OrderStatus * `PROCESSING` - 处理中, * `FINISHED` - 分账完成,
type OrderStatus string
func (e OrderStatus) Ptr() *OrderStatus {
return &e
}
// Enums of OrderStatus
const (
ORDERSTATUS_PROCESSING OrderStatus = "PROCESSING"
ORDERSTATUS_FINISHED OrderStatus = "FINISHED"
)
// OrdersEntity
type OrdersEntity struct {
// 微信分账单号,微信系统返回的唯一标识
OrderId *string `json:"order_id"`
// 商户系统内部的分账单号,在商户系统内部唯一,同一分账单号多次请求等同一次。只能是数字、大小写字母_-|*@
OutOrderNo *string `json:"out_order_no"`
// 分账接收方列表
Receivers []OrderReceiverDetail `json:"receivers,omitempty"`
// 分账单状态(每个接收方的分账结果请查看receivers中的result字段),枚举值: 1、PROCESSING:处理中 2、FINISHED:分账完成 * `PROCESSING` - 处理中, * `FINISHED` - 分账完成,
State *OrderStatus `json:"state"`
// 微信支付分配的子商户号,即分账的出资商户号。(直连商户不需要,服务商需要)
SubMchid *string `json:"sub_mchid,omitempty"`
// 微信支付订单号
TransactionId *string `json:"transaction_id"`
}
func (o OrdersEntity) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if o.OrderId == nil {
return nil, fmt.Errorf("field `OrderId` is required and must be specified in OrdersEntity")
}
toSerialize["order_id"] = o.OrderId
if o.OutOrderNo == nil {
return nil, fmt.Errorf("field `OutOrderNo` is required and must be specified in OrdersEntity")
}
toSerialize["out_order_no"] = o.OutOrderNo
if o.Receivers != nil {
toSerialize["receivers"] = o.Receivers
}
if o.State == nil {
return nil, fmt.Errorf("field `State` is required and must be specified in OrdersEntity")
}
toSerialize["state"] = o.State
if o.SubMchid != nil {
toSerialize["sub_mchid"] = o.SubMchid
}
if o.TransactionId == nil {
return nil, fmt.Errorf("field `TransactionId` is required and must be specified in OrdersEntity")
}
toSerialize["transaction_id"] = o.TransactionId
return json.Marshal(toSerialize)
}
func (o OrdersEntity) String() string {
var ret string
if o.OrderId == nil {
ret += "OrderId:<nil>, "
} else {
ret += fmt.Sprintf("OrderId:%v, ", *o.OrderId)
}
if o.OutOrderNo == nil {
ret += "OutOrderNo:<nil>, "
} else {
ret += fmt.Sprintf("OutOrderNo:%v, ", *o.OutOrderNo)
}
ret += fmt.Sprintf("Receivers:%v, ", o.Receivers)
if o.State == nil {
ret += "State:<nil>, "
} else {
ret += fmt.Sprintf("State:%v, ", *o.State)
}
if o.SubMchid == nil {
ret += "SubMchid:<nil>, "
} else {
ret += fmt.Sprintf("SubMchid:%v, ", *o.SubMchid)
}
if o.TransactionId == nil {
ret += "TransactionId:<nil>"
} else {
ret += fmt.Sprintf("TransactionId:%v", *o.TransactionId)
}
return fmt.Sprintf("OrdersEntity{%s}", ret)
}
func (o OrdersEntity) Clone() *OrdersEntity {
ret := OrdersEntity{}
if o.OrderId != nil {
ret.OrderId = new(string)
*ret.OrderId = *o.OrderId
}
if o.OutOrderNo != nil {
ret.OutOrderNo = new(string)
*ret.OutOrderNo = *o.OutOrderNo
}
if o.Receivers != nil {
ret.Receivers = make([]OrderReceiverDetail, len(o.Receivers))
for i, item := range o.Receivers {
ret.Receivers[i] = *item.Clone()
}
}
if o.State != nil {
ret.State = new(OrderStatus)
*ret.State = *o.State
}
if o.SubMchid != nil {
ret.SubMchid = new(string)
*ret.SubMchid = *o.SubMchid
}
if o.TransactionId != nil {
ret.TransactionId = new(string)
*ret.TransactionId = *o.TransactionId
}
return &ret
}
// QueryMerchantRatioRequest
type QueryMerchantRatioRequest struct {
// 微信支付分配的子商户号,即分账的出资商户号。
SubMchid *string `json:"sub_mchid"`
}
func (o QueryMerchantRatioRequest) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if o.SubMchid == nil {
return nil, fmt.Errorf("field `SubMchid` is required and must be specified in QueryMerchantRatioRequest")
}
toSerialize["sub_mchid"] = o.SubMchid
return json.Marshal(toSerialize)
}
func (o QueryMerchantRatioRequest) String() string {
var ret string
if o.SubMchid == nil {
ret += "SubMchid:<nil>"
} else {
ret += fmt.Sprintf("SubMchid:%v", *o.SubMchid)
}
return fmt.Sprintf("QueryMerchantRatioRequest{%s}", ret)
}
func (o QueryMerchantRatioRequest) Clone() *QueryMerchantRatioRequest {
ret := QueryMerchantRatioRequest{}
if o.SubMchid != nil {
ret.SubMchid = new(string)
*ret.SubMchid = *o.SubMchid
}
return &ret
}
// QueryMerchantRatioResponse
type QueryMerchantRatioResponse struct {
// 子商户允许父商户分账的最大比例,单位万分比,比如2000表示20%
MaxRatio *int64 `json:"max_ratio"`
// 参考请求参数
SubMchid *string `json:"sub_mchid"`
}
func (o QueryMerchantRatioResponse) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if o.MaxRatio == nil {
return nil, fmt.Errorf("field `MaxRatio` is required and must be specified in QueryMerchantRatioResponse")
}
toSerialize["max_ratio"] = o.MaxRatio
if o.SubMchid == nil {
return nil, fmt.Errorf("field `SubMchid` is required and must be specified in QueryMerchantRatioResponse")
}
toSerialize["sub_mchid"] = o.SubMchid
return json.Marshal(toSerialize)
}
func (o QueryMerchantRatioResponse) String() string {
var ret string
if o.MaxRatio == nil {
ret += "MaxRatio:<nil>, "
} else {
ret += fmt.Sprintf("MaxRatio:%v, ", *o.MaxRatio)
}
if o.SubMchid == nil {
ret += "SubMchid:<nil>"
} else {
ret += fmt.Sprintf("SubMchid:%v", *o.SubMchid)
}
return fmt.Sprintf("QueryMerchantRatioResponse{%s}", ret)
}
func (o QueryMerchantRatioResponse) Clone() *QueryMerchantRatioResponse {
ret := QueryMerchantRatioResponse{}
if o.MaxRatio != nil {
ret.MaxRatio = new(int64)
*ret.MaxRatio = *o.MaxRatio
}
if o.SubMchid != nil {
ret.SubMchid = new(string)
*ret.SubMchid = *o.SubMchid
}
return &ret
}
// QueryOrderAmountRequest
type QueryOrderAmountRequest struct {
// 微信支付订单号
TransactionId *string `json:"transaction_id"`
}
func (o QueryOrderAmountRequest) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if o.TransactionId == nil {
return nil, fmt.Errorf("field `TransactionId` is required and must be specified in QueryOrderAmountRequest")
}
toSerialize["transaction_id"] = o.TransactionId
return json.Marshal(toSerialize)
}
func (o QueryOrderAmountRequest) String() string {
var ret string
if o.TransactionId == nil {
ret += "TransactionId:<nil>"
} else {
ret += fmt.Sprintf("TransactionId:%v", *o.TransactionId)
}
return fmt.Sprintf("QueryOrderAmountRequest{%s}", ret)
}
func (o QueryOrderAmountRequest) Clone() *QueryOrderAmountRequest {
ret := QueryOrderAmountRequest{}
if o.TransactionId != nil {
ret.TransactionId = new(string)
*ret.TransactionId = *o.TransactionId
}
return &ret
}
// QueryOrderAmountResponse
type QueryOrderAmountResponse struct {
// 微信支付订单号
TransactionId *string `json:"transaction_id"`
// 订单剩余待分金额,整数,单元为分
UnsplitAmount *int64 `json:"unsplit_amount"`
}
func (o QueryOrderAmountResponse) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if o.TransactionId == nil {
return nil, fmt.Errorf("field `TransactionId` is required and must be specified in QueryOrderAmountResponse")
}
toSerialize["transaction_id"] = o.TransactionId
if o.UnsplitAmount == nil {
return nil, fmt.Errorf("field `UnsplitAmount` is required and must be specified in QueryOrderAmountResponse")
}
toSerialize["unsplit_amount"] = o.UnsplitAmount
return json.Marshal(toSerialize)
}
func (o QueryOrderAmountResponse) String() string {
var ret string
if o.TransactionId == nil {
ret += "TransactionId:<nil>, "
} else {
ret += fmt.Sprintf("TransactionId:%v, ", *o.TransactionId)
}
if o.UnsplitAmount == nil {
ret += "UnsplitAmount:<nil>"
} else {
ret += fmt.Sprintf("UnsplitAmount:%v", *o.UnsplitAmount)
}
return fmt.Sprintf("QueryOrderAmountResponse{%s}", ret)
}
func (o QueryOrderAmountResponse) Clone() *QueryOrderAmountResponse {
ret := QueryOrderAmountResponse{}
if o.TransactionId != nil {
ret.TransactionId = new(string)
*ret.TransactionId = *o.TransactionId
}
if o.UnsplitAmount != nil {
ret.UnsplitAmount = new(int64)
*ret.UnsplitAmount = *o.UnsplitAmount
}
return &ret
}
// QueryOrderRequest
type QueryOrderRequest struct {
// 微信支付分配的子商户号,即分账的出资商户号。(直连商户不需要,服务商需要)
SubMchid *string `json:"sub_mchid,omitempty"`
// 微信支付订单号
TransactionId *string `json:"transaction_id"`
// 商户系统内部的分账单号,在商户系统内部唯一,同一分账单号多次请求等同一次。只能是数字、大小写字母_-|*@ 。 微信分账单号与商户分账单号二选一填写
OutOrderNo *string `json:"out_order_no"`
}
func (o QueryOrderRequest) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if o.SubMchid != nil {
toSerialize["sub_mchid"] = o.SubMchid
}
if o.TransactionId == nil {
return nil, fmt.Errorf("field `TransactionId` is required and must be specified in QueryOrderRequest")
}
toSerialize["transaction_id"] = o.TransactionId
if o.OutOrderNo == nil {
return nil, fmt.Errorf("field `OutOrderNo` is required and must be specified in QueryOrderRequest")
}
toSerialize["out_order_no"] = o.OutOrderNo
return json.Marshal(toSerialize)
}
func (o QueryOrderRequest) String() string {
var ret string
if o.SubMchid == nil {
ret += "SubMchid:<nil>, "
} else {
ret += fmt.Sprintf("SubMchid:%v, ", *o.SubMchid)
}
if o.TransactionId == nil {
ret += "TransactionId:<nil>, "
} else {
ret += fmt.Sprintf("TransactionId:%v, ", *o.TransactionId)
}
if o.OutOrderNo == nil {
ret += "OutOrderNo:<nil>"
} else {
ret += fmt.Sprintf("OutOrderNo:%v", *o.OutOrderNo)
}
return fmt.Sprintf("QueryOrderRequest{%s}", ret)
}
func (o QueryOrderRequest) Clone() *QueryOrderRequest {
ret := QueryOrderRequest{}
if o.SubMchid != nil {
ret.SubMchid = new(string)
*ret.SubMchid = *o.SubMchid
}
if o.TransactionId != nil {
ret.TransactionId = new(string)
*ret.TransactionId = *o.TransactionId
}
if o.OutOrderNo != nil {
ret.OutOrderNo = new(string)
*ret.OutOrderNo = *o.OutOrderNo
}
return &ret
}
// QueryReturnOrderRequest
type QueryReturnOrderRequest struct {
// 分账回退的接收商户,对应原分账出资的分账方商户,填写微信支付分配的商户号。(直连商户不需要,服务商需要)
SubMchid *string `json:"sub_mchid,omitempty"`
// 调用回退接口提供的商户系统内部的回退单号。微信支付回退单号与商户回退单号二选一填写
OutReturnNo *string `json:"out_return_no"`
// 原发起分账请求时使用的商户系统内部的分账单号。微信分账单号与商户分账单号二选一填写
OutOrderNo *string `json:"out_order_no"`
}
func (o QueryReturnOrderRequest) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if o.SubMchid != nil {
toSerialize["sub_mchid"] = o.SubMchid
}
if o.OutReturnNo == nil {
return nil, fmt.Errorf("field `OutReturnNo` is required and must be specified in QueryReturnOrderRequest")
}
toSerialize["out_return_no"] = o.OutReturnNo
if o.OutOrderNo == nil {
return nil, fmt.Errorf("field `OutOrderNo` is required and must be specified in QueryReturnOrderRequest")
}
toSerialize["out_order_no"] = o.OutOrderNo
return json.Marshal(toSerialize)
}
func (o QueryReturnOrderRequest) String() string {
var ret string
if o.SubMchid == nil {
ret += "SubMchid:<nil>, "
} else {
ret += fmt.Sprintf("SubMchid:%v, ", *o.SubMchid)
}
if o.OutReturnNo == nil {
ret += "OutReturnNo:<nil>, "
} else {
ret += fmt.Sprintf("OutReturnNo:%v, ", *o.OutReturnNo)
}
if o.OutOrderNo == nil {
ret += "OutOrderNo:<nil>"
} else {
ret += fmt.Sprintf("OutOrderNo:%v", *o.OutOrderNo)
}
return fmt.Sprintf("QueryReturnOrderRequest{%s}", ret)
}
func (o QueryReturnOrderRequest) Clone() *QueryReturnOrderRequest {
ret := QueryReturnOrderRequest{}
if o.SubMchid != nil {
ret.SubMchid = new(string)
*ret.SubMchid = *o.SubMchid
}
if o.OutReturnNo != nil {
ret.OutReturnNo = new(string)
*ret.OutReturnNo = *o.OutReturnNo
}
if o.OutOrderNo != nil {
ret.OutOrderNo = new(string)
*ret.OutOrderNo = *o.OutOrderNo
}
return &ret
}
// ReceiverRelationType * `SERVICE_PROVIDER` - 服务商, * `STORE` - 门店, * `STAFF` - 员工, * `STORE_OWNER` - 店主, * `PARTNER` - 合作伙伴, * `HEADQUARTER` - 总部, * `BRAND` - 品牌方, * `DISTRIBUTOR` - 分销商, * `USER` - 用户, * `SUPPLIER` - 供应商, * `CUSTOM` - 自定义,
type ReceiverRelationType string
func (e ReceiverRelationType) Ptr() *ReceiverRelationType {
return &e
}
// Enums of ReceiverRelationType
const (
RECEIVERRELATIONTYPE_SERVICE_PROVIDER ReceiverRelationType = "SERVICE_PROVIDER"
RECEIVERRELATIONTYPE_STORE ReceiverRelationType = "STORE"
RECEIVERRELATIONTYPE_STAFF ReceiverRelationType = "STAFF"
RECEIVERRELATIONTYPE_STORE_OWNER ReceiverRelationType = "STORE_OWNER"
RECEIVERRELATIONTYPE_PARTNER ReceiverRelationType = "PARTNER"
RECEIVERRELATIONTYPE_HEADQUARTER ReceiverRelationType = "HEADQUARTER"
RECEIVERRELATIONTYPE_BRAND ReceiverRelationType = "BRAND"
RECEIVERRELATIONTYPE_DISTRIBUTOR ReceiverRelationType = "DISTRIBUTOR"
RECEIVERRELATIONTYPE_USER ReceiverRelationType = "USER"
RECEIVERRELATIONTYPE_SUPPLIER ReceiverRelationType = "SUPPLIER"
RECEIVERRELATIONTYPE_CUSTOM ReceiverRelationType = "CUSTOM"
)
// ReceiverType * `MERCHANT_ID` - 商户号, * `PERSONAL_OPENID` - 个人openid(由父商户APPID转换得到), * `PERSONAL_SUB_OPENID` - 个人sub_openid(由子商户APPID转换得到)(直连商户不需要,服务商需要),
type ReceiverType string
func (e ReceiverType) Ptr() *ReceiverType {
return &e
}
// Enums of ReceiverType
const (
RECEIVERTYPE_MERCHANT_ID ReceiverType = "MERCHANT_ID"
RECEIVERTYPE_PERSONAL_OPENID ReceiverType = "PERSONAL_OPENID"
RECEIVERTYPE_PERSONAL_SUB_OPENID ReceiverType = "PERSONAL_SUB_OPENID"
)
// ReturnOrderFailReason * `ACCOUNT_ABNORMAL` - 分账接收方账户异常, * `BALANCE_NOT_ENOUGH` - 余额不足, * `TIME_OUT_CLOSED` - 超时关单,
type ReturnOrderFailReason string
func (e ReturnOrderFailReason) Ptr() *ReturnOrderFailReason {
return &e
}
// Enums of ReturnOrderFailReason
const (
RETURNORDERFAILREASON_ACCOUNT_ABNORMAL ReturnOrderFailReason = "ACCOUNT_ABNORMAL"
RETURNORDERFAILREASON_BALANCE_NOT_ENOUGH ReturnOrderFailReason = "BALANCE_NOT_ENOUGH"
RETURNORDERFAILREASON_TIME_OUT_CLOSED ReturnOrderFailReason = "TIME_OUT_CLOSED"
)
// ReturnOrderStatus * `PROCESSING` - 处理中, * `SUCCESS` - 已成功, * `FAILED` - 已失败,
type ReturnOrderStatus string
func (e ReturnOrderStatus) Ptr() *ReturnOrderStatus {
return &e
}
// Enums of ReturnOrderStatus
const (
RETURNORDERSTATUS_PROCESSING ReturnOrderStatus = "PROCESSING"
RETURNORDERSTATUS_SUCCESS ReturnOrderStatus = "SUCCESS"
RETURNORDERSTATUS_FAILED ReturnOrderStatus = "FAILED"
)
// ReturnOrdersEntity
type ReturnOrdersEntity struct {
// 需要从分账接收方回退的金额,单位为分,只能为整数
Amount *int64 `json:"amount"`
// 分账回退创建时间,遵循RFC3339标准格式
CreateTime *time.Time `json:"create_time"`
// 分账回退的原因描述
Description *string `json:"description"`
// 失败原因。包含以下枚举值: ACCOUNT_ABNORMAL : 分账接收方账户异常 TIME_OUT_CLOSED : 超时关单 * `ACCOUNT_ABNORMAL` - 分账接收方账户异常, * `BALANCE_NOT_ENOUGH` - 余额不足, * `TIME_OUT_CLOSED` - 超时关单,
FailReason *ReturnOrderFailReason `json:"fail_reason,omitempty"`
// 分账回退完成时间,遵循RFC3339标准格式
FinishTime *time.Time `json:"finish_time"`
// 参考请求参数
OrderId *string `json:"order_id"`
// 参考请求参数
OutOrderNo *string `json:"out_order_no"`
// 参考请求参数
OutReturnNo *string `json:"out_return_no"`
// 如果请求返回为处理中,则商户可以通过调用回退结果查询接口获取请求的最终处理结果。如果查询到回退结果在处理中,请勿变更商户回退单号,使用相同的参数再次发起分账回退,否则会出现资金风险。在处理中状态的回退单如果5天没有成功,会因为超时被设置为已失败。 枚举值: PROCESSING:处理中 SUCCESS:已成功 FAILED:已失败 * `PROCESSING` - 处理中, * `SUCCESS` - 已成功, * `FAILED` - 已失败,
Result *ReturnOrderStatus `json:"result"`
// 微信分账回退单号,微信系统返回的唯一标识
ReturnId *string `json:"return_id"`
// 只能对原分账请求中成功分给商户接收方进行回退
ReturnMchid *string `json:"return_mchid"`
// 参考请求参数
SubMchid *string `json:"sub_mchid,omitempty"`
}
func (o ReturnOrdersEntity) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if o.Amount == nil {
return nil, fmt.Errorf("field `Amount` is required and must be specified in ReturnOrdersEntity")
}
toSerialize["amount"] = o.Amount
if o.CreateTime == nil {
return nil, fmt.Errorf("field `CreateTime` is required and must be specified in ReturnOrdersEntity")
}
toSerialize["create_time"] = o.CreateTime.Format(time.RFC3339)
if o.Description == nil {
return nil, fmt.Errorf("field `Description` is required and must be specified in ReturnOrdersEntity")
}
toSerialize["description"] = o.Description
if o.FailReason != nil {
toSerialize["fail_reason"] = o.FailReason
}
if o.FinishTime == nil {
return nil, fmt.Errorf("field `FinishTime` is required and must be specified in ReturnOrdersEntity")
}
toSerialize["finish_time"] = o.FinishTime.Format(time.RFC3339)
if o.OrderId == nil {
return nil, fmt.Errorf("field `OrderId` is required and must be specified in ReturnOrdersEntity")
}
toSerialize["order_id"] = o.OrderId
if o.OutOrderNo == nil {
return nil, fmt.Errorf("field `OutOrderNo` is required and must be specified in ReturnOrdersEntity")
}
toSerialize["out_order_no"] = o.OutOrderNo
if o.OutReturnNo == nil {
return nil, fmt.Errorf("field `OutReturnNo` is required and must be specified in ReturnOrdersEntity")
}
toSerialize["out_return_no"] = o.OutReturnNo
if o.Result == nil {
return nil, fmt.Errorf("field `Result` is required and must be specified in ReturnOrdersEntity")
}
toSerialize["result"] = o.Result
if o.ReturnId == nil {
return nil, fmt.Errorf("field `ReturnId` is required and must be specified in ReturnOrdersEntity")
}
toSerialize["return_id"] = o.ReturnId
if o.ReturnMchid == nil {
return nil, fmt.Errorf("field `ReturnMchid` is required and must be specified in ReturnOrdersEntity")
}
toSerialize["return_mchid"] = o.ReturnMchid
if o.SubMchid != nil {
toSerialize["sub_mchid"] = o.SubMchid
}
return json.Marshal(toSerialize)
}
func (o ReturnOrdersEntity) String() string {
var ret string
if o.Amount == nil {
ret += "Amount:<nil>, "
} else {
ret += fmt.Sprintf("Amount:%v, ", *o.Amount)
}
if o.CreateTime == nil {
ret += "CreateTime:<nil>, "
} else {
ret += fmt.Sprintf("CreateTime:%v, ", *o.CreateTime)
}
if o.Description == nil {
ret += "Description:<nil>, "
} else {
ret += fmt.Sprintf("Description:%v, ", *o.Description)
}
if o.FailReason == nil {
ret += "FailReason:<nil>, "
} else {
ret += fmt.Sprintf("FailReason:%v, ", *o.FailReason)
}
if o.FinishTime == nil {
ret += "FinishTime:<nil>, "
} else {
ret += fmt.Sprintf("FinishTime:%v, ", *o.FinishTime)
}
if o.OrderId == nil {
ret += "OrderId:<nil>, "
} else {
ret += fmt.Sprintf("OrderId:%v, ", *o.OrderId)
}
if o.OutOrderNo == nil {
ret += "OutOrderNo:<nil>, "
} else {
ret += fmt.Sprintf("OutOrderNo:%v, ", *o.OutOrderNo)
}
if o.OutReturnNo == nil {
ret += "OutReturnNo:<nil>, "
} else {
ret += fmt.Sprintf("OutReturnNo:%v, ", *o.OutReturnNo)
}
if o.Result == nil {
ret += "Result:<nil>, "
} else {
ret += fmt.Sprintf("Result:%v, ", *o.Result)
}
if o.ReturnId == nil {
ret += "ReturnId:<nil>, "
} else {
ret += fmt.Sprintf("ReturnId:%v, ", *o.ReturnId)
}
if o.ReturnMchid == nil {
ret += "ReturnMchid:<nil>, "
} else {
ret += fmt.Sprintf("ReturnMchid:%v, ", *o.ReturnMchid)
}
if o.SubMchid == nil {
ret += "SubMchid:<nil>"
} else {
ret += fmt.Sprintf("SubMchid:%v", *o.SubMchid)
}
return fmt.Sprintf("ReturnOrdersEntity{%s}", ret)
}
func (o ReturnOrdersEntity) Clone() *ReturnOrdersEntity {
ret := ReturnOrdersEntity{}
if o.Amount != nil {
ret.Amount = new(int64)
*ret.Amount = *o.Amount
}
if o.CreateTime != nil {
ret.CreateTime = new(time.Time)
*ret.CreateTime = *o.CreateTime
}
if o.Description != nil {
ret.Description = new(string)
*ret.Description = *o.Description
}
if o.FailReason != nil {
ret.FailReason = new(ReturnOrderFailReason)
*ret.FailReason = *o.FailReason
}
if o.FinishTime != nil {
ret.FinishTime = new(time.Time)
*ret.FinishTime = *o.FinishTime
}
if o.OrderId != nil {
ret.OrderId = new(string)
*ret.OrderId = *o.OrderId
}
if o.OutOrderNo != nil {
ret.OutOrderNo = new(string)
*ret.OutOrderNo = *o.OutOrderNo
}
if o.OutReturnNo != nil {
ret.OutReturnNo = new(string)
*ret.OutReturnNo = *o.OutReturnNo
}
if o.Result != nil {
ret.Result = new(ReturnOrderStatus)
*ret.Result = *o.Result
}
if o.ReturnId != nil {
ret.ReturnId = new(string)
*ret.ReturnId = *o.ReturnId
}
if o.ReturnMchid != nil {
ret.ReturnMchid = new(string)
*ret.ReturnMchid = *o.ReturnMchid
}
if o.SubMchid != nil {
ret.SubMchid = new(string)
*ret.SubMchid = *o.SubMchid
}
return &ret
}
// SplitBillHashType * `SHA1` - SHA1,Secure Hash Algorithm 1
type SplitBillHashType string
func (e SplitBillHashType) Ptr() *SplitBillHashType {
return &e
}
// Enums of SplitBillHashType
const (
SPLITBILLHASHTYPE_SHA1 SplitBillHashType = "SHA1"
)
// SplitBillRequest
type SplitBillRequest struct {
// 若商户是直连商户: - 无需填写该字段 若商户是服务商: - 不填则默认返回服务商下的所有分账账单。 - 如需下载某个子商户下的分账账单,则填指定的子商户号。
SubMchid *string `json:"sub_mchid,omitempty"`
// 格式YYYY-MM-DD。仅支持三个月内的账单下载申请。
BillDate *string `json:"bill_date"`
// 不填则以不压缩的方式返回数据流
TarType *SplitBillTarType `json:"tar_type,omitempty"`
}
func (o SplitBillRequest) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if o.SubMchid != nil {
toSerialize["sub_mchid"] = o.SubMchid
}
if o.BillDate == nil {
return nil, fmt.Errorf("field `BillDate` is required and must be specified in SplitBillRequest")
}
toSerialize["bill_date"] = o.BillDate
if o.TarType != nil {
toSerialize["tar_type"] = o.TarType
}
return json.Marshal(toSerialize)
}
func (o SplitBillRequest) String() string {
var ret string
if o.SubMchid == nil {
ret += "SubMchid:<nil>, "
} else {
ret += fmt.Sprintf("SubMchid:%v, ", *o.SubMchid)
}
if o.BillDate == nil {
ret += "BillDate:<nil>, "
} else {
ret += fmt.Sprintf("BillDate:%v, ", *o.BillDate)
}
if o.TarType == nil {
ret += "TarType:<nil>"
} else {
ret += fmt.Sprintf("TarType:%v", *o.TarType)
}
return fmt.Sprintf("SplitBillRequest{%s}", ret)
}
func (o SplitBillRequest) Clone() *SplitBillRequest {
ret := SplitBillRequest{}
if o.SubMchid != nil {
ret.SubMchid = new(string)
*ret.SubMchid = *o.SubMchid
}
if o.BillDate != nil {
ret.BillDate = new(string)
*ret.BillDate = *o.BillDate
}
if o.TarType != nil {
ret.TarType = new(SplitBillTarType)
*ret.TarType = *o.TarType
}
return &ret
}
// SplitBillResponse
type SplitBillResponse struct {
// 供下一步请求账单文件的下载地址,该地址30s内有效
DownloadUrl *string `json:"download_url"`
// 原始账单(gzip需要解压缩)的摘要算法,用于校验文件的完整性 * `SHA1` - SHA1,Secure Hash Algorithm 1
HashType *SplitBillHashType `json:"hash_type"`
// 原始账单(gzip需要解压缩)的摘要值,用于校验文件的完整性
HashValue *string `json:"hash_value"`
}
func (o SplitBillResponse) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if o.DownloadUrl == nil {
return nil, fmt.Errorf("field `DownloadUrl` is required and must be specified in SplitBillResponse")
}
toSerialize["download_url"] = o.DownloadUrl
if o.HashType == nil {
return nil, fmt.Errorf("field `HashType` is required and must be specified in SplitBillResponse")
}
toSerialize["hash_type"] = o.HashType
if o.HashValue == nil {
return nil, fmt.Errorf("field `HashValue` is required and must be specified in SplitBillResponse")
}
toSerialize["hash_value"] = o.HashValue
return json.Marshal(toSerialize)
}
func (o SplitBillResponse) String() string {
var ret string
if o.DownloadUrl == nil {
ret += "DownloadUrl:<nil>, "
} else {
ret += fmt.Sprintf("DownloadUrl:%v, ", *o.DownloadUrl)
}
if o.HashType == nil {
ret += "HashType:<nil>, "
} else {
ret += fmt.Sprintf("HashType:%v, ", *o.HashType)
}
if o.HashValue == nil {
ret += "HashValue:<nil>"
} else {
ret += fmt.Sprintf("HashValue:%v", *o.HashValue)
}
return fmt.Sprintf("SplitBillResponse{%s}", ret)
}
func (o SplitBillResponse) Clone() *SplitBillResponse {
ret := SplitBillResponse{}
if o.DownloadUrl != nil {
ret.DownloadUrl = new(string)
*ret.DownloadUrl = *o.DownloadUrl
}
if o.HashType != nil {
ret.HashType = new(SplitBillHashType)
*ret.HashType = *o.HashType
}
if o.HashValue != nil {
ret.HashValue = new(string)
*ret.HashValue = *o.HashValue
}
return &ret
}
// SplitBillTarType * `GZIP` - GZIP格式压缩,返回格式为.gzip的压缩包账单
type SplitBillTarType string
func (e SplitBillTarType) Ptr() *SplitBillTarType {
return &e
}
// Enums of SplitBillTarType
const (
SPLITBILLTARTYPE_GZIP SplitBillTarType = "GZIP"
)
// UnfreezeOrderRequest
type UnfreezeOrderRequest struct {
// 分账的原因描述,分账账单中需要体现
Description *string `json:"description"`
// 商户系统内部的分账单号,在商户系统内部唯一,同一分账单号多次请求等同一次。只能是数字、大小写字母_-|*@
OutOrderNo *string `json:"out_order_no"`
// 微信支付分配的子商户号,即分账的出资商户号。(直连商户不需要,服务商需要)
SubMchid *string `json:"sub_mchid,omitempty"`
// 微信支付订单号
TransactionId *string `json:"transaction_id"`
}
func (o UnfreezeOrderRequest) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if o.Description == nil {
return nil, fmt.Errorf("field `Description` is required and must be specified in UnfreezeOrderRequest")
}
toSerialize["description"] = o.Description
if o.OutOrderNo == nil {
return nil, fmt.Errorf("field `OutOrderNo` is required and must be specified in UnfreezeOrderRequest")
}
toSerialize["out_order_no"] = o.OutOrderNo
if o.SubMchid != nil {
toSerialize["sub_mchid"] = o.SubMchid
}
if o.TransactionId == nil {
return nil, fmt.Errorf("field `TransactionId` is required and must be specified in UnfreezeOrderRequest")
}
toSerialize["transaction_id"] = o.TransactionId
return json.Marshal(toSerialize)
}
func (o UnfreezeOrderRequest) String() string {
var ret string
if o.Description == nil {
ret += "Description:<nil>, "
} else {
ret += fmt.Sprintf("Description:%v, ", *o.Description)
}
if o.OutOrderNo == nil {
ret += "OutOrderNo:<nil>, "
} else {
ret += fmt.Sprintf("OutOrderNo:%v, ", *o.OutOrderNo)
}
if o.SubMchid == nil {
ret += "SubMchid:<nil>, "
} else {
ret += fmt.Sprintf("SubMchid:%v, ", *o.SubMchid)
}
if o.TransactionId == nil {
ret += "TransactionId:<nil>"
} else {
ret += fmt.Sprintf("TransactionId:%v", *o.TransactionId)
}
return fmt.Sprintf("UnfreezeOrderRequest{%s}", ret)
}
func (o UnfreezeOrderRequest) Clone() *UnfreezeOrderRequest {
ret := UnfreezeOrderRequest{}
if o.Description != nil {
ret.Description = new(string)
*ret.Description = *o.Description
}
if o.OutOrderNo != nil {
ret.OutOrderNo = new(string)
*ret.OutOrderNo = *o.OutOrderNo
}
if o.SubMchid != nil {
ret.SubMchid = new(string)
*ret.SubMchid = *o.SubMchid
}
if o.TransactionId != nil {
ret.TransactionId = new(string)
*ret.TransactionId = *o.TransactionId
}
return &ret
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。