微信“公眾平臺測試賬號”介面接入指南
阿新 • • 發佈:2019-02-07
本文主要講解微信公眾號Struts2框架進行伺服器驗證介面對接。
使用工具:MyEclipse
準備工作:
1.開啟MyEclipse,新建一個Web專案,比如“WXLocalTest”;
2.搭建Strust2框架環境,搭建方式這裡略過,不會的自己學習下Strtus2基礎。
3.準備一個域名或買一個花生殼域名
一、建立一個action類來實現”接入微信公眾平臺開發“
比如新建一個action類 InitWX.java:
package com.xingyun.actions;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.xingyun.utils.SecurityKitUtils;
public class InitWX extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = -333592169745279630L;
private static final String TOKEN="xingyun";
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
// 獲取請求和響應
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
//獲取請求引數
String signature = request.getParameter("signature");
String timestamp = request.getParameter("timestamp");
String nonce = request.getParameter("nonce");
String echostr = request.getParameter("echostr");
//1.構造字串陣列
String[] arr={InitWX.TOKEN,nonce,timestamp};
//2.字串陣列排序
Arrays.sort(arr);
//3.將排序後的三個字串拼接成一個字串
StringBuffer sb=new StringBuffer();
for (String str :arr) {
sb.append(str);
}
String sha1=SecurityKitUtils.sha1(sb.toString());
//System.out.println(sha1.equals(signature));
if(sha1.equals(signature))
{
try {
OutputStream os = response.getOutputStream();
BufferedWriter resBr = new BufferedWriter(new OutputStreamWriter(os));
resBr.write(echostr);
resBr.flush();
resBr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
}
二、建立一個sha1加密演算法工具類
SecurityKitUtils .java
package com.xingyun.utils;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class SecurityKitUtils {
public static String sha1(String str) {
try {
StringBuffer sb=new StringBuffer();
MessageDigest messageDigest=MessageDigest.getInstance("sha1");
messageDigest.update(str.getBytes());
byte[] msg=messageDigest.digest();
for (byte b : msg) {
sb.append(String.format("%02x",b));
}
return sb.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return null;
}
}
三、配置strtust2.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!--配置包時必須指定name屬性,該屬性值可以任意取名,但必須唯一。 -->
<package name="test" extends="struts-default">
<!-- 獲取微信伺服器驗證-->
<action name="WXInit" class="com.xingyun.actions.InitWX">
</action>
</package>
</struts>
四、填寫URL和Token
五、點選提交
當出現提示修改成功和提交按鈕消失,說明配置成功了。
本文由星雲原創,轉載請註明出處!
交流即分享分享才能進步!
——— By 星雲