models.go 60 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117
  1. // Copyright 2021 Tencent Inc. All rights reserved.
  2. //
  3. // 微信支付分账API
  4. //
  5. // 微信支付分账API
  6. //
  7. // API version: 0.0.3
  8. // Code generated by WechatPay APIv3 Generator based on [OpenAPI Generator](https://openapi-generator.tech); DO NOT EDIT.
  9. package profitsharing
  10. import (
  11. "encoding/json"
  12. "fmt"
  13. "time"
  14. )
  15. // AddReceiverRequest
  16. type AddReceiverRequest struct {
  17. // 类型是MERCHANT_ID时,是商户号 类型是PERSONAL_OPENID时,是个人openid 类型是PERSONAL_SUB_OPENID时,是个人sub_openid
  18. Account *string `json:"account"`
  19. // 微信分配的公众账号ID
  20. Appid *string `json:"appid"`
  21. // 子商户与接收方具体的关系,本字段最多10个字。 当字段relation_type的值为CUSTOM时,本字段必填 当字段relation_type的值不为CUSTOM时,本字段无需填写
  22. CustomRelation *string `json:"custom_relation,omitempty"`
  23. // 分账接收方类型是MERCHANT_ID时,是商户全称(必传),当商户是小微商户或个体户时,是开户人姓名 分账接收方类型是PERSONAL_OPENID时,是个人姓名(选传,传则校验) 分账接收方类型是PERSONAL_SUB_OPENID时,是个人姓名(选传,传则校验) 1、此字段需要加密,的加密方法详见:敏感信息加密说明 2、使用微信支付平台证书中的公钥 3、使用RSAES-OAEP算法进行加密 4、将请求中HTTP头部的Wechatpay-Serial设置为证书序列号
  24. Name *string `json:"name,omitempty" encryption:"EM_APIV3"`
  25. // 子商户与接收方的关系。 本字段值为枚举: 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` - 自定义,
  26. RelationType *ReceiverRelationType `json:"relation_type"`
  27. // 子商户的公众账号ID,分账接收方类型包含PERSONAL_SUB_OPENID时必填。(直连商户不需要,服务商需要)
  28. SubAppid *string `json:"sub_appid,omitempty"`
  29. // 微信支付分配的子商户号,即分账的出资商户号。(直连商户不需要,服务商需要)
  30. SubMchid *string `json:"sub_mchid,omitempty"`
  31. // 枚举值: 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转换得到)(直连商户不需要,服务商需要),
  32. Type *ReceiverType `json:"type"`
  33. }
  34. func (o AddReceiverRequest) MarshalJSON() ([]byte, error) {
  35. toSerialize := map[string]interface{}{}
  36. if o.Account == nil {
  37. return nil, fmt.Errorf("field `Account` is required and must be specified in AddReceiverRequest")
  38. }
  39. toSerialize["account"] = o.Account
  40. if o.Appid == nil {
  41. return nil, fmt.Errorf("field `Appid` is required and must be specified in AddReceiverRequest")
  42. }
  43. toSerialize["appid"] = o.Appid
  44. if o.CustomRelation != nil {
  45. toSerialize["custom_relation"] = o.CustomRelation
  46. }
  47. if o.Name != nil {
  48. toSerialize["name"] = o.Name
  49. }
  50. if o.RelationType == nil {
  51. return nil, fmt.Errorf("field `RelationType` is required and must be specified in AddReceiverRequest")
  52. }
  53. toSerialize["relation_type"] = o.RelationType
  54. if o.SubAppid != nil {
  55. toSerialize["sub_appid"] = o.SubAppid
  56. }
  57. if o.SubMchid != nil {
  58. toSerialize["sub_mchid"] = o.SubMchid
  59. }
  60. if o.Type == nil {
  61. return nil, fmt.Errorf("field `Type` is required and must be specified in AddReceiverRequest")
  62. }
  63. toSerialize["type"] = o.Type
  64. return json.Marshal(toSerialize)
  65. }
  66. func (o AddReceiverRequest) String() string {
  67. var ret string
  68. if o.Account == nil {
  69. ret += "Account:<nil>, "
  70. } else {
  71. ret += fmt.Sprintf("Account:%v, ", *o.Account)
  72. }
  73. if o.Appid == nil {
  74. ret += "Appid:<nil>, "
  75. } else {
  76. ret += fmt.Sprintf("Appid:%v, ", *o.Appid)
  77. }
  78. if o.CustomRelation == nil {
  79. ret += "CustomRelation:<nil>, "
  80. } else {
  81. ret += fmt.Sprintf("CustomRelation:%v, ", *o.CustomRelation)
  82. }
  83. if o.Name == nil {
  84. ret += "Name:<nil>, "
  85. } else {
  86. ret += fmt.Sprintf("Name:%v, ", *o.Name)
  87. }
  88. if o.RelationType == nil {
  89. ret += "RelationType:<nil>, "
  90. } else {
  91. ret += fmt.Sprintf("RelationType:%v, ", *o.RelationType)
  92. }
  93. if o.SubAppid == nil {
  94. ret += "SubAppid:<nil>, "
  95. } else {
  96. ret += fmt.Sprintf("SubAppid:%v, ", *o.SubAppid)
  97. }
  98. if o.SubMchid == nil {
  99. ret += "SubMchid:<nil>, "
  100. } else {
  101. ret += fmt.Sprintf("SubMchid:%v, ", *o.SubMchid)
  102. }
  103. if o.Type == nil {
  104. ret += "Type:<nil>"
  105. } else {
  106. ret += fmt.Sprintf("Type:%v", *o.Type)
  107. }
  108. return fmt.Sprintf("AddReceiverRequest{%s}", ret)
  109. }
  110. func (o AddReceiverRequest) Clone() *AddReceiverRequest {
  111. ret := AddReceiverRequest{}
  112. if o.Account != nil {
  113. ret.Account = new(string)
  114. *ret.Account = *o.Account
  115. }
  116. if o.Appid != nil {
  117. ret.Appid = new(string)
  118. *ret.Appid = *o.Appid
  119. }
  120. if o.CustomRelation != nil {
  121. ret.CustomRelation = new(string)
  122. *ret.CustomRelation = *o.CustomRelation
  123. }
  124. if o.Name != nil {
  125. ret.Name = new(string)
  126. *ret.Name = *o.Name
  127. }
  128. if o.RelationType != nil {
  129. ret.RelationType = new(ReceiverRelationType)
  130. *ret.RelationType = *o.RelationType
  131. }
  132. if o.SubAppid != nil {
  133. ret.SubAppid = new(string)
  134. *ret.SubAppid = *o.SubAppid
  135. }
  136. if o.SubMchid != nil {
  137. ret.SubMchid = new(string)
  138. *ret.SubMchid = *o.SubMchid
  139. }
  140. if o.Type != nil {
  141. ret.Type = new(ReceiverType)
  142. *ret.Type = *o.Type
  143. }
  144. return &ret
  145. }
  146. // AddReceiverResponse
  147. type AddReceiverResponse struct {
  148. // 参考请求参数
  149. Account *string `json:"account"`
  150. // 参考请求参数
  151. CustomRelation *string `json:"custom_relation,omitempty"`
  152. // 参考请求参数。使用APIv3敏感信息加密方式
  153. Name *string `json:"name,omitempty" encryption:"EM_APIV3"`
  154. // 参考请求参数 * `SERVICE_PROVIDER` - 服务商, * `STORE` - 门店, * `STAFF` - 员工, * `STORE_OWNER` - 店主, * `PARTNER` - 合作伙伴, * `HEADQUARTER` - 总部, * `BRAND` - 品牌方, * `DISTRIBUTOR` - 分销商, * `USER` - 用户, * `SUPPLIER` - 供应商, * `CUSTOM` - 自定义,
  155. RelationType *ReceiverRelationType `json:"relation_type"`
  156. // 参考请求参数
  157. SubMchid *string `json:"sub_mchid,omitempty"`
  158. // 参考请求参数 * `MERCHANT_ID` - 商户号, * `PERSONAL_OPENID` - 个人openid(由父商户APPID转换得到), * `PERSONAL_SUB_OPENID` - 个人sub_openid(由子商户APPID转换得到)(直连商户不需要,服务商需要),
  159. Type *ReceiverType `json:"type"`
  160. }
  161. func (o AddReceiverResponse) MarshalJSON() ([]byte, error) {
  162. toSerialize := map[string]interface{}{}
  163. if o.Account == nil {
  164. return nil, fmt.Errorf("field `Account` is required and must be specified in AddReceiverResponse")
  165. }
  166. toSerialize["account"] = o.Account
  167. if o.CustomRelation != nil {
  168. toSerialize["custom_relation"] = o.CustomRelation
  169. }
  170. if o.Name != nil {
  171. toSerialize["name"] = o.Name
  172. }
  173. if o.RelationType == nil {
  174. return nil, fmt.Errorf("field `RelationType` is required and must be specified in AddReceiverResponse")
  175. }
  176. toSerialize["relation_type"] = o.RelationType
  177. if o.SubMchid != nil {
  178. toSerialize["sub_mchid"] = o.SubMchid
  179. }
  180. if o.Type == nil {
  181. return nil, fmt.Errorf("field `Type` is required and must be specified in AddReceiverResponse")
  182. }
  183. toSerialize["type"] = o.Type
  184. return json.Marshal(toSerialize)
  185. }
  186. func (o AddReceiverResponse) String() string {
  187. var ret string
  188. if o.Account == nil {
  189. ret += "Account:<nil>, "
  190. } else {
  191. ret += fmt.Sprintf("Account:%v, ", *o.Account)
  192. }
  193. if o.CustomRelation == nil {
  194. ret += "CustomRelation:<nil>, "
  195. } else {
  196. ret += fmt.Sprintf("CustomRelation:%v, ", *o.CustomRelation)
  197. }
  198. if o.Name == nil {
  199. ret += "Name:<nil>, "
  200. } else {
  201. ret += fmt.Sprintf("Name:%v, ", *o.Name)
  202. }
  203. if o.RelationType == nil {
  204. ret += "RelationType:<nil>, "
  205. } else {
  206. ret += fmt.Sprintf("RelationType:%v, ", *o.RelationType)
  207. }
  208. if o.SubMchid == nil {
  209. ret += "SubMchid:<nil>, "
  210. } else {
  211. ret += fmt.Sprintf("SubMchid:%v, ", *o.SubMchid)
  212. }
  213. if o.Type == nil {
  214. ret += "Type:<nil>"
  215. } else {
  216. ret += fmt.Sprintf("Type:%v", *o.Type)
  217. }
  218. return fmt.Sprintf("AddReceiverResponse{%s}", ret)
  219. }
  220. func (o AddReceiverResponse) Clone() *AddReceiverResponse {
  221. ret := AddReceiverResponse{}
  222. if o.Account != nil {
  223. ret.Account = new(string)
  224. *ret.Account = *o.Account
  225. }
  226. if o.CustomRelation != nil {
  227. ret.CustomRelation = new(string)
  228. *ret.CustomRelation = *o.CustomRelation
  229. }
  230. if o.Name != nil {
  231. ret.Name = new(string)
  232. *ret.Name = *o.Name
  233. }
  234. if o.RelationType != nil {
  235. ret.RelationType = new(ReceiverRelationType)
  236. *ret.RelationType = *o.RelationType
  237. }
  238. if o.SubMchid != nil {
  239. ret.SubMchid = new(string)
  240. *ret.SubMchid = *o.SubMchid
  241. }
  242. if o.Type != nil {
  243. ret.Type = new(ReceiverType)
  244. *ret.Type = *o.Type
  245. }
  246. return &ret
  247. }
  248. // CreateOrderReceiver
  249. type CreateOrderReceiver struct {
  250. // 1、类型是MERCHANT_ID时,是商户号 2、类型是PERSONAL_OPENID时,是个人openid 3、类型是PERSONAL_SUB_OPENID时,是个人sub_openid
  251. Account *string `json:"account"`
  252. // 分账金额,单位为分,只能为整数,不能超过原订单支付金额及最大分账比例金额
  253. Amount *int64 `json:"amount"`
  254. // 分账的原因描述,分账账单中需要体现
  255. Description *string `json:"description"`
  256. // 可选项,在接收方类型为个人的时可选填,若有值,会检查与 name 是否实名匹配,不匹配会拒绝分账请求 1、分账接收方类型是PERSONAL_OPENID或PERSONAL_SUB_OPENID时,是个人姓名的密文(选传,传则校验) 此字段的加密的方式为:敏感信息加密说明 2、使用微信支付平台证书中的公钥 3、使用RSAES-OAEP算法进行加密 4、将请求中HTTP头部的Wechatpay-Serial设置为证书序列号
  257. Name *string `json:"name,omitempty" encryption:"EM_APIV3"`
  258. // 1、MERCHANT_ID:商户号 2、PERSONAL_OPENID:个人openid(由父商户APPID转换得到) 3、PERSONAL_SUB_OPENID: 个人sub_openid(由子商户APPID转换得到)
  259. Type *string `json:"type"`
  260. }
  261. func (o CreateOrderReceiver) MarshalJSON() ([]byte, error) {
  262. toSerialize := map[string]interface{}{}
  263. if o.Account == nil {
  264. return nil, fmt.Errorf("field `Account` is required and must be specified in CreateOrderReceiver")
  265. }
  266. toSerialize["account"] = o.Account
  267. if o.Amount == nil {
  268. return nil, fmt.Errorf("field `Amount` is required and must be specified in CreateOrderReceiver")
  269. }
  270. toSerialize["amount"] = o.Amount
  271. if o.Description == nil {
  272. return nil, fmt.Errorf("field `Description` is required and must be specified in CreateOrderReceiver")
  273. }
  274. toSerialize["description"] = o.Description
  275. if o.Name != nil {
  276. toSerialize["name"] = o.Name
  277. }
  278. if o.Type == nil {
  279. return nil, fmt.Errorf("field `Type` is required and must be specified in CreateOrderReceiver")
  280. }
  281. toSerialize["type"] = o.Type
  282. return json.Marshal(toSerialize)
  283. }
  284. func (o CreateOrderReceiver) String() string {
  285. var ret string
  286. if o.Account == nil {
  287. ret += "Account:<nil>, "
  288. } else {
  289. ret += fmt.Sprintf("Account:%v, ", *o.Account)
  290. }
  291. if o.Amount == nil {
  292. ret += "Amount:<nil>, "
  293. } else {
  294. ret += fmt.Sprintf("Amount:%v, ", *o.Amount)
  295. }
  296. if o.Description == nil {
  297. ret += "Description:<nil>, "
  298. } else {
  299. ret += fmt.Sprintf("Description:%v, ", *o.Description)
  300. }
  301. if o.Name == nil {
  302. ret += "Name:<nil>, "
  303. } else {
  304. ret += fmt.Sprintf("Name:%v, ", *o.Name)
  305. }
  306. if o.Type == nil {
  307. ret += "Type:<nil>"
  308. } else {
  309. ret += fmt.Sprintf("Type:%v", *o.Type)
  310. }
  311. return fmt.Sprintf("CreateOrderReceiver{%s}", ret)
  312. }
  313. func (o CreateOrderReceiver) Clone() *CreateOrderReceiver {
  314. ret := CreateOrderReceiver{}
  315. if o.Account != nil {
  316. ret.Account = new(string)
  317. *ret.Account = *o.Account
  318. }
  319. if o.Amount != nil {
  320. ret.Amount = new(int64)
  321. *ret.Amount = *o.Amount
  322. }
  323. if o.Description != nil {
  324. ret.Description = new(string)
  325. *ret.Description = *o.Description
  326. }
  327. if o.Name != nil {
  328. ret.Name = new(string)
  329. *ret.Name = *o.Name
  330. }
  331. if o.Type != nil {
  332. ret.Type = new(string)
  333. *ret.Type = *o.Type
  334. }
  335. return &ret
  336. }
  337. // CreateOrderRequest
  338. type CreateOrderRequest struct {
  339. // 微信分配的服务商appid
  340. Appid *string `json:"appid"`
  341. // 服务商系统内部的分账单号,在服务商系统内部唯一,同一分账单号多次请求等同一次。只能是数字、大小写字母_-|*@
  342. OutOrderNo *string `json:"out_order_no"`
  343. // 分账接收方列表,可以设置出资商户作为分账接受方,最多可有50个分账接收方
  344. Receivers []CreateOrderReceiver `json:"receivers,omitempty"`
  345. // 微信分配的子商户公众账号ID,分账接收方类型包含PERSONAL_SUB_OPENID时必填。(直连商户不需要,服务商需要)
  346. SubAppid *string `json:"sub_appid,omitempty"`
  347. // 微信支付分配的子商户号,即分账的出资商户号。(直连商户不需要,服务商需要)
  348. SubMchid *string `json:"sub_mchid,omitempty"`
  349. // 微信支付订单号
  350. TransactionId *string `json:"transaction_id"`
  351. // 1、如果为true,该笔订单剩余未分账的金额会解冻回分账方商户; 2、如果为false,该笔订单剩余未分账的金额不会解冻回分账方商户,可以对该笔订单再次进行分账。
  352. UnfreezeUnsplit *bool `json:"unfreeze_unsplit"`
  353. }
  354. func (o CreateOrderRequest) MarshalJSON() ([]byte, error) {
  355. toSerialize := map[string]interface{}{}
  356. if o.Appid == nil {
  357. return nil, fmt.Errorf("field `Appid` is required and must be specified in CreateOrderRequest")
  358. }
  359. toSerialize["appid"] = o.Appid
  360. if o.OutOrderNo == nil {
  361. return nil, fmt.Errorf("field `OutOrderNo` is required and must be specified in CreateOrderRequest")
  362. }
  363. toSerialize["out_order_no"] = o.OutOrderNo
  364. if o.Receivers != nil {
  365. toSerialize["receivers"] = o.Receivers
  366. }
  367. if o.SubAppid != nil {
  368. toSerialize["sub_appid"] = o.SubAppid
  369. }
  370. if o.SubMchid != nil {
  371. toSerialize["sub_mchid"] = o.SubMchid
  372. }
  373. if o.TransactionId == nil {
  374. return nil, fmt.Errorf("field `TransactionId` is required and must be specified in CreateOrderRequest")
  375. }
  376. toSerialize["transaction_id"] = o.TransactionId
  377. if o.UnfreezeUnsplit == nil {
  378. return nil, fmt.Errorf("field `UnfreezeUnsplit` is required and must be specified in CreateOrderRequest")
  379. }
  380. toSerialize["unfreeze_unsplit"] = o.UnfreezeUnsplit
  381. return json.Marshal(toSerialize)
  382. }
  383. func (o CreateOrderRequest) String() string {
  384. var ret string
  385. if o.Appid == nil {
  386. ret += "Appid:<nil>, "
  387. } else {
  388. ret += fmt.Sprintf("Appid:%v, ", *o.Appid)
  389. }
  390. if o.OutOrderNo == nil {
  391. ret += "OutOrderNo:<nil>, "
  392. } else {
  393. ret += fmt.Sprintf("OutOrderNo:%v, ", *o.OutOrderNo)
  394. }
  395. ret += fmt.Sprintf("Receivers:%v, ", o.Receivers)
  396. if o.SubAppid == nil {
  397. ret += "SubAppid:<nil>, "
  398. } else {
  399. ret += fmt.Sprintf("SubAppid:%v, ", *o.SubAppid)
  400. }
  401. if o.SubMchid == nil {
  402. ret += "SubMchid:<nil>, "
  403. } else {
  404. ret += fmt.Sprintf("SubMchid:%v, ", *o.SubMchid)
  405. }
  406. if o.TransactionId == nil {
  407. ret += "TransactionId:<nil>, "
  408. } else {
  409. ret += fmt.Sprintf("TransactionId:%v, ", *o.TransactionId)
  410. }
  411. if o.UnfreezeUnsplit == nil {
  412. ret += "UnfreezeUnsplit:<nil>"
  413. } else {
  414. ret += fmt.Sprintf("UnfreezeUnsplit:%v", *o.UnfreezeUnsplit)
  415. }
  416. return fmt.Sprintf("CreateOrderRequest{%s}", ret)
  417. }
  418. func (o CreateOrderRequest) Clone() *CreateOrderRequest {
  419. ret := CreateOrderRequest{}
  420. if o.Appid != nil {
  421. ret.Appid = new(string)
  422. *ret.Appid = *o.Appid
  423. }
  424. if o.OutOrderNo != nil {
  425. ret.OutOrderNo = new(string)
  426. *ret.OutOrderNo = *o.OutOrderNo
  427. }
  428. if o.Receivers != nil {
  429. ret.Receivers = make([]CreateOrderReceiver, len(o.Receivers))
  430. for i, item := range o.Receivers {
  431. ret.Receivers[i] = *item.Clone()
  432. }
  433. }
  434. if o.SubAppid != nil {
  435. ret.SubAppid = new(string)
  436. *ret.SubAppid = *o.SubAppid
  437. }
  438. if o.SubMchid != nil {
  439. ret.SubMchid = new(string)
  440. *ret.SubMchid = *o.SubMchid
  441. }
  442. if o.TransactionId != nil {
  443. ret.TransactionId = new(string)
  444. *ret.TransactionId = *o.TransactionId
  445. }
  446. if o.UnfreezeUnsplit != nil {
  447. ret.UnfreezeUnsplit = new(bool)
  448. *ret.UnfreezeUnsplit = *o.UnfreezeUnsplit
  449. }
  450. return &ret
  451. }
  452. // CreateReturnOrderRequest
  453. type CreateReturnOrderRequest struct {
  454. // 需要从分账接收方回退的金额,单位为分,只能为整数,不能超过原始分账单分出给该接收方的金额
  455. Amount *int64 `json:"amount"`
  456. // 分账回退的原因描述
  457. Description *string `json:"description"`
  458. // 微信分账单号,微信系统返回的唯一标识。微信分账单号和商户分账单号二选一填写
  459. OrderId *string `json:"order_id,omitempty"`
  460. // 商户系统内部的分账单号,在商户系统内部唯一,同一分账单号多次请求等同一次。微信分账单号和商户分账单号二选一填写 取值范围:[0-9a-zA-Z_*@-]
  461. OutOrderNo *string `json:"out_order_no,omitempty"`
  462. // 此回退单号是商户在自己后台生成的一个新的回退单号,在商户后台唯一
  463. OutReturnNo *string `json:"out_return_no"`
  464. // 分账回退的出资商户,只能对原分账请求中成功分给商户接收方进行回退
  465. ReturnMchid *string `json:"return_mchid"`
  466. // 分账回退的接收商户,对应原分账出资的分账方商户,填写微信支付分配的商户号。(直连商户不需要,服务商需要)
  467. SubMchid *string `json:"sub_mchid,omitempty"`
  468. }
  469. func (o CreateReturnOrderRequest) MarshalJSON() ([]byte, error) {
  470. toSerialize := map[string]interface{}{}
  471. if o.Amount == nil {
  472. return nil, fmt.Errorf("field `Amount` is required and must be specified in CreateReturnOrderRequest")
  473. }
  474. toSerialize["amount"] = o.Amount
  475. if o.Description == nil {
  476. return nil, fmt.Errorf("field `Description` is required and must be specified in CreateReturnOrderRequest")
  477. }
  478. toSerialize["description"] = o.Description
  479. if o.OrderId != nil {
  480. toSerialize["order_id"] = o.OrderId
  481. }
  482. if o.OutOrderNo != nil {
  483. toSerialize["out_order_no"] = o.OutOrderNo
  484. }
  485. if o.OutReturnNo == nil {
  486. return nil, fmt.Errorf("field `OutReturnNo` is required and must be specified in CreateReturnOrderRequest")
  487. }
  488. toSerialize["out_return_no"] = o.OutReturnNo
  489. if o.ReturnMchid == nil {
  490. return nil, fmt.Errorf("field `ReturnMchid` is required and must be specified in CreateReturnOrderRequest")
  491. }
  492. toSerialize["return_mchid"] = o.ReturnMchid
  493. if o.SubMchid != nil {
  494. toSerialize["sub_mchid"] = o.SubMchid
  495. }
  496. return json.Marshal(toSerialize)
  497. }
  498. func (o CreateReturnOrderRequest) String() string {
  499. var ret string
  500. if o.Amount == nil {
  501. ret += "Amount:<nil>, "
  502. } else {
  503. ret += fmt.Sprintf("Amount:%v, ", *o.Amount)
  504. }
  505. if o.Description == nil {
  506. ret += "Description:<nil>, "
  507. } else {
  508. ret += fmt.Sprintf("Description:%v, ", *o.Description)
  509. }
  510. if o.OrderId == nil {
  511. ret += "OrderId:<nil>, "
  512. } else {
  513. ret += fmt.Sprintf("OrderId:%v, ", *o.OrderId)
  514. }
  515. if o.OutOrderNo == nil {
  516. ret += "OutOrderNo:<nil>, "
  517. } else {
  518. ret += fmt.Sprintf("OutOrderNo:%v, ", *o.OutOrderNo)
  519. }
  520. if o.OutReturnNo == nil {
  521. ret += "OutReturnNo:<nil>, "
  522. } else {
  523. ret += fmt.Sprintf("OutReturnNo:%v, ", *o.OutReturnNo)
  524. }
  525. if o.ReturnMchid == nil {
  526. ret += "ReturnMchid:<nil>, "
  527. } else {
  528. ret += fmt.Sprintf("ReturnMchid:%v, ", *o.ReturnMchid)
  529. }
  530. if o.SubMchid == nil {
  531. ret += "SubMchid:<nil>"
  532. } else {
  533. ret += fmt.Sprintf("SubMchid:%v", *o.SubMchid)
  534. }
  535. return fmt.Sprintf("CreateReturnOrderRequest{%s}", ret)
  536. }
  537. func (o CreateReturnOrderRequest) Clone() *CreateReturnOrderRequest {
  538. ret := CreateReturnOrderRequest{}
  539. if o.Amount != nil {
  540. ret.Amount = new(int64)
  541. *ret.Amount = *o.Amount
  542. }
  543. if o.Description != nil {
  544. ret.Description = new(string)
  545. *ret.Description = *o.Description
  546. }
  547. if o.OrderId != nil {
  548. ret.OrderId = new(string)
  549. *ret.OrderId = *o.OrderId
  550. }
  551. if o.OutOrderNo != nil {
  552. ret.OutOrderNo = new(string)
  553. *ret.OutOrderNo = *o.OutOrderNo
  554. }
  555. if o.OutReturnNo != nil {
  556. ret.OutReturnNo = new(string)
  557. *ret.OutReturnNo = *o.OutReturnNo
  558. }
  559. if o.ReturnMchid != nil {
  560. ret.ReturnMchid = new(string)
  561. *ret.ReturnMchid = *o.ReturnMchid
  562. }
  563. if o.SubMchid != nil {
  564. ret.SubMchid = new(string)
  565. *ret.SubMchid = *o.SubMchid
  566. }
  567. return &ret
  568. }
  569. // DeleteReceiverRequest
  570. type DeleteReceiverRequest struct {
  571. // 类型是MERCHANT_ID时,是商户号 类型是PERSONAL_OPENID时,是个人openid 类型是PERSONAL_SUB_OPENID时,是个人sub_openid
  572. Account *string `json:"account"`
  573. // 微信分配的公众账号ID
  574. Appid *string `json:"appid"`
  575. // 微信分配的子商户公众账号ID,分账接收方类型包含PERSONAL_SUB_OPENID时必填。(直连商户不需要,服务商需要)
  576. SubAppid *string `json:"sub_appid,omitempty"`
  577. // 微信支付分配的子商户号,即分账的出资商户号。(直连商户不需要,服务商需要)
  578. SubMchid *string `json:"sub_mchid,omitempty"`
  579. // 枚举值: 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转换得到)(直连商户不需要,服务商需要),
  580. Type *ReceiverType `json:"type"`
  581. }
  582. func (o DeleteReceiverRequest) MarshalJSON() ([]byte, error) {
  583. toSerialize := map[string]interface{}{}
  584. if o.Account == nil {
  585. return nil, fmt.Errorf("field `Account` is required and must be specified in DeleteReceiverRequest")
  586. }
  587. toSerialize["account"] = o.Account
  588. if o.Appid == nil {
  589. return nil, fmt.Errorf("field `Appid` is required and must be specified in DeleteReceiverRequest")
  590. }
  591. toSerialize["appid"] = o.Appid
  592. if o.SubAppid != nil {
  593. toSerialize["sub_appid"] = o.SubAppid
  594. }
  595. if o.SubMchid != nil {
  596. toSerialize["sub_mchid"] = o.SubMchid
  597. }
  598. if o.Type == nil {
  599. return nil, fmt.Errorf("field `Type` is required and must be specified in DeleteReceiverRequest")
  600. }
  601. toSerialize["type"] = o.Type
  602. return json.Marshal(toSerialize)
  603. }
  604. func (o DeleteReceiverRequest) String() string {
  605. var ret string
  606. if o.Account == nil {
  607. ret += "Account:<nil>, "
  608. } else {
  609. ret += fmt.Sprintf("Account:%v, ", *o.Account)
  610. }
  611. if o.Appid == nil {
  612. ret += "Appid:<nil>, "
  613. } else {
  614. ret += fmt.Sprintf("Appid:%v, ", *o.Appid)
  615. }
  616. if o.SubAppid == nil {
  617. ret += "SubAppid:<nil>, "
  618. } else {
  619. ret += fmt.Sprintf("SubAppid:%v, ", *o.SubAppid)
  620. }
  621. if o.SubMchid == nil {
  622. ret += "SubMchid:<nil>, "
  623. } else {
  624. ret += fmt.Sprintf("SubMchid:%v, ", *o.SubMchid)
  625. }
  626. if o.Type == nil {
  627. ret += "Type:<nil>"
  628. } else {
  629. ret += fmt.Sprintf("Type:%v", *o.Type)
  630. }
  631. return fmt.Sprintf("DeleteReceiverRequest{%s}", ret)
  632. }
  633. func (o DeleteReceiverRequest) Clone() *DeleteReceiverRequest {
  634. ret := DeleteReceiverRequest{}
  635. if o.Account != nil {
  636. ret.Account = new(string)
  637. *ret.Account = *o.Account
  638. }
  639. if o.Appid != nil {
  640. ret.Appid = new(string)
  641. *ret.Appid = *o.Appid
  642. }
  643. if o.SubAppid != nil {
  644. ret.SubAppid = new(string)
  645. *ret.SubAppid = *o.SubAppid
  646. }
  647. if o.SubMchid != nil {
  648. ret.SubMchid = new(string)
  649. *ret.SubMchid = *o.SubMchid
  650. }
  651. if o.Type != nil {
  652. ret.Type = new(ReceiverType)
  653. *ret.Type = *o.Type
  654. }
  655. return &ret
  656. }
  657. // DeleteReceiverResponse
  658. type DeleteReceiverResponse struct {
  659. // 参考请求参数
  660. Account *string `json:"account"`
  661. // 参考请求参数
  662. SubMchid *string `json:"sub_mchid,omitempty"`
  663. // 参考请求参数 * `MERCHANT_ID` - 商户号, * `PERSONAL_OPENID` - 个人openid(由父商户APPID转换得到), * `PERSONAL_SUB_OPENID` - 个人sub_openid(由子商户APPID转换得到)(直连商户不需要,服务商需要),
  664. Type *ReceiverType `json:"type"`
  665. }
  666. func (o DeleteReceiverResponse) MarshalJSON() ([]byte, error) {
  667. toSerialize := map[string]interface{}{}
  668. if o.Account == nil {
  669. return nil, fmt.Errorf("field `Account` is required and must be specified in DeleteReceiverResponse")
  670. }
  671. toSerialize["account"] = o.Account
  672. if o.SubMchid != nil {
  673. toSerialize["sub_mchid"] = o.SubMchid
  674. }
  675. if o.Type == nil {
  676. return nil, fmt.Errorf("field `Type` is required and must be specified in DeleteReceiverResponse")
  677. }
  678. toSerialize["type"] = o.Type
  679. return json.Marshal(toSerialize)
  680. }
  681. func (o DeleteReceiverResponse) String() string {
  682. var ret string
  683. if o.Account == nil {
  684. ret += "Account:<nil>, "
  685. } else {
  686. ret += fmt.Sprintf("Account:%v, ", *o.Account)
  687. }
  688. if o.SubMchid == nil {
  689. ret += "SubMchid:<nil>, "
  690. } else {
  691. ret += fmt.Sprintf("SubMchid:%v, ", *o.SubMchid)
  692. }
  693. if o.Type == nil {
  694. ret += "Type:<nil>"
  695. } else {
  696. ret += fmt.Sprintf("Type:%v", *o.Type)
  697. }
  698. return fmt.Sprintf("DeleteReceiverResponse{%s}", ret)
  699. }
  700. func (o DeleteReceiverResponse) Clone() *DeleteReceiverResponse {
  701. ret := DeleteReceiverResponse{}
  702. if o.Account != nil {
  703. ret.Account = new(string)
  704. *ret.Account = *o.Account
  705. }
  706. if o.SubMchid != nil {
  707. ret.SubMchid = new(string)
  708. *ret.SubMchid = *o.SubMchid
  709. }
  710. if o.Type != nil {
  711. ret.Type = new(ReceiverType)
  712. *ret.Type = *o.Type
  713. }
  714. return &ret
  715. }
  716. // DetailFailReason * `ACCOUNT_ABNORMAL` - 分账接收账户异常, * `NO_RELATION` - 分账关系已解除, * `RECEIVER_HIGH_RISK` - 高风险接收方, * `RECEIVER_REAL_NAME_NOT_VERIFIED` - 接收方未实名, * `NO_AUTH` - 分账权限已解除,
  717. type DetailFailReason string
  718. func (e DetailFailReason) Ptr() *DetailFailReason {
  719. return &e
  720. }
  721. // Enums of DetailFailReason
  722. const (
  723. DETAILFAILREASON_ACCOUNT_ABNORMAL DetailFailReason = "ACCOUNT_ABNORMAL"
  724. DETAILFAILREASON_NO_RELATION DetailFailReason = "NO_RELATION"
  725. DETAILFAILREASON_RECEIVER_HIGH_RISK DetailFailReason = "RECEIVER_HIGH_RISK"
  726. DETAILFAILREASON_RECEIVER_REAL_NAME_NOT_VERIFIED DetailFailReason = "RECEIVER_REAL_NAME_NOT_VERIFIED"
  727. DETAILFAILREASON_NO_AUTH DetailFailReason = "NO_AUTH"
  728. )
  729. // DetailStatus * `PENDING` - 待分账, * `SUCCESS` - 分账成功, * `CLOSED` - 已关闭,
  730. type DetailStatus string
  731. func (e DetailStatus) Ptr() *DetailStatus {
  732. return &e
  733. }
  734. // Enums of DetailStatus
  735. const (
  736. DETAILSTATUS_PENDING DetailStatus = "PENDING"
  737. DETAILSTATUS_SUCCESS DetailStatus = "SUCCESS"
  738. DETAILSTATUS_CLOSED DetailStatus = "CLOSED"
  739. )
  740. // OrderReceiverDetail
  741. type OrderReceiverDetail struct {
  742. // 1、类型是MERCHANT_ID时,是商户号 2、类型是PERSONAL_OPENID时,是个人openid 3、类型是PERSONAL_SUB_OPENID时,是个人sub_openid
  743. Account *string `json:"account"`
  744. // 分账金额,单位为分,只能为整数,不能超过原订单支付金额及最大分账比例金额
  745. Amount *int64 `json:"amount"`
  746. // 分账创建时间,遵循RFC3339标准格式
  747. CreateTime *time.Time `json:"create_time"`
  748. // 分账的原因描述,分账账单中需要体现
  749. Description *string `json:"description"`
  750. // 微信分账明细单号,每笔分账业务执行的明细单号,可与资金账单对账使用
  751. DetailId *string `json:"detail_id"`
  752. // 分账失败原因。包含以下枚举值: 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` - 分账权限已解除,
  753. FailReason *DetailFailReason `json:"fail_reason,omitempty"`
  754. // 分账完成时间,遵循RFC3339标准格式
  755. FinishTime *time.Time `json:"finish_time"`
  756. // 枚举值: 1、PENDING:待分账 2、SUCCESS:分账成功 3、CLOSED:已关闭 * `PENDING` - 待分账, * `SUCCESS` - 分账成功, * `CLOSED` - 已关闭,
  757. Result *DetailStatus `json:"result"`
  758. // 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转换得到)(直连商户不需要,服务商需要),
  759. Type *ReceiverType `json:"type"`
  760. }
  761. func (o OrderReceiverDetail) MarshalJSON() ([]byte, error) {
  762. toSerialize := map[string]interface{}{}
  763. if o.Account == nil {
  764. return nil, fmt.Errorf("field `Account` is required and must be specified in OrderReceiverDetail")
  765. }
  766. toSerialize["account"] = o.Account
  767. if o.Amount == nil {
  768. return nil, fmt.Errorf("field `Amount` is required and must be specified in OrderReceiverDetail")
  769. }
  770. toSerialize["amount"] = o.Amount
  771. if o.CreateTime == nil {
  772. return nil, fmt.Errorf("field `CreateTime` is required and must be specified in OrderReceiverDetail")
  773. }
  774. toSerialize["create_time"] = o.CreateTime.Format(time.RFC3339)
  775. if o.Description == nil {
  776. return nil, fmt.Errorf("field `Description` is required and must be specified in OrderReceiverDetail")
  777. }
  778. toSerialize["description"] = o.Description
  779. if o.DetailId == nil {
  780. return nil, fmt.Errorf("field `DetailId` is required and must be specified in OrderReceiverDetail")
  781. }
  782. toSerialize["detail_id"] = o.DetailId
  783. if o.FailReason != nil {
  784. toSerialize["fail_reason"] = o.FailReason
  785. }
  786. if o.FinishTime == nil {
  787. return nil, fmt.Errorf("field `FinishTime` is required and must be specified in OrderReceiverDetail")
  788. }
  789. toSerialize["finish_time"] = o.FinishTime.Format(time.RFC3339)
  790. if o.Result == nil {
  791. return nil, fmt.Errorf("field `Result` is required and must be specified in OrderReceiverDetail")
  792. }
  793. toSerialize["result"] = o.Result
  794. if o.Type == nil {
  795. return nil, fmt.Errorf("field `Type` is required and must be specified in OrderReceiverDetail")
  796. }
  797. toSerialize["type"] = o.Type
  798. return json.Marshal(toSerialize)
  799. }
  800. func (o OrderReceiverDetail) String() string {
  801. var ret string
  802. if o.Account == nil {
  803. ret += "Account:<nil>, "
  804. } else {
  805. ret += fmt.Sprintf("Account:%v, ", *o.Account)
  806. }
  807. if o.Amount == nil {
  808. ret += "Amount:<nil>, "
  809. } else {
  810. ret += fmt.Sprintf("Amount:%v, ", *o.Amount)
  811. }
  812. if o.CreateTime == nil {
  813. ret += "CreateTime:<nil>, "
  814. } else {
  815. ret += fmt.Sprintf("CreateTime:%v, ", *o.CreateTime)
  816. }
  817. if o.Description == nil {
  818. ret += "Description:<nil>, "
  819. } else {
  820. ret += fmt.Sprintf("Description:%v, ", *o.Description)
  821. }
  822. if o.DetailId == nil {
  823. ret += "DetailId:<nil>, "
  824. } else {
  825. ret += fmt.Sprintf("DetailId:%v, ", *o.DetailId)
  826. }
  827. if o.FailReason == nil {
  828. ret += "FailReason:<nil>, "
  829. } else {
  830. ret += fmt.Sprintf("FailReason:%v, ", *o.FailReason)
  831. }
  832. if o.FinishTime == nil {
  833. ret += "FinishTime:<nil>, "
  834. } else {
  835. ret += fmt.Sprintf("FinishTime:%v, ", *o.FinishTime)
  836. }
  837. if o.Result == nil {
  838. ret += "Result:<nil>, "
  839. } else {
  840. ret += fmt.Sprintf("Result:%v, ", *o.Result)
  841. }
  842. if o.Type == nil {
  843. ret += "Type:<nil>"
  844. } else {
  845. ret += fmt.Sprintf("Type:%v", *o.Type)
  846. }
  847. return fmt.Sprintf("OrderReceiverDetail{%s}", ret)
  848. }
  849. func (o OrderReceiverDetail) Clone() *OrderReceiverDetail {
  850. ret := OrderReceiverDetail{}
  851. if o.Account != nil {
  852. ret.Account = new(string)
  853. *ret.Account = *o.Account
  854. }
  855. if o.Amount != nil {
  856. ret.Amount = new(int64)
  857. *ret.Amount = *o.Amount
  858. }
  859. if o.CreateTime != nil {
  860. ret.CreateTime = new(time.Time)
  861. *ret.CreateTime = *o.CreateTime
  862. }
  863. if o.Description != nil {
  864. ret.Description = new(string)
  865. *ret.Description = *o.Description
  866. }
  867. if o.DetailId != nil {
  868. ret.DetailId = new(string)
  869. *ret.DetailId = *o.DetailId
  870. }
  871. if o.FailReason != nil {
  872. ret.FailReason = new(DetailFailReason)
  873. *ret.FailReason = *o.FailReason
  874. }
  875. if o.FinishTime != nil {
  876. ret.FinishTime = new(time.Time)
  877. *ret.FinishTime = *o.FinishTime
  878. }
  879. if o.Result != nil {
  880. ret.Result = new(DetailStatus)
  881. *ret.Result = *o.Result
  882. }
  883. if o.Type != nil {
  884. ret.Type = new(ReceiverType)
  885. *ret.Type = *o.Type
  886. }
  887. return &ret
  888. }
  889. // OrderStatus * `PROCESSING` - 处理中, * `FINISHED` - 分账完成,
  890. type OrderStatus string
  891. func (e OrderStatus) Ptr() *OrderStatus {
  892. return &e
  893. }
  894. // Enums of OrderStatus
  895. const (
  896. ORDERSTATUS_PROCESSING OrderStatus = "PROCESSING"
  897. ORDERSTATUS_FINISHED OrderStatus = "FINISHED"
  898. )
  899. // OrdersEntity
  900. type OrdersEntity struct {
  901. // 微信分账单号,微信系统返回的唯一标识
  902. OrderId *string `json:"order_id"`
  903. // 商户系统内部的分账单号,在商户系统内部唯一,同一分账单号多次请求等同一次。只能是数字、大小写字母_-|*@
  904. OutOrderNo *string `json:"out_order_no"`
  905. // 分账接收方列表
  906. Receivers []OrderReceiverDetail `json:"receivers,omitempty"`
  907. // 分账单状态(每个接收方的分账结果请查看receivers中的result字段),枚举值: 1、PROCESSING:处理中 2、FINISHED:分账完成 * `PROCESSING` - 处理中, * `FINISHED` - 分账完成,
  908. State *OrderStatus `json:"state"`
  909. // 微信支付分配的子商户号,即分账的出资商户号。(直连商户不需要,服务商需要)
  910. SubMchid *string `json:"sub_mchid,omitempty"`
  911. // 微信支付订单号
  912. TransactionId *string `json:"transaction_id"`
  913. }
  914. func (o OrdersEntity) MarshalJSON() ([]byte, error) {
  915. toSerialize := map[string]interface{}{}
  916. if o.OrderId == nil {
  917. return nil, fmt.Errorf("field `OrderId` is required and must be specified in OrdersEntity")
  918. }
  919. toSerialize["order_id"] = o.OrderId
  920. if o.OutOrderNo == nil {
  921. return nil, fmt.Errorf("field `OutOrderNo` is required and must be specified in OrdersEntity")
  922. }
  923. toSerialize["out_order_no"] = o.OutOrderNo
  924. if o.Receivers != nil {
  925. toSerialize["receivers"] = o.Receivers
  926. }
  927. if o.State == nil {
  928. return nil, fmt.Errorf("field `State` is required and must be specified in OrdersEntity")
  929. }
  930. toSerialize["state"] = o.State
  931. if o.SubMchid != nil {
  932. toSerialize["sub_mchid"] = o.SubMchid
  933. }
  934. if o.TransactionId == nil {
  935. return nil, fmt.Errorf("field `TransactionId` is required and must be specified in OrdersEntity")
  936. }
  937. toSerialize["transaction_id"] = o.TransactionId
  938. return json.Marshal(toSerialize)
  939. }
  940. func (o OrdersEntity) String() string {
  941. var ret string
  942. if o.OrderId == nil {
  943. ret += "OrderId:<nil>, "
  944. } else {
  945. ret += fmt.Sprintf("OrderId:%v, ", *o.OrderId)
  946. }
  947. if o.OutOrderNo == nil {
  948. ret += "OutOrderNo:<nil>, "
  949. } else {
  950. ret += fmt.Sprintf("OutOrderNo:%v, ", *o.OutOrderNo)
  951. }
  952. ret += fmt.Sprintf("Receivers:%v, ", o.Receivers)
  953. if o.State == nil {
  954. ret += "State:<nil>, "
  955. } else {
  956. ret += fmt.Sprintf("State:%v, ", *o.State)
  957. }
  958. if o.SubMchid == nil {
  959. ret += "SubMchid:<nil>, "
  960. } else {
  961. ret += fmt.Sprintf("SubMchid:%v, ", *o.SubMchid)
  962. }
  963. if o.TransactionId == nil {
  964. ret += "TransactionId:<nil>"
  965. } else {
  966. ret += fmt.Sprintf("TransactionId:%v", *o.TransactionId)
  967. }
  968. return fmt.Sprintf("OrdersEntity{%s}", ret)
  969. }
  970. func (o OrdersEntity) Clone() *OrdersEntity {
  971. ret := OrdersEntity{}
  972. if o.OrderId != nil {
  973. ret.OrderId = new(string)
  974. *ret.OrderId = *o.OrderId
  975. }
  976. if o.OutOrderNo != nil {
  977. ret.OutOrderNo = new(string)
  978. *ret.OutOrderNo = *o.OutOrderNo
  979. }
  980. if o.Receivers != nil {
  981. ret.Receivers = make([]OrderReceiverDetail, len(o.Receivers))
  982. for i, item := range o.Receivers {
  983. ret.Receivers[i] = *item.Clone()
  984. }
  985. }
  986. if o.State != nil {
  987. ret.State = new(OrderStatus)
  988. *ret.State = *o.State
  989. }
  990. if o.SubMchid != nil {
  991. ret.SubMchid = new(string)
  992. *ret.SubMchid = *o.SubMchid
  993. }
  994. if o.TransactionId != nil {
  995. ret.TransactionId = new(string)
  996. *ret.TransactionId = *o.TransactionId
  997. }
  998. return &ret
  999. }
  1000. // QueryMerchantRatioRequest
  1001. type QueryMerchantRatioRequest struct {
  1002. // 微信支付分配的子商户号,即分账的出资商户号。
  1003. SubMchid *string `json:"sub_mchid"`
  1004. }
  1005. func (o QueryMerchantRatioRequest) MarshalJSON() ([]byte, error) {
  1006. toSerialize := map[string]interface{}{}
  1007. if o.SubMchid == nil {
  1008. return nil, fmt.Errorf("field `SubMchid` is required and must be specified in QueryMerchantRatioRequest")
  1009. }
  1010. toSerialize["sub_mchid"] = o.SubMchid
  1011. return json.Marshal(toSerialize)
  1012. }
  1013. func (o QueryMerchantRatioRequest) String() string {
  1014. var ret string
  1015. if o.SubMchid == nil {
  1016. ret += "SubMchid:<nil>"
  1017. } else {
  1018. ret += fmt.Sprintf("SubMchid:%v", *o.SubMchid)
  1019. }
  1020. return fmt.Sprintf("QueryMerchantRatioRequest{%s}", ret)
  1021. }
  1022. func (o QueryMerchantRatioRequest) Clone() *QueryMerchantRatioRequest {
  1023. ret := QueryMerchantRatioRequest{}
  1024. if o.SubMchid != nil {
  1025. ret.SubMchid = new(string)
  1026. *ret.SubMchid = *o.SubMchid
  1027. }
  1028. return &ret
  1029. }
  1030. // QueryMerchantRatioResponse
  1031. type QueryMerchantRatioResponse struct {
  1032. // 子商户允许父商户分账的最大比例,单位万分比,比如2000表示20%
  1033. MaxRatio *int64 `json:"max_ratio"`
  1034. // 参考请求参数
  1035. SubMchid *string `json:"sub_mchid"`
  1036. }
  1037. func (o QueryMerchantRatioResponse) MarshalJSON() ([]byte, error) {
  1038. toSerialize := map[string]interface{}{}
  1039. if o.MaxRatio == nil {
  1040. return nil, fmt.Errorf("field `MaxRatio` is required and must be specified in QueryMerchantRatioResponse")
  1041. }
  1042. toSerialize["max_ratio"] = o.MaxRatio
  1043. if o.SubMchid == nil {
  1044. return nil, fmt.Errorf("field `SubMchid` is required and must be specified in QueryMerchantRatioResponse")
  1045. }
  1046. toSerialize["sub_mchid"] = o.SubMchid
  1047. return json.Marshal(toSerialize)
  1048. }
  1049. func (o QueryMerchantRatioResponse) String() string {
  1050. var ret string
  1051. if o.MaxRatio == nil {
  1052. ret += "MaxRatio:<nil>, "
  1053. } else {
  1054. ret += fmt.Sprintf("MaxRatio:%v, ", *o.MaxRatio)
  1055. }
  1056. if o.SubMchid == nil {
  1057. ret += "SubMchid:<nil>"
  1058. } else {
  1059. ret += fmt.Sprintf("SubMchid:%v", *o.SubMchid)
  1060. }
  1061. return fmt.Sprintf("QueryMerchantRatioResponse{%s}", ret)
  1062. }
  1063. func (o QueryMerchantRatioResponse) Clone() *QueryMerchantRatioResponse {
  1064. ret := QueryMerchantRatioResponse{}
  1065. if o.MaxRatio != nil {
  1066. ret.MaxRatio = new(int64)
  1067. *ret.MaxRatio = *o.MaxRatio
  1068. }
  1069. if o.SubMchid != nil {
  1070. ret.SubMchid = new(string)
  1071. *ret.SubMchid = *o.SubMchid
  1072. }
  1073. return &ret
  1074. }
  1075. // QueryOrderAmountRequest
  1076. type QueryOrderAmountRequest struct {
  1077. // 微信支付订单号
  1078. TransactionId *string `json:"transaction_id"`
  1079. }
  1080. func (o QueryOrderAmountRequest) MarshalJSON() ([]byte, error) {
  1081. toSerialize := map[string]interface{}{}
  1082. if o.TransactionId == nil {
  1083. return nil, fmt.Errorf("field `TransactionId` is required and must be specified in QueryOrderAmountRequest")
  1084. }
  1085. toSerialize["transaction_id"] = o.TransactionId
  1086. return json.Marshal(toSerialize)
  1087. }
  1088. func (o QueryOrderAmountRequest) String() string {
  1089. var ret string
  1090. if o.TransactionId == nil {
  1091. ret += "TransactionId:<nil>"
  1092. } else {
  1093. ret += fmt.Sprintf("TransactionId:%v", *o.TransactionId)
  1094. }
  1095. return fmt.Sprintf("QueryOrderAmountRequest{%s}", ret)
  1096. }
  1097. func (o QueryOrderAmountRequest) Clone() *QueryOrderAmountRequest {
  1098. ret := QueryOrderAmountRequest{}
  1099. if o.TransactionId != nil {
  1100. ret.TransactionId = new(string)
  1101. *ret.TransactionId = *o.TransactionId
  1102. }
  1103. return &ret
  1104. }
  1105. // QueryOrderAmountResponse
  1106. type QueryOrderAmountResponse struct {
  1107. // 微信支付订单号
  1108. TransactionId *string `json:"transaction_id"`
  1109. // 订单剩余待分金额,整数,单元为分
  1110. UnsplitAmount *int64 `json:"unsplit_amount"`
  1111. }
  1112. func (o QueryOrderAmountResponse) MarshalJSON() ([]byte, error) {
  1113. toSerialize := map[string]interface{}{}
  1114. if o.TransactionId == nil {
  1115. return nil, fmt.Errorf("field `TransactionId` is required and must be specified in QueryOrderAmountResponse")
  1116. }
  1117. toSerialize["transaction_id"] = o.TransactionId
  1118. if o.UnsplitAmount == nil {
  1119. return nil, fmt.Errorf("field `UnsplitAmount` is required and must be specified in QueryOrderAmountResponse")
  1120. }
  1121. toSerialize["unsplit_amount"] = o.UnsplitAmount
  1122. return json.Marshal(toSerialize)
  1123. }
  1124. func (o QueryOrderAmountResponse) String() string {
  1125. var ret string
  1126. if o.TransactionId == nil {
  1127. ret += "TransactionId:<nil>, "
  1128. } else {
  1129. ret += fmt.Sprintf("TransactionId:%v, ", *o.TransactionId)
  1130. }
  1131. if o.UnsplitAmount == nil {
  1132. ret += "UnsplitAmount:<nil>"
  1133. } else {
  1134. ret += fmt.Sprintf("UnsplitAmount:%v", *o.UnsplitAmount)
  1135. }
  1136. return fmt.Sprintf("QueryOrderAmountResponse{%s}", ret)
  1137. }
  1138. func (o QueryOrderAmountResponse) Clone() *QueryOrderAmountResponse {
  1139. ret := QueryOrderAmountResponse{}
  1140. if o.TransactionId != nil {
  1141. ret.TransactionId = new(string)
  1142. *ret.TransactionId = *o.TransactionId
  1143. }
  1144. if o.UnsplitAmount != nil {
  1145. ret.UnsplitAmount = new(int64)
  1146. *ret.UnsplitAmount = *o.UnsplitAmount
  1147. }
  1148. return &ret
  1149. }
  1150. // QueryOrderRequest
  1151. type QueryOrderRequest struct {
  1152. // 微信支付分配的子商户号,即分账的出资商户号。(直连商户不需要,服务商需要)
  1153. SubMchid *string `json:"sub_mchid,omitempty"`
  1154. // 微信支付订单号
  1155. TransactionId *string `json:"transaction_id"`
  1156. // 商户系统内部的分账单号,在商户系统内部唯一,同一分账单号多次请求等同一次。只能是数字、大小写字母_-|*@ 。 微信分账单号与商户分账单号二选一填写
  1157. OutOrderNo *string `json:"out_order_no"`
  1158. }
  1159. func (o QueryOrderRequest) MarshalJSON() ([]byte, error) {
  1160. toSerialize := map[string]interface{}{}
  1161. if o.SubMchid != nil {
  1162. toSerialize["sub_mchid"] = o.SubMchid
  1163. }
  1164. if o.TransactionId == nil {
  1165. return nil, fmt.Errorf("field `TransactionId` is required and must be specified in QueryOrderRequest")
  1166. }
  1167. toSerialize["transaction_id"] = o.TransactionId
  1168. if o.OutOrderNo == nil {
  1169. return nil, fmt.Errorf("field `OutOrderNo` is required and must be specified in QueryOrderRequest")
  1170. }
  1171. toSerialize["out_order_no"] = o.OutOrderNo
  1172. return json.Marshal(toSerialize)
  1173. }
  1174. func (o QueryOrderRequest) String() string {
  1175. var ret string
  1176. if o.SubMchid == nil {
  1177. ret += "SubMchid:<nil>, "
  1178. } else {
  1179. ret += fmt.Sprintf("SubMchid:%v, ", *o.SubMchid)
  1180. }
  1181. if o.TransactionId == nil {
  1182. ret += "TransactionId:<nil>, "
  1183. } else {
  1184. ret += fmt.Sprintf("TransactionId:%v, ", *o.TransactionId)
  1185. }
  1186. if o.OutOrderNo == nil {
  1187. ret += "OutOrderNo:<nil>"
  1188. } else {
  1189. ret += fmt.Sprintf("OutOrderNo:%v", *o.OutOrderNo)
  1190. }
  1191. return fmt.Sprintf("QueryOrderRequest{%s}", ret)
  1192. }
  1193. func (o QueryOrderRequest) Clone() *QueryOrderRequest {
  1194. ret := QueryOrderRequest{}
  1195. if o.SubMchid != nil {
  1196. ret.SubMchid = new(string)
  1197. *ret.SubMchid = *o.SubMchid
  1198. }
  1199. if o.TransactionId != nil {
  1200. ret.TransactionId = new(string)
  1201. *ret.TransactionId = *o.TransactionId
  1202. }
  1203. if o.OutOrderNo != nil {
  1204. ret.OutOrderNo = new(string)
  1205. *ret.OutOrderNo = *o.OutOrderNo
  1206. }
  1207. return &ret
  1208. }
  1209. // QueryReturnOrderRequest
  1210. type QueryReturnOrderRequest struct {
  1211. // 分账回退的接收商户,对应原分账出资的分账方商户,填写微信支付分配的商户号。(直连商户不需要,服务商需要)
  1212. SubMchid *string `json:"sub_mchid,omitempty"`
  1213. // 调用回退接口提供的商户系统内部的回退单号。微信支付回退单号与商户回退单号二选一填写
  1214. OutReturnNo *string `json:"out_return_no"`
  1215. // 原发起分账请求时使用的商户系统内部的分账单号。微信分账单号与商户分账单号二选一填写
  1216. OutOrderNo *string `json:"out_order_no"`
  1217. }
  1218. func (o QueryReturnOrderRequest) MarshalJSON() ([]byte, error) {
  1219. toSerialize := map[string]interface{}{}
  1220. if o.SubMchid != nil {
  1221. toSerialize["sub_mchid"] = o.SubMchid
  1222. }
  1223. if o.OutReturnNo == nil {
  1224. return nil, fmt.Errorf("field `OutReturnNo` is required and must be specified in QueryReturnOrderRequest")
  1225. }
  1226. toSerialize["out_return_no"] = o.OutReturnNo
  1227. if o.OutOrderNo == nil {
  1228. return nil, fmt.Errorf("field `OutOrderNo` is required and must be specified in QueryReturnOrderRequest")
  1229. }
  1230. toSerialize["out_order_no"] = o.OutOrderNo
  1231. return json.Marshal(toSerialize)
  1232. }
  1233. func (o QueryReturnOrderRequest) String() string {
  1234. var ret string
  1235. if o.SubMchid == nil {
  1236. ret += "SubMchid:<nil>, "
  1237. } else {
  1238. ret += fmt.Sprintf("SubMchid:%v, ", *o.SubMchid)
  1239. }
  1240. if o.OutReturnNo == nil {
  1241. ret += "OutReturnNo:<nil>, "
  1242. } else {
  1243. ret += fmt.Sprintf("OutReturnNo:%v, ", *o.OutReturnNo)
  1244. }
  1245. if o.OutOrderNo == nil {
  1246. ret += "OutOrderNo:<nil>"
  1247. } else {
  1248. ret += fmt.Sprintf("OutOrderNo:%v", *o.OutOrderNo)
  1249. }
  1250. return fmt.Sprintf("QueryReturnOrderRequest{%s}", ret)
  1251. }
  1252. func (o QueryReturnOrderRequest) Clone() *QueryReturnOrderRequest {
  1253. ret := QueryReturnOrderRequest{}
  1254. if o.SubMchid != nil {
  1255. ret.SubMchid = new(string)
  1256. *ret.SubMchid = *o.SubMchid
  1257. }
  1258. if o.OutReturnNo != nil {
  1259. ret.OutReturnNo = new(string)
  1260. *ret.OutReturnNo = *o.OutReturnNo
  1261. }
  1262. if o.OutOrderNo != nil {
  1263. ret.OutOrderNo = new(string)
  1264. *ret.OutOrderNo = *o.OutOrderNo
  1265. }
  1266. return &ret
  1267. }
  1268. // ReceiverRelationType * `SERVICE_PROVIDER` - 服务商, * `STORE` - 门店, * `STAFF` - 员工, * `STORE_OWNER` - 店主, * `PARTNER` - 合作伙伴, * `HEADQUARTER` - 总部, * `BRAND` - 品牌方, * `DISTRIBUTOR` - 分销商, * `USER` - 用户, * `SUPPLIER` - 供应商, * `CUSTOM` - 自定义,
  1269. type ReceiverRelationType string
  1270. func (e ReceiverRelationType) Ptr() *ReceiverRelationType {
  1271. return &e
  1272. }
  1273. // Enums of ReceiverRelationType
  1274. const (
  1275. RECEIVERRELATIONTYPE_SERVICE_PROVIDER ReceiverRelationType = "SERVICE_PROVIDER"
  1276. RECEIVERRELATIONTYPE_STORE ReceiverRelationType = "STORE"
  1277. RECEIVERRELATIONTYPE_STAFF ReceiverRelationType = "STAFF"
  1278. RECEIVERRELATIONTYPE_STORE_OWNER ReceiverRelationType = "STORE_OWNER"
  1279. RECEIVERRELATIONTYPE_PARTNER ReceiverRelationType = "PARTNER"
  1280. RECEIVERRELATIONTYPE_HEADQUARTER ReceiverRelationType = "HEADQUARTER"
  1281. RECEIVERRELATIONTYPE_BRAND ReceiverRelationType = "BRAND"
  1282. RECEIVERRELATIONTYPE_DISTRIBUTOR ReceiverRelationType = "DISTRIBUTOR"
  1283. RECEIVERRELATIONTYPE_USER ReceiverRelationType = "USER"
  1284. RECEIVERRELATIONTYPE_SUPPLIER ReceiverRelationType = "SUPPLIER"
  1285. RECEIVERRELATIONTYPE_CUSTOM ReceiverRelationType = "CUSTOM"
  1286. )
  1287. // ReceiverType * `MERCHANT_ID` - 商户号, * `PERSONAL_OPENID` - 个人openid(由父商户APPID转换得到), * `PERSONAL_SUB_OPENID` - 个人sub_openid(由子商户APPID转换得到)(直连商户不需要,服务商需要),
  1288. type ReceiverType string
  1289. func (e ReceiverType) Ptr() *ReceiverType {
  1290. return &e
  1291. }
  1292. // Enums of ReceiverType
  1293. const (
  1294. RECEIVERTYPE_MERCHANT_ID ReceiverType = "MERCHANT_ID"
  1295. RECEIVERTYPE_PERSONAL_OPENID ReceiverType = "PERSONAL_OPENID"
  1296. RECEIVERTYPE_PERSONAL_SUB_OPENID ReceiverType = "PERSONAL_SUB_OPENID"
  1297. )
  1298. // ReturnOrderFailReason * `ACCOUNT_ABNORMAL` - 分账接收方账户异常, * `BALANCE_NOT_ENOUGH` - 余额不足, * `TIME_OUT_CLOSED` - 超时关单,
  1299. type ReturnOrderFailReason string
  1300. func (e ReturnOrderFailReason) Ptr() *ReturnOrderFailReason {
  1301. return &e
  1302. }
  1303. // Enums of ReturnOrderFailReason
  1304. const (
  1305. RETURNORDERFAILREASON_ACCOUNT_ABNORMAL ReturnOrderFailReason = "ACCOUNT_ABNORMAL"
  1306. RETURNORDERFAILREASON_BALANCE_NOT_ENOUGH ReturnOrderFailReason = "BALANCE_NOT_ENOUGH"
  1307. RETURNORDERFAILREASON_TIME_OUT_CLOSED ReturnOrderFailReason = "TIME_OUT_CLOSED"
  1308. )
  1309. // ReturnOrderStatus * `PROCESSING` - 处理中, * `SUCCESS` - 已成功, * `FAILED` - 已失败,
  1310. type ReturnOrderStatus string
  1311. func (e ReturnOrderStatus) Ptr() *ReturnOrderStatus {
  1312. return &e
  1313. }
  1314. // Enums of ReturnOrderStatus
  1315. const (
  1316. RETURNORDERSTATUS_PROCESSING ReturnOrderStatus = "PROCESSING"
  1317. RETURNORDERSTATUS_SUCCESS ReturnOrderStatus = "SUCCESS"
  1318. RETURNORDERSTATUS_FAILED ReturnOrderStatus = "FAILED"
  1319. )
  1320. // ReturnOrdersEntity
  1321. type ReturnOrdersEntity struct {
  1322. // 需要从分账接收方回退的金额,单位为分,只能为整数
  1323. Amount *int64 `json:"amount"`
  1324. // 分账回退创建时间,遵循RFC3339标准格式
  1325. CreateTime *time.Time `json:"create_time"`
  1326. // 分账回退的原因描述
  1327. Description *string `json:"description"`
  1328. // 失败原因。包含以下枚举值: ACCOUNT_ABNORMAL : 分账接收方账户异常 TIME_OUT_CLOSED : 超时关单 * `ACCOUNT_ABNORMAL` - 分账接收方账户异常, * `BALANCE_NOT_ENOUGH` - 余额不足, * `TIME_OUT_CLOSED` - 超时关单,
  1329. FailReason *ReturnOrderFailReason `json:"fail_reason,omitempty"`
  1330. // 分账回退完成时间,遵循RFC3339标准格式
  1331. FinishTime *time.Time `json:"finish_time"`
  1332. // 参考请求参数
  1333. OrderId *string `json:"order_id"`
  1334. // 参考请求参数
  1335. OutOrderNo *string `json:"out_order_no"`
  1336. // 参考请求参数
  1337. OutReturnNo *string `json:"out_return_no"`
  1338. // 如果请求返回为处理中,则商户可以通过调用回退结果查询接口获取请求的最终处理结果。如果查询到回退结果在处理中,请勿变更商户回退单号,使用相同的参数再次发起分账回退,否则会出现资金风险。在处理中状态的回退单如果5天没有成功,会因为超时被设置为已失败。 枚举值: PROCESSING:处理中 SUCCESS:已成功 FAILED:已失败 * `PROCESSING` - 处理中, * `SUCCESS` - 已成功, * `FAILED` - 已失败,
  1339. Result *ReturnOrderStatus `json:"result"`
  1340. // 微信分账回退单号,微信系统返回的唯一标识
  1341. ReturnId *string `json:"return_id"`
  1342. // 只能对原分账请求中成功分给商户接收方进行回退
  1343. ReturnMchid *string `json:"return_mchid"`
  1344. // 参考请求参数
  1345. SubMchid *string `json:"sub_mchid,omitempty"`
  1346. }
  1347. func (o ReturnOrdersEntity) MarshalJSON() ([]byte, error) {
  1348. toSerialize := map[string]interface{}{}
  1349. if o.Amount == nil {
  1350. return nil, fmt.Errorf("field `Amount` is required and must be specified in ReturnOrdersEntity")
  1351. }
  1352. toSerialize["amount"] = o.Amount
  1353. if o.CreateTime == nil {
  1354. return nil, fmt.Errorf("field `CreateTime` is required and must be specified in ReturnOrdersEntity")
  1355. }
  1356. toSerialize["create_time"] = o.CreateTime.Format(time.RFC3339)
  1357. if o.Description == nil {
  1358. return nil, fmt.Errorf("field `Description` is required and must be specified in ReturnOrdersEntity")
  1359. }
  1360. toSerialize["description"] = o.Description
  1361. if o.FailReason != nil {
  1362. toSerialize["fail_reason"] = o.FailReason
  1363. }
  1364. if o.FinishTime == nil {
  1365. return nil, fmt.Errorf("field `FinishTime` is required and must be specified in ReturnOrdersEntity")
  1366. }
  1367. toSerialize["finish_time"] = o.FinishTime.Format(time.RFC3339)
  1368. if o.OrderId == nil {
  1369. return nil, fmt.Errorf("field `OrderId` is required and must be specified in ReturnOrdersEntity")
  1370. }
  1371. toSerialize["order_id"] = o.OrderId
  1372. if o.OutOrderNo == nil {
  1373. return nil, fmt.Errorf("field `OutOrderNo` is required and must be specified in ReturnOrdersEntity")
  1374. }
  1375. toSerialize["out_order_no"] = o.OutOrderNo
  1376. if o.OutReturnNo == nil {
  1377. return nil, fmt.Errorf("field `OutReturnNo` is required and must be specified in ReturnOrdersEntity")
  1378. }
  1379. toSerialize["out_return_no"] = o.OutReturnNo
  1380. if o.Result == nil {
  1381. return nil, fmt.Errorf("field `Result` is required and must be specified in ReturnOrdersEntity")
  1382. }
  1383. toSerialize["result"] = o.Result
  1384. if o.ReturnId == nil {
  1385. return nil, fmt.Errorf("field `ReturnId` is required and must be specified in ReturnOrdersEntity")
  1386. }
  1387. toSerialize["return_id"] = o.ReturnId
  1388. if o.ReturnMchid == nil {
  1389. return nil, fmt.Errorf("field `ReturnMchid` is required and must be specified in ReturnOrdersEntity")
  1390. }
  1391. toSerialize["return_mchid"] = o.ReturnMchid
  1392. if o.SubMchid != nil {
  1393. toSerialize["sub_mchid"] = o.SubMchid
  1394. }
  1395. return json.Marshal(toSerialize)
  1396. }
  1397. func (o ReturnOrdersEntity) String() string {
  1398. var ret string
  1399. if o.Amount == nil {
  1400. ret += "Amount:<nil>, "
  1401. } else {
  1402. ret += fmt.Sprintf("Amount:%v, ", *o.Amount)
  1403. }
  1404. if o.CreateTime == nil {
  1405. ret += "CreateTime:<nil>, "
  1406. } else {
  1407. ret += fmt.Sprintf("CreateTime:%v, ", *o.CreateTime)
  1408. }
  1409. if o.Description == nil {
  1410. ret += "Description:<nil>, "
  1411. } else {
  1412. ret += fmt.Sprintf("Description:%v, ", *o.Description)
  1413. }
  1414. if o.FailReason == nil {
  1415. ret += "FailReason:<nil>, "
  1416. } else {
  1417. ret += fmt.Sprintf("FailReason:%v, ", *o.FailReason)
  1418. }
  1419. if o.FinishTime == nil {
  1420. ret += "FinishTime:<nil>, "
  1421. } else {
  1422. ret += fmt.Sprintf("FinishTime:%v, ", *o.FinishTime)
  1423. }
  1424. if o.OrderId == nil {
  1425. ret += "OrderId:<nil>, "
  1426. } else {
  1427. ret += fmt.Sprintf("OrderId:%v, ", *o.OrderId)
  1428. }
  1429. if o.OutOrderNo == nil {
  1430. ret += "OutOrderNo:<nil>, "
  1431. } else {
  1432. ret += fmt.Sprintf("OutOrderNo:%v, ", *o.OutOrderNo)
  1433. }
  1434. if o.OutReturnNo == nil {
  1435. ret += "OutReturnNo:<nil>, "
  1436. } else {
  1437. ret += fmt.Sprintf("OutReturnNo:%v, ", *o.OutReturnNo)
  1438. }
  1439. if o.Result == nil {
  1440. ret += "Result:<nil>, "
  1441. } else {
  1442. ret += fmt.Sprintf("Result:%v, ", *o.Result)
  1443. }
  1444. if o.ReturnId == nil {
  1445. ret += "ReturnId:<nil>, "
  1446. } else {
  1447. ret += fmt.Sprintf("ReturnId:%v, ", *o.ReturnId)
  1448. }
  1449. if o.ReturnMchid == nil {
  1450. ret += "ReturnMchid:<nil>, "
  1451. } else {
  1452. ret += fmt.Sprintf("ReturnMchid:%v, ", *o.ReturnMchid)
  1453. }
  1454. if o.SubMchid == nil {
  1455. ret += "SubMchid:<nil>"
  1456. } else {
  1457. ret += fmt.Sprintf("SubMchid:%v", *o.SubMchid)
  1458. }
  1459. return fmt.Sprintf("ReturnOrdersEntity{%s}", ret)
  1460. }
  1461. func (o ReturnOrdersEntity) Clone() *ReturnOrdersEntity {
  1462. ret := ReturnOrdersEntity{}
  1463. if o.Amount != nil {
  1464. ret.Amount = new(int64)
  1465. *ret.Amount = *o.Amount
  1466. }
  1467. if o.CreateTime != nil {
  1468. ret.CreateTime = new(time.Time)
  1469. *ret.CreateTime = *o.CreateTime
  1470. }
  1471. if o.Description != nil {
  1472. ret.Description = new(string)
  1473. *ret.Description = *o.Description
  1474. }
  1475. if o.FailReason != nil {
  1476. ret.FailReason = new(ReturnOrderFailReason)
  1477. *ret.FailReason = *o.FailReason
  1478. }
  1479. if o.FinishTime != nil {
  1480. ret.FinishTime = new(time.Time)
  1481. *ret.FinishTime = *o.FinishTime
  1482. }
  1483. if o.OrderId != nil {
  1484. ret.OrderId = new(string)
  1485. *ret.OrderId = *o.OrderId
  1486. }
  1487. if o.OutOrderNo != nil {
  1488. ret.OutOrderNo = new(string)
  1489. *ret.OutOrderNo = *o.OutOrderNo
  1490. }
  1491. if o.OutReturnNo != nil {
  1492. ret.OutReturnNo = new(string)
  1493. *ret.OutReturnNo = *o.OutReturnNo
  1494. }
  1495. if o.Result != nil {
  1496. ret.Result = new(ReturnOrderStatus)
  1497. *ret.Result = *o.Result
  1498. }
  1499. if o.ReturnId != nil {
  1500. ret.ReturnId = new(string)
  1501. *ret.ReturnId = *o.ReturnId
  1502. }
  1503. if o.ReturnMchid != nil {
  1504. ret.ReturnMchid = new(string)
  1505. *ret.ReturnMchid = *o.ReturnMchid
  1506. }
  1507. if o.SubMchid != nil {
  1508. ret.SubMchid = new(string)
  1509. *ret.SubMchid = *o.SubMchid
  1510. }
  1511. return &ret
  1512. }
  1513. // SplitBillHashType * `SHA1` - SHA1,Secure Hash Algorithm 1
  1514. type SplitBillHashType string
  1515. func (e SplitBillHashType) Ptr() *SplitBillHashType {
  1516. return &e
  1517. }
  1518. // Enums of SplitBillHashType
  1519. const (
  1520. SPLITBILLHASHTYPE_SHA1 SplitBillHashType = "SHA1"
  1521. )
  1522. // SplitBillRequest
  1523. type SplitBillRequest struct {
  1524. // 若商户是直连商户: - 无需填写该字段 若商户是服务商: - 不填则默认返回服务商下的所有分账账单。 - 如需下载某个子商户下的分账账单,则填指定的子商户号。
  1525. SubMchid *string `json:"sub_mchid,omitempty"`
  1526. // 格式YYYY-MM-DD。仅支持三个月内的账单下载申请。
  1527. BillDate *string `json:"bill_date"`
  1528. // 不填则以不压缩的方式返回数据流
  1529. TarType *SplitBillTarType `json:"tar_type,omitempty"`
  1530. }
  1531. func (o SplitBillRequest) MarshalJSON() ([]byte, error) {
  1532. toSerialize := map[string]interface{}{}
  1533. if o.SubMchid != nil {
  1534. toSerialize["sub_mchid"] = o.SubMchid
  1535. }
  1536. if o.BillDate == nil {
  1537. return nil, fmt.Errorf("field `BillDate` is required and must be specified in SplitBillRequest")
  1538. }
  1539. toSerialize["bill_date"] = o.BillDate
  1540. if o.TarType != nil {
  1541. toSerialize["tar_type"] = o.TarType
  1542. }
  1543. return json.Marshal(toSerialize)
  1544. }
  1545. func (o SplitBillRequest) String() string {
  1546. var ret string
  1547. if o.SubMchid == nil {
  1548. ret += "SubMchid:<nil>, "
  1549. } else {
  1550. ret += fmt.Sprintf("SubMchid:%v, ", *o.SubMchid)
  1551. }
  1552. if o.BillDate == nil {
  1553. ret += "BillDate:<nil>, "
  1554. } else {
  1555. ret += fmt.Sprintf("BillDate:%v, ", *o.BillDate)
  1556. }
  1557. if o.TarType == nil {
  1558. ret += "TarType:<nil>"
  1559. } else {
  1560. ret += fmt.Sprintf("TarType:%v", *o.TarType)
  1561. }
  1562. return fmt.Sprintf("SplitBillRequest{%s}", ret)
  1563. }
  1564. func (o SplitBillRequest) Clone() *SplitBillRequest {
  1565. ret := SplitBillRequest{}
  1566. if o.SubMchid != nil {
  1567. ret.SubMchid = new(string)
  1568. *ret.SubMchid = *o.SubMchid
  1569. }
  1570. if o.BillDate != nil {
  1571. ret.BillDate = new(string)
  1572. *ret.BillDate = *o.BillDate
  1573. }
  1574. if o.TarType != nil {
  1575. ret.TarType = new(SplitBillTarType)
  1576. *ret.TarType = *o.TarType
  1577. }
  1578. return &ret
  1579. }
  1580. // SplitBillResponse
  1581. type SplitBillResponse struct {
  1582. // 供下一步请求账单文件的下载地址,该地址30s内有效
  1583. DownloadUrl *string `json:"download_url"`
  1584. // 原始账单(gzip需要解压缩)的摘要算法,用于校验文件的完整性 * `SHA1` - SHA1,Secure Hash Algorithm 1
  1585. HashType *SplitBillHashType `json:"hash_type"`
  1586. // 原始账单(gzip需要解压缩)的摘要值,用于校验文件的完整性
  1587. HashValue *string `json:"hash_value"`
  1588. }
  1589. func (o SplitBillResponse) MarshalJSON() ([]byte, error) {
  1590. toSerialize := map[string]interface{}{}
  1591. if o.DownloadUrl == nil {
  1592. return nil, fmt.Errorf("field `DownloadUrl` is required and must be specified in SplitBillResponse")
  1593. }
  1594. toSerialize["download_url"] = o.DownloadUrl
  1595. if o.HashType == nil {
  1596. return nil, fmt.Errorf("field `HashType` is required and must be specified in SplitBillResponse")
  1597. }
  1598. toSerialize["hash_type"] = o.HashType
  1599. if o.HashValue == nil {
  1600. return nil, fmt.Errorf("field `HashValue` is required and must be specified in SplitBillResponse")
  1601. }
  1602. toSerialize["hash_value"] = o.HashValue
  1603. return json.Marshal(toSerialize)
  1604. }
  1605. func (o SplitBillResponse) String() string {
  1606. var ret string
  1607. if o.DownloadUrl == nil {
  1608. ret += "DownloadUrl:<nil>, "
  1609. } else {
  1610. ret += fmt.Sprintf("DownloadUrl:%v, ", *o.DownloadUrl)
  1611. }
  1612. if o.HashType == nil {
  1613. ret += "HashType:<nil>, "
  1614. } else {
  1615. ret += fmt.Sprintf("HashType:%v, ", *o.HashType)
  1616. }
  1617. if o.HashValue == nil {
  1618. ret += "HashValue:<nil>"
  1619. } else {
  1620. ret += fmt.Sprintf("HashValue:%v", *o.HashValue)
  1621. }
  1622. return fmt.Sprintf("SplitBillResponse{%s}", ret)
  1623. }
  1624. func (o SplitBillResponse) Clone() *SplitBillResponse {
  1625. ret := SplitBillResponse{}
  1626. if o.DownloadUrl != nil {
  1627. ret.DownloadUrl = new(string)
  1628. *ret.DownloadUrl = *o.DownloadUrl
  1629. }
  1630. if o.HashType != nil {
  1631. ret.HashType = new(SplitBillHashType)
  1632. *ret.HashType = *o.HashType
  1633. }
  1634. if o.HashValue != nil {
  1635. ret.HashValue = new(string)
  1636. *ret.HashValue = *o.HashValue
  1637. }
  1638. return &ret
  1639. }
  1640. // SplitBillTarType * `GZIP` - GZIP格式压缩,返回格式为.gzip的压缩包账单
  1641. type SplitBillTarType string
  1642. func (e SplitBillTarType) Ptr() *SplitBillTarType {
  1643. return &e
  1644. }
  1645. // Enums of SplitBillTarType
  1646. const (
  1647. SPLITBILLTARTYPE_GZIP SplitBillTarType = "GZIP"
  1648. )
  1649. // UnfreezeOrderRequest
  1650. type UnfreezeOrderRequest struct {
  1651. // 分账的原因描述,分账账单中需要体现
  1652. Description *string `json:"description"`
  1653. // 商户系统内部的分账单号,在商户系统内部唯一,同一分账单号多次请求等同一次。只能是数字、大小写字母_-|*@
  1654. OutOrderNo *string `json:"out_order_no"`
  1655. // 微信支付分配的子商户号,即分账的出资商户号。(直连商户不需要,服务商需要)
  1656. SubMchid *string `json:"sub_mchid,omitempty"`
  1657. // 微信支付订单号
  1658. TransactionId *string `json:"transaction_id"`
  1659. }
  1660. func (o UnfreezeOrderRequest) MarshalJSON() ([]byte, error) {
  1661. toSerialize := map[string]interface{}{}
  1662. if o.Description == nil {
  1663. return nil, fmt.Errorf("field `Description` is required and must be specified in UnfreezeOrderRequest")
  1664. }
  1665. toSerialize["description"] = o.Description
  1666. if o.OutOrderNo == nil {
  1667. return nil, fmt.Errorf("field `OutOrderNo` is required and must be specified in UnfreezeOrderRequest")
  1668. }
  1669. toSerialize["out_order_no"] = o.OutOrderNo
  1670. if o.SubMchid != nil {
  1671. toSerialize["sub_mchid"] = o.SubMchid
  1672. }
  1673. if o.TransactionId == nil {
  1674. return nil, fmt.Errorf("field `TransactionId` is required and must be specified in UnfreezeOrderRequest")
  1675. }
  1676. toSerialize["transaction_id"] = o.TransactionId
  1677. return json.Marshal(toSerialize)
  1678. }
  1679. func (o UnfreezeOrderRequest) String() string {
  1680. var ret string
  1681. if o.Description == nil {
  1682. ret += "Description:<nil>, "
  1683. } else {
  1684. ret += fmt.Sprintf("Description:%v, ", *o.Description)
  1685. }
  1686. if o.OutOrderNo == nil {
  1687. ret += "OutOrderNo:<nil>, "
  1688. } else {
  1689. ret += fmt.Sprintf("OutOrderNo:%v, ", *o.OutOrderNo)
  1690. }
  1691. if o.SubMchid == nil {
  1692. ret += "SubMchid:<nil>, "
  1693. } else {
  1694. ret += fmt.Sprintf("SubMchid:%v, ", *o.SubMchid)
  1695. }
  1696. if o.TransactionId == nil {
  1697. ret += "TransactionId:<nil>"
  1698. } else {
  1699. ret += fmt.Sprintf("TransactionId:%v", *o.TransactionId)
  1700. }
  1701. return fmt.Sprintf("UnfreezeOrderRequest{%s}", ret)
  1702. }
  1703. func (o UnfreezeOrderRequest) Clone() *UnfreezeOrderRequest {
  1704. ret := UnfreezeOrderRequest{}
  1705. if o.Description != nil {
  1706. ret.Description = new(string)
  1707. *ret.Description = *o.Description
  1708. }
  1709. if o.OutOrderNo != nil {
  1710. ret.OutOrderNo = new(string)
  1711. *ret.OutOrderNo = *o.OutOrderNo
  1712. }
  1713. if o.SubMchid != nil {
  1714. ret.SubMchid = new(string)
  1715. *ret.SubMchid = *o.SubMchid
  1716. }
  1717. if o.TransactionId != nil {
  1718. ret.TransactionId = new(string)
  1719. *ret.TransactionId = *o.TransactionId
  1720. }
  1721. return &ret
  1722. }