structure_v3.go 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. package wechat
  2. import "time"
  3. /* ******************************************
  4. HTTP Status code
  5. 200 ok
  6. 204 处理成功,无返回 Body
  7. 400 协议或者参数非法, PARAM_ERROR
  8. 401 签名验证失败, SIGN_ERROR
  9. 403 权限异常, NO_AUTH
  10. 404 请求的资源不存在, ORDER_NOT_EXIST
  11. 429 请求超过频率限制, RATELIMIT_EXCEEDED
  12. 500 系统错误, SYSTEM_ERROR
  13. 502 服务下线,暂时不可用, SERVICE_UNAVAILABLE
  14. 503 服务不可用,过载保护, SERVICE_UNAVAILABLE
  15. // ****************************************** */
  16. // WepayResponseDetail detail
  17. type WepayResponseDetail struct {
  18. Field string `json:"field"`
  19. Value string `json:"value"`
  20. Issue string `json:"issue"`
  21. Location string `json:"location"`
  22. }
  23. // WepayResponseMessageV3 v3 返回消息头
  24. type WepayResponseMessageV3 struct {
  25. Code string `json:"code"`
  26. Message string `json:"message"`
  27. Detail WepayResponseDetail `json:"detail"`
  28. }
  29. // PayResultNotifyV3Resource 微信支付 V3 支付通知 resource 数据结构
  30. type PayResultNotifyV3Resource struct {
  31. // 原始类型 原始回调类型,为transaction
  32. OriginalType string `json:"original_type"`
  33. // 加密算法类型 对开启结果数据进行加密的加密算法,目前只支持AEAD_AES_256_GCM
  34. Algorithm string `json:"algorithm"`
  35. // 数据密文 Base64编码后的开启/停用结果数据密文
  36. Ciphertext string `json:"ciphertext"`
  37. // 附加数据
  38. AssociatedData string `json:"associated_data"`
  39. // 随机串 加密使用的随机串
  40. Nonce string `json:"nonce"`
  41. }
  42. // PayResultNotifyV3 微信支付 V3 支付通知数据结构
  43. type PayResultNotifyV3 struct {
  44. // 通知ID
  45. ID string `json:"id"`
  46. // 通知创建的时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE
  47. CreateTime time.Time `json:"create_time"`
  48. // 知的资源数据类型,支付成功通知为encrypt-resource
  49. ResourceType string `json:"resource_type"`
  50. // 通知的类型,支付成功通知的类型为TRANSACTION.SUCCESS 通
  51. EventType string `json:"event_type"`
  52. // 回调摘要 示例值:支付成功
  53. Summary string `json:"summary"`
  54. // 通知资源数据
  55. Resource PayResultNotifyV3Resource `json:"resource"`
  56. }
  57. // PayOrderPayerV3 微信支付 V3 支付订单支付人信息
  58. type PayOrderPayerV3 struct {
  59. // OpenID 用户标识 用户在直连商户appid下的唯一标识
  60. OpenID string `json:"openid"`
  61. }
  62. // PayOrderAmountV3 微信支付 V3 支付订单支金额信息
  63. type PayOrderAmountV3 struct {
  64. // Total 总金额 订单总金额,单位为分
  65. Total int `json:"total"`
  66. // PayerTotal 用户支付金额 用户支付金额,单位为分。(指使用优惠券的情况下,这里等于总金额-优惠券金额)
  67. PayerTotal int `json:"payer_total"`
  68. // Currency 货币类型 CNY:人民币,境内商户号仅支持人民币
  69. Currency string `json:"currency"`
  70. // PayerCurrency 用户支付币种
  71. PayerCurrency string `json:"payer_currency"`
  72. }
  73. // PayOrderInfoV3 微信支付 V3 支付订单信息
  74. type PayOrderInfoV3 struct {
  75. // MchID 直连商户号 直连商户的商户号,由微信支付生成并下发
  76. MchID string `json:"mchid"`
  77. // AppID 应用ID 直连商户申请的公众号或移动应用appid
  78. AppID string `json:"appid"`
  79. // OutTradeNo 商户订单号 户系统内部订单号,只能是数字、大小写字母_-*且在同一个商户号下唯一
  80. OutTradeNo string `json:"out_trade_no"`
  81. // TransactionID 微信支付订单号 微信支付系统生成的订单号
  82. TransactionID string `json:"transaction_id"`
  83. // TradeType 交易类型 枚举值:
  84. // JSAPI:公众号支付
  85. // NATIVE:扫码支付
  86. // APP:APP支付
  87. // MICROPAY:付款码支付
  88. // MWEB:H5支付
  89. // FACEPAY:刷脸支付
  90. TradeType string `json:"trade_type"`
  91. // TradeState 交易状态 枚举值:
  92. // SUCCESS:支付成功
  93. // REFUND:转入退款
  94. // NOTPAY:未支付
  95. // CLOSED:已关闭
  96. // REVOKED:已撤销(仅付款码支付会返回)
  97. // USERPAYING:用户支付中(仅付款码支付会返回)
  98. // PAYERROR:支付失败(仅付款码支付会返回)
  99. TradeState string `json:"trade_state"`
  100. // TradeStateDesc 交易状态描述
  101. TradeStateDesc string `json:"trade_state_desc"`
  102. // BankType 付款银行 银行类型,采用字符串类型的银行标识
  103. BankType string `json:"bank_type"`
  104. // Attach 附加数据 在查询API和支付通知中原样返回,可作为自定义参数使用,实际情况下只有支付完成状态才会返回该字段
  105. Attach string `json:"attach"`
  106. // SuccessTime 支付完成时间 支付完成时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE
  107. SuccessTime time.Time `json:"success_time"`
  108. // Payer 支付者信息
  109. Payer PayOrderPayerV3 `json:"payer"`
  110. // Amount 订单金额信息,当支付成功时返回该字段
  111. Amount PayOrderAmountV3 `json:"amount"`
  112. }
  113. // PayRefundAmountV3 微信支付 V3 退款订单支金额信息
  114. type PayRefundAmountV3 struct {
  115. // Total 总金额 订单总金额,单位为分
  116. Total int `json:"total"`
  117. // Refund 退款金额,币种的最小单位,只能为整数,不能超过原订单支付金额,如果有使用券,后台会按比例退。
  118. Refund int `json:"refund"`
  119. // PayerTotal 用户支付金额 用户实际支付金额,单位为分,只能为整数
  120. PayerTotal int `json:"payer_total"`
  121. // PayerRefund 用户退款金额 退款给用户的金额,不包含所有优惠券金额
  122. PayerRefund int `json:"payer_refund"`
  123. }
  124. // PayRefundInfoV3 微信支付 V3 退款通知订单信息
  125. type PayRefundInfoV3 struct {
  126. // MchID 直连商户号 直连商户的商户号,由微信支付生成并下发
  127. MchID string `json:"mchid"`
  128. // 商户订单号
  129. OutTradeNo string `json:"out_trade_no"`
  130. // 微信支付订单号
  131. TransactionID string `json:"transaction_id"`
  132. // 商户退款单号
  133. OutRefundNo string `json:"out_refund_no"`
  134. // 微信支付退款单号
  135. RefundID string `json:"refund_id"`
  136. // 退款状态,枚举值:
  137. // SUCCESS:退款成功
  138. // CLOSED:退款关闭
  139. // ABNORMAL:退款异常
  140. RefundStatus string `json:"refund_status"`
  141. // 退款成功时间
  142. // 1、退款成功时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日13点29分35秒。
  143. // 2、当退款状态为退款成功时返回此参数
  144. SuccessTime string `json:"success_time"`
  145. // 退款入账账户 取当前退款单的退款入账方。
  146. // 1、退回银行卡:{银行名称}{卡类型}{卡尾号}
  147. // 2、退回支付用户零钱: 支付用户零钱
  148. // 3、退还商户: 商户基本账户、商户结算银行账户
  149. // 4、退回支付用户零钱通:支付用户零钱通
  150. UserReceivedAccount string `json:"user_received_account"`
  151. // 金额信息
  152. Amount PayRefundAmountV3 `json:"amount"`
  153. }
  154. // PayScoreParkingNotifyV3Result 微信支付分停车 状态变更通知
  155. type PayScoreParkingNotifyV3Result struct {
  156. // 调用接口提交的商户号
  157. MchID string `json:"sp_mchid"`
  158. // 调用接口提交的子商户号
  159. SubMchID string `json:"sub_mchid"`
  160. // 车主服务为商户分配的入场ID
  161. ParkingID string `json:"parking_id"`
  162. // 商户侧入场标识ID,在同一个商户号下唯一
  163. OutParkingNo string `json:"out_parking_no"`
  164. // 车牌号,仅包括省份+车牌,不包括特殊字符。
  165. PlateNumber string `json:"plate_number"`
  166. // 车牌颜色,枚举值:
  167. // BLUE:蓝色
  168. // GREEN:绿色
  169. // YELLOW:黄色
  170. // BLACK:黑色
  171. // WHITE:白色
  172. // LIMEGREEN:黄绿色
  173. PlateColor string `json:"plate_color"`
  174. // 入场时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。
  175. StartTime time.Time `json:"start_time"`
  176. // 所在停车位车场的名称
  177. ParkingName string `json:"parking_name"`
  178. // 停车场的免费停车时长
  179. FreeDuration int `json:"free_duration"`
  180. // 本次入场车牌的服务状态
  181. // NORMAL:正常状态,可以使用车主服务
  182. // BLOCKED:不可用状态,暂时不可以使用车主服务
  183. ParkingState string `json:"parking_state"`
  184. // 不可用服务状态描述,返回车牌状态为BLOCKED,会返回该字段,描述具体BLOCKED的原因,
  185. // PAUSE:已暂停车主服务;
  186. // OVERDUE:已授权签约但欠费,不能提供服务,商户提示用户进行还款,
  187. // REMOVE:用户移除车牌导致车牌不可用。请跳转到授权/开通接口。
  188. BlockedStateDescription string `json:"blocked_state_description"`
  189. // 状态变更的发生时间(毫秒级),遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。
  190. StateUpdateTime time.Time `json:"state_update_time"`
  191. }