JAVA微信转发好友和朋友圈

首创

public class WxConfigUtil {

    // 获取access_token的接口地址(GET)
    public final static String access_token_url = "**********";
    // 获取jsapi_ticket的接口地址(GET)
    public final static String jsapi_ticket_url = "***********";
    // 缓存添加的时间
    public static String cacheAddTime = "";
    // token,ticket缓存
    public static Map<String, Token> TOKEN_TICKET_CACHE = new HashMap<String, Token>();
    // token对应的key
    private static final String TOKEN = "token";
    // ticket对应的key
    private static final String TICKET = "ticket";

    /**
     * 外部获取签名入口类
     *
     * @param appUrl 应用的url
     * @return
     */
    public static Map<String, Object> getSignature(String appUrl) {
        String appId="********";
        String secret="*******";
        // 生成签名的随机串
        String noncestr = create_nonce_str();
        if (appUrl == null || "".equals( appUrl )) {
            return null;
        }
        String signature = null;
        //获得Token
        Token accessTocken = getToken( appId, secret, System.currentTimeMillis() / 1000 );
        Token accessTicket = getTicket( accessTocken.getToken(), System.currentTimeMillis() / 1000 );
        signature = signature( accessTicket.getTicket(), cacheAddTime, noncestr, appUrl );

        Map<String, Object> map = new HashMap<>();
        map.put( "appId", appId );
        map.put( "timestamp", cacheAddTime );
        map.put( "nonceStr", noncestr );
        map.put( "signature", signature );
        return map;
    }
    private static String create_nonce_str() {
        return UUID.randomUUID().toString();
    }
    /**
     * 签名
     *
     * @param timestamp
     * @return
     */
    private static String signature(String jsapi_ticket, String timestamp, String noncestr, String url) {
        jsapi_ticket = "jsapi_ticket=" + jsapi_ticket;
        timestamp = "timestamp=" + timestamp;
        noncestr = "noncestr=" + noncestr;
        url = "url=" + url;
        String[] arr = new String[]{jsapi_ticket, noncestr, timestamp, url};
        Arrays.sort( arr );
        StringBuilder content = new StringBuilder();
        for (int i = 0; i < arr.length; i++) {
            content.append( arr[i] );
            if (i != arr.length - 1) {
                content.append( "&" );
            }
        }
        MessageDigest md = null;
        String tmpStr = null;
        try {
            md = MessageDigest.getInstance( "SHA-1" );
   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值