WeChatService.java 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package com.cyksj.service.wechat;
  2. import com.cyksj.model.dto.*;
  3. import com.cyksj.model.response.WxGzhQrCodeTicketRep;
  4. import com.cyksj.model.wechat.MiniURLLink;
  5. import java.math.BigDecimal;
  6. import java.util.Date;
  7. import java.util.Map;
  8. public interface WeChatService {
  9. String createUrl(String state, String redirectUrl);
  10. String createUrl(String state, String redirectUrl, String appId, String scope);
  11. AuthToken getAuthToken(String code) throws Exception;
  12. AuthToken getAuthToken(String code, String appId) throws Exception;
  13. String getJsTicket() throws Exception;
  14. String getJsTicket(String appId) throws Exception;
  15. GzhOAuth2UserInfo getUserInfo(String accessToken, String openid) throws Exception;
  16. /**
  17. * 通过公众号的access_token 获取用户基本信息
  18. */
  19. GzhUnionidUserinfo getUserInfo2(String accessToken, String openid) throws Exception;
  20. String getAccessToken() throws Exception;
  21. String getAccessToken(String appId) throws Exception;
  22. /**
  23. * 统一订单
  24. *
  25. * @param appid 微信应用唯一id
  26. * @param openid 微信的用户标识
  27. * @param totalFee 订单总金额 单位为分
  28. * @param outTradeNo 订单批次号 一次支付对应一条订单批次号 可以包含多条购物记录(订单)
  29. * @param notifyUrl 通知地址
  30. * /@param attach 传入订单id 在查询API和支付通知中原样返回 用于处理订单
  31. * @return h5调用微信js-sdk必要的参数
  32. */
  33. H5JsPayParams getJsPayParams(String appid, String shopId,String openid, Integer totalFee, String outTradeNo, String notifyUrl, String attach, String body, String tradeType, Date ExpiryTime) throws Exception;
  34. /* 微信签名算法 */
  35. boolean checkSignWithMd5(Map<String, String> map) throws Exception;
  36. boolean checkSignWithMd5(Map<String, String> map, String shopKey) throws Exception;
  37. H5PayParams getH5PayParams(String appid, Integer totalFee, String outTradeNo, String notifyUrl, String attach, String ip, String body) throws Exception;
  38. /**
  39. * 发送模板消息 单对象
  40. *
  41. * @param accessToken WechatCache.getAccessToken()
  42. * @param json 消息json
  43. */
  44. void sendTemplateMessage(String accessToken, String json) throws Exception;
  45. /**
  46. * @param appId 应用id
  47. * @param transactionId 微信支付订单号
  48. * @param outRefundNo 商户退款单号
  49. * @param totalFee 订单金额 单位为分,只能为整数
  50. * @param refundMoney 退款金额
  51. */
  52. void refundWxOrder(String appId, String shopId, String transactionId, String outRefundNo, BigDecimal totalFee, BigDecimal refundMoney, String notifyUrl) throws Exception;
  53. /**
  54. * 获取公众号带参数的临时二维码
  55. * @return
  56. */
  57. WxGzhQrCodeTicketRep getWxGzhQrCode(Long sharedId, Integer dsType, Long popularizeId, String loginPhone, String loginEmail, String dsCode) throws Exception;
  58. /**
  59. * 获取公众号带参数的永久二维码
  60. */
  61. String getNotExpiredWxGzhQrCode(String sceneKey) throws Exception;
  62. /**
  63. * 获取微信订单信息 校验订单是否已支付
  64. */
  65. Map<String, String> getWxOrderDetail(String shopId, String orderNo) throws Exception;
  66. /**
  67. * 获取微信网页授权url
  68. */
  69. String createWxAuthLoginUrl(String state, String appId, String redirectUri);
  70. /**
  71. * 获取跳转微信小程序链接
  72. */
  73. String getMiniURLLink(String accessToken, MiniURLLink miniURLLink) throws Exception;
  74. MiniProgramSession code2Session(String appId, String code) throws Exception;
  75. void getMiniStudentIdentity(String openId, String code) throws Exception;
  76. }