dev --- 3.8.0.A版本, openProject引用 ; formao-live --- 3.7.0.B 版本, formallProject引用
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

181 line
5.8 KiB

  1. package chanjarster.weixin.api;
  2. import java.io.File;
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import chanjarster.weixin.bean.WxCustomMessage;
  6. import chanjarster.weixin.bean.WxMassGroupMessage;
  7. import chanjarster.weixin.bean.WxMassNews;
  8. import chanjarster.weixin.bean.WxMassOpenIdsMessage;
  9. import chanjarster.weixin.bean.WxMassVideo;
  10. import chanjarster.weixin.bean.WxMenu;
  11. import chanjarster.weixin.bean.result.WxMassUploadResult;
  12. import chanjarster.weixin.bean.result.WxMassSendResult;
  13. import chanjarster.weixin.bean.result.WxMediaUploadResult;
  14. import chanjarster.weixin.exception.WxErrorException;
  15. /**
  16. * 微信API的Service
  17. */
  18. public interface WxService {
  19. /**
  20. * <pre>
  21. * 验证推送过来的消息的正确性
  22. * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=验证消息真实性
  23. * </pre>
  24. * @param timestamp
  25. * @param nonce
  26. * @param signature
  27. * @return
  28. */
  29. public boolean checkSignature(String timestamp, String nonce, String signature);
  30. /**
  31. * <pre>
  32. * 获取access_token,本方法线程安全
  33. * 且在多线程同时刷新时只刷新一次,避免超出2000次/日的调用次数上限
  34. *
  35. * 另:本service的所有方法都会在access_token过期是调用此方法
  36. *
  37. * 程序员在非必要情况下尽量不要主动调用此方法
  38. * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=获取access_token
  39. * </pre>
  40. * @throws WxErrorException
  41. */
  42. public void accessTokenRefresh() throws WxErrorException;
  43. /**
  44. * <pre>
  45. * 上传多媒体文件
  46. *
  47. * 上传的多媒体文件有格式和大小限制,如下:
  48. * 图片(image): 1M,支持JPG格式
  49. * 语音(voice):2M,播放长度不超过60s,支持AMR\MP3格式
  50. * 视频(video):10MB,支持MP4格式
  51. * 缩略图(thumb):64KB,支持JPG格式
  52. *
  53. * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=上传下载多媒体文件
  54. * </pre>
  55. * @param mediaType 媒体类型, 请看{@link WxConsts}
  56. * @param fileType 文件类型,请看{@link WxConsts}
  57. * @param inputStream 输入流
  58. * @throws WxErrorException
  59. */
  60. public WxMediaUploadResult mediaUpload(String mediaType, String fileType, InputStream inputStream) throws WxErrorException, IOException;
  61. /**
  62. * @see #mediaUpload(String, String, InputStream)
  63. * @param mediaType
  64. * @param file
  65. * @throws WxErrorException
  66. */
  67. public WxMediaUploadResult mediaUpload(String mediaType, File file) throws WxErrorException;
  68. /**
  69. * <pre>
  70. * 下载多媒体文件
  71. *
  72. * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=上传下载多媒体文件
  73. * </pre>
  74. * @params media_id
  75. * @return 保存到本地的临时文件
  76. * @throws WxErrorException
  77. */
  78. public File mediaDownload(String media_id) throws WxErrorException;
  79. /**
  80. * <pre>
  81. * 发送客服消息
  82. * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=发送客服消息
  83. * </pre>
  84. * @param message
  85. * @throws WxErrorException
  86. */
  87. public void customMessageSend(WxCustomMessage message) throws WxErrorException;
  88. /**
  89. * <pre>
  90. * 上传群发用的图文消息,上传后才能群发图文消息
  91. *
  92. * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=高级群发接口
  93. * </pre>
  94. * @param news
  95. * @throws WxErrorException
  96. * @see #massGroupMessageSend(WxMassGroupMessage)
  97. * @see #massOpenIdsMessageSend(WxMassOpenIdsMessage)
  98. */
  99. public WxMassUploadResult massNewsUpload(WxMassNews news) throws WxErrorException;
  100. /**
  101. * <pre>
  102. * 上传群发用的视频,上传后才能群发视频消息
  103. * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=高级群发接口
  104. * </pre>
  105. * @return
  106. * @throws WxErrorException
  107. * @see #massGroupMessageSend(WxMassGroupMessage)
  108. * @see #massOpenIdsMessageSend(WxMassOpenIdsMessage)
  109. */
  110. public WxMassUploadResult massVideoUpload(WxMassVideo video) throws WxErrorException;
  111. /**
  112. * <pre>
  113. * 分组群发消息
  114. * 如果发送图文消息,必须先使用 {@link #massNewsUpload(WxMassNews)} 获得media_id,然后再发送
  115. * 如果发送视频消息,必须先使用 {@link #massVideoUpload(WxMassVideo)} 获得media_id,然后再发送
  116. * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=高级群发接口
  117. * </pre>
  118. * @param message
  119. * @throws WxErrorException
  120. * @return
  121. */
  122. public WxMassSendResult massGroupMessageSend(WxMassGroupMessage message) throws WxErrorException;
  123. /**
  124. * <pre>
  125. * 按openId列表群发消息
  126. * 如果发送图文消息,必须先使用 {@link #massNewsUpload(WxMassNews)} 获得media_id,然后再发送
  127. * 如果发送视频消息,必须先使用 {@link #massVideoUpload(WxMassVideo)} 获得media_id,然后再发送
  128. * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=高级群发接口
  129. * </pre>
  130. * @param message
  131. * @return
  132. * @throws WxErrorException
  133. */
  134. public WxMassSendResult massOpenIdsMessageSend(WxMassOpenIdsMessage message) throws WxErrorException;
  135. /**
  136. * <pre>
  137. * 自定义菜单创建接口
  138. * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=自定义菜单创建接口
  139. * </pre>
  140. * @param menu
  141. * @throws WxErrorException
  142. */
  143. public void menuCreate(WxMenu menu) throws WxErrorException;
  144. /**
  145. * <pre>
  146. * 自定义菜单删除接口
  147. * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=自定义菜单删除接口
  148. * </pre>
  149. * @throws WxErrorException
  150. */
  151. public void menuDelete() throws WxErrorException;
  152. /**
  153. * <pre>
  154. * 自定义菜单查询接口
  155. * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=自定义菜单查询接口
  156. * </pre>
  157. * @return
  158. * @throws WxErrorException
  159. */
  160. public WxMenu menuGet() throws WxErrorException;
  161. public void setWxConfigStorage(WxConfigStorage wxConfigProvider);
  162. }