您的位置:首页 > 其它

实习一周的记录

2017-07-14 23:15 218 查看

【简单的微信公众平台开发】

或许是最容易的方式:

1- 做好能够适应手机屏幕的 H5 网页,放在自家的服务器上(用户、支付什么的完全和微信分离

2- 把网址直接填入 自定义菜单 - 跳转网页



3- 没认证的话可以把网址添加到自动回复中去,别人一样可以看到



【短信验证码的简单实现】

请求短信的 URL 为 webapp/reg.do?method=sendSMS

package com.xkfx.service;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.yuke.bean.User;

@SuppressWarnings("serial")
@WebServlet("/reg.do")
public class DoRegisterService extends HttpServlet {

String code = null; // 保存验证码

// 生成随机字符串
public static String getRandomString(int length) { // length 表示生成字符串的长度
String base = "abcdefghijklmnopqrstuvwxyz0123456789";
Random random = new Random();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < length; i++) {
int number = random.nextInt(base.length());
sb.append(base.charAt(number));
}
return sb.toString();
}

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
// 处理 AJAX 请求
String txtMobile = req.getParameter("txtMobile");
if (req.getParameter("method") != null
&& req.getParameter("method").equals("sendSMS")) {
sendSMS(txtMobile, resp); // 生成随机验证码并发送到客户手机
return;
}
String txtPassword = req.getParameter("txtPassword");
boolean flag = (code != null) &&
code.equals(req.getParameter("txtCode"))
&& txtMobile.equals(req.getParameter("txtMobile"))
&& txtPassword != null && !"".equals(txtPassword);
if (flag) {
UserService userService = new UserService();
User user = new User();
user.setUsername(txtMobile);
user.setPassword(txtPassword);
flag = userService.register(user); // 判断用户是否已经注册
if (flag) req.getSession().setAttribute("user", user); // 维护用户信息
}
code = null; // 重置验证码
// 返回 JSON
PrintWriter pw = resp.getWriter();
pw.println("{\"status\": " + (flag ? 1 : 0)
+ ", \"msg\": \"验证码错误或该账号已经注册\"" + ", \"url\": \"/wxapp/user\"}");
pw.close();
}

public void sendSMS(String txtMobile, HttpServletResponse resp) throws IOException {
code = getRandomString(4); // 生成随机验证码
 System.out.println(txtMobile); // 发送验证码到客户手机
PrintWriter pw = resp.getWriter();
pw.println("{\"status\": " + 1
+ ", \"msg\": \"手机验证码获取成功\"" + ", \"url\": \"/wxapp/user\"}");
pw.close();
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}

}


把 System.out.println(txtMobile); 改成调用一个发短信的函数,把手机号,验证码作为参数传进去就 OK 了,例如 sendSMS("12223232", code); 当然这个发短信的函数需要到提供该服务的平台下载,使用方法也很简单,就 Java 而言,一般会有如下步骤:

添加必要的 JAR 包 --> 添加一些加密解密(或者其它)的类 --> 把示例代码 COPY 进来 --> 修改成需要的函数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: