constants.py 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336
  1. # -*- coding: utf-8 -*-
  2. from __future__ import absolute_import, unicode_literals
  3. from enum import Enum, IntEnum, unique
  4. @unique
  5. class UserFormInfoFlag(Enum):
  6. """ 微信卡券会员卡格式化的选项类型 """
  7. MOBILE = 'USER_FORM_INFO_FLAG_MOBILE' # 手机号
  8. SEX = 'USER_FORM_INFO_FLAG_SEX' # 性别
  9. NAME = 'USER_FORM_INFO_FLAG_NAME' # 姓名
  10. BIRTHDAY = 'USER_FORM_INFO_FLAG_BIRTHDAY' # 生日
  11. IDCARD = 'USER_FORM_INFO_FLAG_IDCARD' # 身份证
  12. EMAIL = 'USER_FORM_INFO_FLAG_EMAIL' # 邮箱
  13. LOCATION = 'USER_FORM_INFO_FLAG_LOCATION' # 详细地址
  14. EDUCATION_BACKGRO = 'USER_FORM_INFO_FLAG_EDUCATION_BACKGRO' # 教育背景
  15. INDUSTRY = 'USER_FORM_INFO_FLAG_INDUSTRY' # 行业
  16. INCOME = 'USER_FORM_INFO_FLAG_INCOME' # 收入
  17. HABIT = 'USER_FORM_INFO_FLAG_HABIT' # 兴趣爱好
  18. @unique
  19. class ReimburseStatus(Enum):
  20. """ 发票报销状态 """
  21. INIT = 'INVOICE_REIMBURSE_INIT' # 初始状态,未锁定,可提交报销
  22. LOCK = 'INVOICE_REIMBURSE_LOCK' # 已锁定,无法重复提交报销
  23. CLOSURE = 'INVOICE_REIMBURSE_CLOSURE' # 已核销,从用户卡包中移除
  24. @unique
  25. class WeChatErrorCode(IntEnum):
  26. MY_ERROR_SIGNATURE = -101
  27. MY_VALID_ERROR = -102
  28. MY_INVALID_PARAMETER = -103
  29. MY_SYSTEM_ERROR = -1000
  30. """
  31. 微信接口返回码,全局返回码请参考 https://mp.weixin.qq.com/wiki?id=mp1433747234
  32. """
  33. # 系统繁忙 此时请开发者稍候再试
  34. SYSTEM_BUSY = -1
  35. # 请求成功
  36. SUCCESS = 0
  37. # AppSecret 错误,或是 Access Token 无效 请开发者认真比对AppSecret的正确性,或查看是否正在为恰当的公众号调用接口
  38. # 也有说微信问题, 这种情况下重新调用一次接口可能会解决问题
  39. INVALID_CREDENTIAL = 40001
  40. # 错误的凭证类型
  41. INVALID_CREDENTIAL_TYPE = 40002
  42. # 错误的 OpenID
  43. # 请开发者确认 OpenID 是否已关注公众号,或是否是其他公众号的 OpenID
  44. INVALID_OPENID = 40003
  45. # 不支持的媒体文件类型
  46. INVALID_MEDIA_TYPE = 40004
  47. # 不支持的文件类型
  48. INVALID_FILE_TYPE = 40005
  49. # 不支持的文件大小
  50. INVALID_FILE_SIZE = 40006
  51. # 错误的 MediaID
  52. INVALID_MEDIA_ID = 40007
  53. # 错误的消息类型
  54. INVALID_MESSAGE_TYPE = 40008
  55. # 不支持的图片大小
  56. # 图片格式不对有时也会报这个错
  57. INVALID_IMAGE_SIZE = 40009
  58. # 不支持的语音文件大小
  59. INVALID_VOICE_SIZE = 40010
  60. # 不支持的视频文件大小
  61. INVALID_VIDEO_SIZE = 40011
  62. # 不支持的缩略图大小
  63. INVALID_THUMB_SIZE = 40012
  64. # 错误的 AppID
  65. # 目前 AppID 格式都是 /^wx\d{16}$/
  66. INVALID_APP_ID = 40013
  67. # 不合法的 Access Token
  68. # 请开发者认真比对 Access Token 的有效性(如是否过期),或查看是否正在为恰当的公众号调用接口
  69. INVALID_ACCESS_TOKEN = 40014
  70. # 错误的按钮类型
  71. INVALID_BUTTON_TYPE = 40015
  72. # 不支持的主菜单按钮个数
  73. # 微信自定义菜单按钮个数应该在 1~3 个之间
  74. INVALID_BUTTON_SIZE = 40016
  75. # 不支持的子菜单按钮个数
  76. # 微信自定义子菜单按钮个数应该在 1~5 个之间
  77. INVALID_SUB_BUTTON_SIZE = 40017
  78. # 不支持的按钮名字长度
  79. INVALID_BUTTON_NAME_SIZE = 40018
  80. # 不支持的按钮 key 长度
  81. INVALID_BUTTON_KEY_SIZE = 40019
  82. # 不支持的按钮 url 长度
  83. INVALID_BUTTON_URL_SIZE = 40020
  84. # 不合法的菜单版本号
  85. INVALID_MENU_VERSION = 40021
  86. # 不合法的子菜单级数
  87. INVALID_SUB_BUTTON_LEVEL = 40022
  88. # 不合法的子菜单按钮个数
  89. INVALID_SUB_BUTTON_COUNT = 40023
  90. # 不合法的子菜单按钮类型
  91. INVALID_SUB_BUTTON_TYPE = 40024
  92. # 不合法的子菜单按钮名字长度
  93. INVALID_SUB_BUTTON_NAME_SIZE = 40025
  94. # 不合法的子菜单按钮 key 长度
  95. INVALID_SUB_BUTTON_KEY_SIZE = 40026
  96. # 不合法的子菜单按钮 url 长度
  97. INVALID_SUB_BUTTON_URL_SIZE = 40027
  98. # 不合法的自定义菜单使用用户
  99. INVALID_MENU_USER = 40028
  100. # 错误的 OAuth Code
  101. INVALID_OAUTH_CODE = 40029
  102. # 错误的 Refresh Token
  103. INVALID_REFRESH_TOKEN = 40030
  104. # 错误的 OpenID 列表
  105. INVALID_OPENID_LIST = 40031
  106. # 错误的 OpenID 列表长度
  107. # 列表内最多10000个 OpenID
  108. INVALID_OPENID_LIST_SIZE = 40032
  109. # 不支持的请求字符
  110. # 不能包含 \uxxxx 格式的字符
  111. INVALID_REQUEST_CHARSET = 40033
  112. # 不合法的参数
  113. INVALID_PARAMETER = 40035
  114. # 错误的模板消息 ID
  115. # Template ID 失效了,请重新刷新一次 Template ID
  116. INVALID_TEMPLATE = 40037
  117. # 不合法的请求格式
  118. INVALID_REQUEST_FORMAT = 40038
  119. # 不合法的 url 长度
  120. INVALID_URL_SIZE = 40039
  121. # 不合法的分组 ID
  122. INVALID_GROUP_ID = 40050
  123. # 不合法的分组名字
  124. INVALID_GROUP_NAME = 40051
  125. # 不支持的操作
  126. # 可能是该公众号已经申请完了十万个二维码
  127. INVALID_ACTION_INFO = 40053
  128. # 自定义菜单的按钮里,网址有误
  129. INVALID_BUTTON_DOMAIN = 40054
  130. # 自定义子菜单的按钮里,网址有误
  131. INVALID_SUB_BUTTON_DOMAIN = 40055
  132. # 错误的图文消息 ID
  133. INVALID_ARTICLE_ID = 40060
  134. # 错误的行业号
  135. # 有一些模板消息只会在特定的行业下申请
  136. INVALID_INDUSTRY_ID = 40102
  137. # 不支持的 MediaID 长度
  138. INVALID_MEDIA_ID_SIZE = 40118
  139. # 不支持的 MediaID 类型
  140. INVALID_MEDIA_ID_TYPE = 40121
  141. # 缺少 Access Token 参数
  142. MISSING_ACCESS_TOKEN = 41001
  143. # 缺少 AppID 参数
  144. MISSING_APP_ID = 41002
  145. # 缺少 Refresh Token 参数
  146. MISSING_REFRESH_TOKEN = 41003
  147. # 缺少 AppSecret 参数
  148. MISSING_APP_SECRET = 41004
  149. # 缺少多媒体文件数据
  150. MISSING_MEDIA_DATA = 41005
  151. # 缺少 MediaID 参数
  152. MISSING_MEDIA_ID = 41006
  153. # 缺少子菜单数据
  154. MISSING_SUB_BUTTONS = 41007
  155. # 缺少 OAuth Code
  156. MISSING_OAUTH_CODE = 41008
  157. # 缺少 OpenID
  158. MISSING_OPENID = 41009
  159. # Access Token 已失效 请检查 Access Token 的有效期,重新刷新 Access Token
  160. EXPIRED_ACCESS_TOKEN = 42001
  161. # Refresh Token 已失效
  162. EXPIRED_REFRESH_TOKEN = 42002
  163. # OAuth Code 已失效
  164. EXPIRED_OAUTH_CODE = 42003
  165. # 授权已失效 用户修改微信密码,Access Token, Refresh Token 均已失效,需要重新授权
  166. EXPIRED_AUTHORIZATION = 42007
  167. # 需要 Get 请求
  168. REQUIRE_GET = 43001
  169. # 需要 Post 请求
  170. REQUIRE_POST = 43002
  171. # 需要 Https 请求
  172. REQUIRE_HTTPS = 43003
  173. # 用户没有关注公众号
  174. REQUIRE_SUBSCRIBE = 43004
  175. # 用户被拉黑
  176. # 需要公众号把该用户从黑名单里移除
  177. REQUIRE_UNBLOCK_USER = 43019
  178. # 超过了更换行业的限制
  179. # 一个月最多换一次
  180. OUT_OF_CHANGE_INDUSTRY_LIMIT = 43100
  181. # 多媒体文件大小超过限制
  182. # 最大允许 1MB
  183. OUT_OF_MEDIA_SIZE_LIMIT = 45001
  184. # 消息内容超过限制
  185. OUT_OF_CONTENT_SIZE_LIMIT = 45002
  186. # 标题长度超过限制
  187. # 最长允许 64 字符长度
  188. OUT_OF_TITLE_SIZE_LIMIT = 45003
  189. # 描述字段超过限制
  190. OUT_OF_DESCRIPTION_SIZE_LIMIT = 45004
  191. # 链接字段超过限制
  192. OUT_OF_URL_SIZE_LIMIT = 45005
  193. # 图片链接字段超过限制
  194. OUT_OF_PIC_URL_SIZE_LIMIT = 45006
  195. # 语音播放时间超过限制
  196. # 最长允许 60 秒
  197. OUT_OF_VOICE_TIME_LIMIT = 45007
  198. # 图文消息数量超过限制
  199. # 最多 10 条图文消息
  200. OUT_OF_ARTICLE_SIZE_LIMIT = 45008
  201. # 接口调用超过限制
  202. OUT_OF_API_LIMIT = 45009
  203. # 接口调用超过频率限制
  204. OUT_OF_API_FREQ_LIMIT = 45011
  205. # 回复时间超过限制
  206. # 接受推送后,5 秒内未被动响应。或者是用户与公众号 48 小时无互动后,调用客服接口主动推送消息。
  207. OUT_OF_RESPONSE_TIME_LIMIT = 45015
  208. # 模板消息数量超过限制
  209. OUT_OF_TEMPLATE_SIZE_LIMIT = 45026
  210. # 模板消息与行业信息冲突
  211. TEMPLATE_CONFLICT_WITH_INDUSTRY = 45027
  212. # 不支持的图文消息内容
  213. # 请确认 content 里没有超链接标签
  214. INVALID_CONTENT = 45166
  215. # API 功能未授权
  216. # 请确认公众号已获得该接口,可以在公众平台官网-开发者中心页中查看接口权限
  217. UNAUTHORIZED_API = 48001
  218. # 用户拒收公众号消息
  219. # (在公众号选项中,关闭了“接收消息”)
  220. USER_BLOCK_MESSAGE = 48002
  221. # 公众号管理员没有同意微信群发协议
  222. # 请登录公众号后台点一下同意
  223. USER_NOT_AGREE_PROTOCOL = 48003
  224. # API 接口被封禁
  225. # 请登录公众号后台查看详情
  226. API_BANNED = 48004
  227. # API 禁止删除被自动回复和自定义菜单引用的素材
  228. API_DELETE_PROHIBITED = 48005
  229. # API 清零次数失败,因为清零次数达到上限
  230. OUT_OF_RESET_LIMIT = 48006
  231. # 公众号未授权给开放平台
  232. UNAUTHORIZED_COMPONENT = 61003
  233. # 公众号未授权该 API 给开放平台
  234. UNAUTHORIZED_COMPONENT_API = 61007
  235. # 错误的开放平台 Refresh Token
  236. INVALID_COMPONENT_REFRESH_TOKEN = 61023
  237. # 系统错误
  238. SYSTEM_ERROR = 61450