1 Star 0 Fork 0

eden-w2w / wechatpay-go

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
models.go 59.80 KB
一键复制 编辑 原始数据 按行查看 历史
EmmetZC 提交于 2021-08-26 10:44 . feat: 增加 分账 API profitsharing
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117
// 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
}
1
https://gitee.com/eden-w2w/wechatpay-go.git
git@gitee.com:eden-w2w/wechatpay-go.git
eden-w2w
wechatpay-go
wechatpay-go
v0.2.12

搜索帮助