真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

微信認(rèn)證java代碼 微信授權(quán)登錄java代碼

怎么用java代碼把imei和uin取得微信數(shù)據(jù)庫(kù)加密方法密碼

這還真是第一次寫java程序。其實(shí),一直是對(duì)java有偏見的。無奈,從BlackFeather那里知道了微信數(shù)據(jù)庫(kù)加密方法,以及密碼的獲取方式。

公司主營(yíng)業(yè)務(wù):成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出井陘免費(fèi)做網(wǎng)站回饋大家。

發(fā)現(xiàn)是基于hashmap的,本來吧,還是想用C或者其他語言來實(shí)現(xiàn)對(duì)hashmap的讀取,可后來都失敗了。要么就是太復(fù)雜了。于是,還是硬著頭皮去把jdk裝好,然后~~~開始各種百度。

先用反編譯出來的代碼搭了個(gè)大體的輪廓。然后,自己各種加代碼(考慮到一些問題,還是只貼出一些關(guān)鍵代碼吧):

加密方式是:hash(imeiuin).substring(0,7)

public static void main(String[] args)

{

try

{

ObjectInputStream in = new ObjectInputStream(new FileInputStream(args[0]));

Object DL = in.readObject();

HashMap hashWithOutFormat = (HashMap)DL;

ObjectInputStream in1 = new ObjectInputStream(new FileInputStream(args[1]));

Object DJ = in1.readObject();

HashMap hashWithOutFormat1 = (HashMap)DJ;

String s = String.valueOf(hashWithOutFormat1.get(Integer.valueOf(258))); //取IMEI

s=s+hashWithOutFormat.get(Integer.valueOf(1));//

s=encode(s);//hash

System.out.println("The Key is : "+s.substring(0,7));

in.close();

in1.close();

}

}

用Java怎么實(shí)現(xiàn)微信支付?

具體方法步驟:

一、準(zhǔn)備階段:已認(rèn)證微信號(hào),且通過微信支付認(rèn)證,這個(gè)可以看微信文檔,很詳細(xì),這里就不再重復(fù)。

二、配置授權(quán)目錄,官方推薦使用https類型的url,不知道http能不能行,個(gè)人也推薦使用https的保證不會(huì)錯(cuò)。

配置授權(quán)域名

三、微信支付二次開發(fā)所需要的參數(shù):

APP_ID,APP_KEY,PARTNER,PARTNER_KEY(AppSecret)

APP_ID和PARTNER_KEY(AppSecret)

PARTNER

APP_KEY(自行設(shè)置32位字符)

四、具體編程

1、通過頁(yè)面跳轉(zhuǎn)到確認(rèn)支付頁(yè)面,其中的redirect_uri必須是配置授權(quán)目錄下的。

2、獲取到openid,再經(jīng)服務(wù)器向微信請(qǐng)求獲取prepay_id,封裝字段并進(jìn)行簽名后通過jsapi調(diào)起微信支付

3、測(cè)試結(jié)果

微信token驗(yàn)證java怎么寫

請(qǐng)閱讀消息接口使用指南,檢查你的接口配置URL+TOKEN或代碼是否出錯(cuò)或者服務(wù)器端口是否為80端口或服務(wù)器是否支持微信公眾平臺(tái)驗(yàn)證(這個(gè)你可以咨詢你的服務(wù)器商)。

如何使用微信sdk java版

1.首先我們新建一個(gè)Java開發(fā)包WeiXinSDK

2.包路徑:com.ansitech.weixin.sdk

測(cè)試的前提條件:

假如我的公眾賬號(hào)微信號(hào)為:vzhanqun

我的服務(wù)器地址為:

下面我們需要新建一個(gè)URL的請(qǐng)求地址

我們新建一個(gè)Servlet來驗(yàn)證URL的真實(shí)性,具體接口參考

接入指南

3.新建com.ansitech.weixin.sdk.WeixinUrlFilter.java

這里我們主要是獲取微信服務(wù)器法師的驗(yàn)證信息,具體驗(yàn)證代碼如下

[java] view plain copy print?

package com.ansitech.weixin.sdk;

import com.ansitech.weixin.sdk.util.SHA1;

import java.io.IOException;

import java.util.ArrayList;

import java.util.Collections;

import java.util.Comparator;

import java.util.List;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class WeixinUrlFilter implements Filter {

//這個(gè)Token是給微信開發(fā)者接入時(shí)填的

//可以是任意英文字母或數(shù)字,長(zhǎng)度為3-32字符

private static String Token = "vzhanqun1234567890";

@Override

public void init(FilterConfig config) throws ServletException {

System.out.println("WeixinUrlFilter啟動(dòng)成功!");

}

@Override

public void doFilter(ServletRequest req, ServletResponse res,

FilterChain chain) throws IOException, ServletException {

HttpServletRequest request = (HttpServletRequest) req;

HttpServletResponse response = (HttpServletResponse) res;

//微信服務(wù)器將發(fā)送GET請(qǐng)求到填寫的URL上,這里需要判定是否為GET請(qǐng)求

boolean isGet = request.getMethod().toLowerCase().equals("get");

System.out.println("獲得微信請(qǐng)求:" + request.getMethod() + " 方式");

if (isGet) {

//驗(yàn)證URL真實(shí)性

String signature = request.getParameter("signature");// 微信加密簽名

String timestamp = request.getParameter("timestamp");// 時(shí)間戳

String nonce = request.getParameter("nonce");// 隨機(jī)數(shù)

String echostr = request.getParameter("echostr");//隨機(jī)字符串

ListString params = new ArrayListString();

params.add(Token);

params.add(timestamp);

params.add(nonce);

//1. 將token、timestamp、nonce三個(gè)參數(shù)進(jìn)行字典序排序

Collections.sort(params, new ComparatorString() {

@Override

public int compare(String o1, String o2) {

return o1.compareTo(o2);

}

});

//2. 將三個(gè)參數(shù)字符串拼接成一個(gè)字符串進(jìn)行sha1加密

String temp = SHA1.encode(params.get(0) + params.get(1) + params.get(2));

if (temp.equals(signature)) {

response.getWriter().write(echostr);

}

} else {

//處理接收消息

}

}

@Override

public void destroy() {

}

}

好了,不過這里有個(gè)SHA1算法,我這里也把SHA1算法的源碼給貼出來吧!

4.新建com.ansitech.weixin.sdk.util.SHA1.java

[java] view plain copy print?

/*

* 微信公眾平臺(tái)(JAVA) SDK

*

* Copyright (c) 2014, Ansitech Network Technology Co.,Ltd All rights reserved.

*

*

* Licensed under the Apache License, Version 2.0 (the "License");

* you may not use this file except in compliance with the License.

* You may obtain a copy of the License at

*

*

*

* Unless required by applicable law or agreed to in writing, software

* distributed under the License is distributed on an "AS IS" BASIS,

* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

* See the License for the specific language governing permissions and

* limitations under the License.

*/

package com.ansitech.weixin.sdk.util;

import java.security.MessageDigest;

/**

* pTitle: SHA1算法/p

*

* @author qsyangyangqisheng274@163.com

*/

public final class SHA1 {

private static final char[] HEX_DIGITS = {'0', '1', '2', '3', '4', '5',

'6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};

/**

* Takes the raw bytes from the digest and formats them correct.

*

* @param bytes the raw bytes from the digest.

* @return the formatted bytes.

*/

private static String getFormattedText(byte[] bytes) {

int len = bytes.length;

StringBuilder buf = new StringBuilder(len * 2);

// 把密文轉(zhuǎn)換成十六進(jìn)制的字符串形式

for (int j = 0; j len; j++) {

buf.append(HEX_DIGITS[(bytes[j] 4) 0x0f]);

buf.append(HEX_DIGITS[bytes[j] 0x0f]);

}

return buf.toString();

}

public static String encode(String str) {

if (str == null) {

return null;

}

try {

MessageDigest messageDigest = MessageDigest.getInstance("SHA1");

messageDigest.update(str.getBytes());

return getFormattedText(messageDigest.digest());

} catch (Exception e) {

throw new RuntimeException(e);

}

}

}

5.把這個(gè)Servlet配置到web.xml中

[html] view plain copy print?

filter

description微信消息接入接口/description

filter-nameWeixinUrlFilter/filter-name

filter-classcom.ansitech.weixin.sdk.WeixinUrlFilter/filter-class

/filter

filter-mapping

filter-nameWeixinUrlFilter/filter-name

url-pattern/api/vzhanqun/url-pattern

/filter-mapping

好了,接入的開發(fā)代碼已經(jīng)完成。

6.下面就把地址URL和密鑰Token填入到微信申請(qǐng)成為開發(fā)者模式中吧。

OAuth2.0網(wǎng)頁(yè)授權(quán)微信怎么用java獲取openid

第一步:用戶同意授權(quán),獲取code 引導(dǎo)用戶進(jìn)入授權(quán)的URL 修改一些參數(shù)

在確保微信公眾賬號(hào)擁有授權(quán)作用域(scope參數(shù))的權(quán)限的前提下(服務(wù)號(hào)獲得高級(jí)接口后,默認(rèn)帶有scope參數(shù)中的snsapi_base和snsapi_userinfo),引導(dǎo)關(guān)注者打開如下頁(yè)面:

第二步:通過code換取網(wǎng)頁(yè)授權(quán)access_token? 這里的access_token與基礎(chǔ)獲取的access_token不同

具體做法與上面基本一致。更換相對(duì)應(yīng)的值。需要注意的是code可以寫一個(gè)Servlet獲取。String code = request.getParameter("code");get/post都可以。

這樣子就會(huì)返回一下json格式數(shù)據(jù)

具體代碼如下。獲取的code換取的access_token

根據(jù)上面代碼獲取的access_token? openid 然后再請(qǐng)求獲取userinfo的接口。就能得到微信用戶的所有信息了。

具體返回如下。獲取用戶信息代碼不再寫。

這就獲取到用戶的openid。應(yīng)用授權(quán)作用域,snsapi_base (不彈出授權(quán)頁(yè)面,直接跳轉(zhuǎn),只能獲取用戶openid),snsapi_userinfo (彈出授權(quán)頁(yè)面,可通過openid拿到昵稱、性別、所在地。并且,即使在未關(guān)注的情況下,只要用戶授權(quán),也能獲取其信息)我自己用的作用域?yàn)閟nsapi_userinfo。用戶點(diǎn)擊跳轉(zhuǎn)頁(yè)面為


分享題目:微信認(rèn)證java代碼 微信授權(quán)登錄java代碼
URL分享:http://weahome.cn/article/dodghoi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部