package com.yonge.cooleshow.auth.middleware.wechat;

import com.microsvc.toolkit.middleware.wechat.WxMpBaseService;
import me.chanjar.weixin.common.error.WxErrorException;

/**
 * Created by Eric.Shang on 2/3/17.
 */
public interface MWxMpService extends WxMpBaseService {

    /**
     * 校验公众号签名
     * @param appid 公众号标识
     * @param timestamp 时间戳
     * @param nonce 随机数
     * @param signature 签名
     * @return boolean
     */
    boolean checkWxMpSignature(String appid, String timestamp, String nonce, String signature);

    /**
     * 校验小程序签名
     * @param appid 公众号标识
     * @param timestamp 时间戳
     * @param nonce 随机数
     * @param signature 签名
     * @return boolean
     */
    boolean checkWxMaSignature(String appid, String timestamp, String nonce, String signature);

    /**
     * 构造oauth2授权的url连接, 网页授权获取用户基本信息
     * @param appid 公众号标识
     * @param scope 授权类型
     * @param state 状态
     * @param redirectURI 用户授权完成后的重定向链接，无需urlencode, 方法内会进行encode
     * @return String
     */
    String oauth2buildAuthorizationUrl(String appid, String redirectURI, String scope, String state);

    /**
     * 用code网页授权获取用户基本信息
     * @param appid 公众号标识
     * @param code 授权code
     * @return String
     * @throws WxErrorException WxErrorException
     */
    String getOAuth2OpenId(String appid, String code) throws WxErrorException;

}
