『壹』 如何使用微信sdk java版
1.首先我們新建一個Java開發包WeiXinSDK
2.包路徑:com.ansitech.weixin.sdk
測試的前提條件:
假如我的公眾賬號微信號為:vzhanqun
我的伺服器地址為:http://www.vzhanqun.com/
下面我們需要新建一個URL的請求地址
我們新建一個Servlet來驗證URL的真實性,具體介面參考
http://mp.weixin.qq.com/wiki/index.php?title=接入指南
3.新建com.ansitech.weixin.sdk.WeixinUrlFilter.java
這里我們主要是獲取微信伺服器法師的驗證信息,具體驗證代碼如下
[java] view plain 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 {
//這個Token是給微信開發者接入時填的
//可以是任意英文字母或數字,長度為3-32字元
private static String Token = "vzhanqun1234567890";
@Override
public void init(FilterConfig config) throws ServletException {
System.out.println("WeixinUrlFilter啟動成功!");
}
@Override
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
//微信伺服器將發送GET請求到填寫的URL上,這里需要判定是否為GET請求
boolean isGet = request.getMethod().toLowerCase().equals("get");
System.out.println("獲得微信請求:" + request.getMethod() + " 方式");
if (isGet) {
//驗證URL真實性
String signature = request.getParameter("signature");// 微信加密簽名
String timestamp = request.getParameter("timestamp");// 時間戳
String nonce = request.getParameter("nonce");// 隨機數
String echostr = request.getParameter("echostr");//隨機字元串
List<String> params = new ArrayList<String>();
params.add(Token);
params.add(timestamp);
params.add(nonce);
//1. 將token、timestamp、nonce三個參數進行字典序排序
Collections.sort(params, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.compareTo(o2);
}
});
//2. 將三個參數字元串拼接成一個字元串進行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() {
}
}
好了,不過這里有個SHA1演算法,我這里也把SHA1演算法的源碼給貼出來吧!
4.新建com.ansitech.weixin.sdk.util.SHA1.java
[java] view plain print?
/*
* 微信公眾平台(JAVA) SDK
*
* Copyright (c) 2014, Ansitech Network Technology Co.,Ltd All rights reserved.
* http://www.ansitech.com/weixin/sdk/
*
* 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 of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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;
/**
* <p>Title: SHA1演算法</p>
*
* @author qsyang<[email protected]>
*/
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);
// 把密文轉換成十六進制的字元串形式
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.把這個Servlet配置到web.xml中
[html] view plain print?
<filter>
<description>微信消息接入介面</description>
<filter-name>WeixinUrlFilter</filter-name>
<filter-class>com.ansitech.weixin.sdk.WeixinUrlFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>WeixinUrlFilter</filter-name>
<url-pattern>/api/vzhanqun</url-pattern>
</filter-mapping>
好了,接入的開發代碼已經完成。
6.下面就把地址URL和密鑰Token填入到微信申請成為開發者模式中吧。
『貳』 微信公眾平台發送客服消息基於java怎麼實現,求具體代碼謝謝
這個代碼可能比較多。。看微信公眾平台的api,裡面寫的很清楚,其實就是一個http請求,加上指定的報文就可以了,用java寫還比較簡單的。。
『叄』 如何使用jsp開發微信公眾平台,或者使用java語言開發公眾平台
一句話 按照微信的規定開發:網路微信公眾號開API ; 申請伺服器 ; 申請公眾號 ;綁定 ,開通許可權等 ;我們一直在用 jsp 、java開發。
『肆』 java有哪些免費的開放api平台類似安卓的聚合數據平台。想找一些有趣的介面開發微信公眾號
網路 api store 裡面有介面 有免費的
公眾號 安卓巴士 android開發者門戶
『伍』 微信公眾平台,開發者配置,「請求URL超時」問題解決
在進行微信公眾平台,開發配置時,出現一系列問題,在此記錄,與網友共享:
1.伺服器配置,需要填寫url,但不知該如何填寫,後經查閱,得知,所填url必須為可訪問的介面,於是重新按網友提供的思路,整理介面如下,一共兩個類文件:
package com.**.**.wxgzh.controller;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.jubao.dling.wxgzh.utils.CheckUtil;
import io.swagger.annotations.Api;
@RestController
@RequestMapping(value="/wxgzh")
@Api(description="微信公眾號操作")
public class WeiXinController {
@RequestMapping(value="/getWxInform",method=RequestMethod.GET)
@ResponseBody
public String getWeiXinMethod(HttpServletRequest request) throws IOException{
String signature = request.getParameter("signature");
String timestamp = request.getParameter("timestamp");
String nonce = request.getParameter("nonce");
String echostr = request.getParameter("echostr");
if(CheckUtil.checkSignature(signature, timestamp, nonce)){
return echostr;
}
return "error";
}
}
package com.**.**.wxgzh.utils;
import java.security.MessageDigest;
import java.util.Arrays;
public class CheckUtil {
private static final String token = "yuliusa2018";
public static boolean checkSignature(String signature,String timestamp,String nonce){
String[] arr = new String[]{token,timestamp,nonce}; //排序 Arrays.sort(arr);
//生成字元串
StringBuffer content = new StringBuffer();
for(int i=0;i>> 4 & 0xf];
buf[k++] = hexDigits[byte0 & 0xf];
}
return new String(buf);
} catch (Exception e) {
return null;
}
}
}
2.回到公眾號平台,進行配置,注意token隨便寫,但必須和介面中定義的token保持一致
3.點擊提交,出現【系統錯誤,請稍後重試】
對上錯誤進行排查,最終把埠號443去掉,然後在提交,居然又出現「請求URL超時」,如下:
查閱網上的各種方案都沒解決,後看到有網友說可能是伺服器配置低,於是換了台伺服器,竟然提交成功了。
以上記錄是自己開發過程中的問題總結,也希望能幫助他人。
『陸』 如何實現java程序與微信公眾平台之間實現消息推送
java程序與微信公眾平台之間實現消息推送方法:『柒』 微信API是什麼意思
微信api即為公眾平台消息介面為開發者提供了一種新的消息處理方式。
微信公眾平台消息介面為開發者提供了一種新的消息處理方式。微信公眾平台消息介面為開發者提供與用戶進行消息交互的能力。對於成功接入消息介面的微信公眾賬號,當用戶發消息給公眾號,微信公眾平台伺服器會使用http請求對接入的網址進行消息推送,第三方伺服器可通過響應包回復特定結構,從而達到回復消息的目的。
『捌』 《微信公眾平台應用開發方法、技巧與案例》epub下載在線閱讀,求百度網盤雲資源
《微信公眾平台應用開發》(柳峰)電子書網盤下載免費在線閱讀
鏈接:https://pan..com/s/1IqH140HJQ10-TTXZWwRvPQ
書名:微信公眾平台應用開發
作者:柳峰
豆瓣評分:5.9
出版社:機械工業出版社
出版年份:2014-3
頁數:319
內容簡介:
本書是目前微信公眾平台應用開發領域內容最全面、系統和深入的一本書,也是技術版本最新的。由著名的資深微信公眾平台應用開發工程師根據最新的微信5.1版撰寫,全面解讀了微信公眾平台開放的所有API的各項功能和用法,系統講解了微信公眾平台應用開發的流程、方法和技巧。更為重要的是,它還深入講解了微信公眾平台應用開發的高級技術和技巧,如何與LBS等多種技術結合使用,如何調用其他第三方的數據和資源,等等。實戰性非常強,包含大量小案例和3個有代表性的綜合案例。
全書共11章,分為四個部分:第一部分(第1~2章)介紹了公眾平台的使用、公眾賬號的認證、編輯模式的使用等基礎知識;第二部分(第3~4章)首先講解了如何啟用開發模式,然後詳細講解了公眾平台的消息介面(包括請求校驗、請求消息、事件推送和響應消息),包含一個能夠接收與響應任何類型消息的項目,讀者可以將該項目導出成WAR包,作為公眾平台的基礎開發包(適用於訂閱號和服務號),在開發公眾賬號時,只需要關注業務邏輯;第三部分(第5~6章)重點介紹了公眾平台的自定義菜單介面和高級介面,並配有完整的介面調用示例和說明,讀者可以將這部分的介面調用代碼作為公眾平台的高級開發包;第四部分(第7~11章)首先總結了一些實用的公眾平台開發技巧,如使用表情、識別微信瀏覽器、圖文消息使用、公眾賬號無響應處理、服務多個賬號等,然後逐步詳細地講解了「周邊搜索」、「猜數字」(游戲)和「聊天機器人」3個綜合案例的開發過程,其中還包含如何與其他技術的結合使用及如何調用第三方的數據和資源,學習完本部分,讀者完全有能力勝任大型企業公眾賬號的開發。附錄為公眾平台介面的返回碼說明,以及公眾平台介面的調用次數限制說明。
作者簡介:
劉運強,網名「柳峰」,資深微信公眾平台應用開發工程師,國內微信公眾平台應用開發的先驅之一,項目經驗豐富。他還是一位資深的Java軟體開發工程師和Android/iOS移動應用開發工程師,活躍於CocoaChina、OSChina、CSDN等社區,並在CSDN博客撰寫了系列微信公眾平台二次開發的教程,深受歡迎並被廣泛傳播,也因此獲得CSDN博客移動開發版塊的「博客冠軍」。
『玖』 微信公眾號開發之模板消息
歡迎留言、轉發
微信極速開發系列文章: 點擊這里
此文來聊聊微信中的業務通知----微信模板消息
其實這個問題很簡單,在 【微信公眾平台】 現在已經可以直接查看 自己 的公眾號都能使用那些介面。
登錄 【微信公眾平台】 進入首頁>添加插件功能>找到模板消息按照指引流程操作即可。
關於使用規則,請注意:
1、所有服務號都可以在功能->添加功能插件處看到申請模板消息功能的入口,但只有認證後的服務號才可以申請模板消息的使用許可權並獲得該許可權;
2、需要選擇公眾賬號服務所處的2個行業,每月可更改1次所選行業;
3、在所選擇行業的模板庫中選用已有的模板進行調用;
4、每個賬號可以同時使用25個模板。
5、當前每個賬號的模板消息的日調用上限為10萬次,單個模板沒有特殊限制。【2014年11月18日將介面調用頻率從默認的日1萬次提升為日10萬次,可在MP登錄後的開發者中心查看】。當賬號粉絲數超過10W/100W/1000W時,模板消息的日調用上限會相應提升,以公眾號MP後台開發者中心頁面中標明的數字為准。
按照上文 添加模板消息插件 之後 【微信公眾平台】 首頁左側欄就會出現 模板消息 菜單,收取點擊進去需要同意協議並設置公眾賬號服務所處的2個行業。
以上設置好了就可以通過關鍵詞查模板庫中已有的模板,如果沒有找到可以自己申請。
找到合適的模板消息點擊詳情,進去查看模板詳情,如果需要添加即可。添加完成會在我的模板中生成模板消息的 模板ID , 模板ID 在後面會用到。
com.javen.weixin.controller.WeixinMsgController.java
官方參考文檔 具體實現 com.jfinal.weixin.sdk.api.TemplateMsgApi.java
json數據的封裝
com.jfinal.weixin.sdk.api.TemplateData.java
『拾』 一個java後台網站如何給微信公眾號(android)做api
應該是公眾號上自定義菜單的介面吧。根據菜單需求提供對應的介面就行了。