package com.hzs.third.pay.util;

import lombok.extern.slf4j.Slf4j;

/**
 * 微信操作工具
 */
@Slf4j
public class WeChatUtil {

    /**
     * 微信返回errorCode处理
     *
     * @param errorCode 错误编号
     * @return
     */
    public static String handErrorCode(Integer errorCode) {
        // 调用失败处理（https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/login/auth.code2Session.html）
        if (null == errorCode || 0 == errorCode) {
            // 请求成功
            return null;
        } else if (-1 == errorCode) {
            // 系统繁忙，此时请开发者稍候再试
            log.error("WeChat 请求异常 errorCode: {} ! msg: {}", errorCode, "系统繁忙，此时请开发者稍候再试");
            return "调用微信超时，请重试";
        } else if (40029 == errorCode) {
            // code 无效
            log.error("WeChat 请求异常 errorCode: {} ! msg: {}", errorCode, "code 无效");
            return "微信授权已失效，请重试";
        } else if (45011 == errorCode) {
            // 频率限制，每个用户每分钟100次
            log.error("WeChat 请求异常 errorCode: {} ! msg: {}", errorCode, "频率限制，每个用户每分钟100次");
            return "调用微信超时，请重试";
        } else if (40226 == errorCode) {
            // 高风险等级用户，小程序登录拦截
            log.error("WeChat 请求异常 errorCode: {} ! msg: {}", errorCode, "高风险等级用户，小程序登录拦截");
            return "用户账号存在风险，暂时无法访问";
        } else if (40163 == errorCode) {
            // 临时登录凭证重复使用
            log.error("WeChat 请求异常 errorCode: {} ! msg: {}", errorCode, "临时登录凭证重复使用");
            return "登录凭证重复使用";
        }
        log.error("WeChat 请求异常 errorCode: {} !", errorCode);
        return "调用微信超时，请重试";
    }

}
