package com.zhentao.service;

import java.util.Map;

/**
 * 微信登录相关服务
 */
public interface WeChatService {
    /**
     * 根据小程序 wx.login 返回的临时 code，调用 jscode2session
     * @param code 临时登录 code
     * @return 包含 openid、session_key、unionid(如有) 的 Map
     */
    Map<String, Object> code2Session(String code);

    /**
     * 使用 session_key 解密手机号（新版可以通过 getPhoneNumber 获取）
     * @param sessionKey 会话密钥
     * @param iv 初始化向量
     * @param encryptedData 加密数据
     * @return 解析后的手机号
     */
    String decryptPhone(String sessionKey, String iv, String encryptedData);

    /**
     * 获取全局 access_token
     */
    String getAccessToken();

    /**
     * 通过新版 getPhoneNumber 返回的 code，调用微信接口获取手机号
     * @param code getPhoneNumber 返回的 one-time code
     * @return 手机号；失败返回 null
     */
    String getUserPhoneByCode(String code);
}