短信登录使用的是阿里云5000条300元,在控制台就可以设置
微信在微信开放平台开通
支付宝在蚂蚁开放平台开通
import java.io.IOException;
import java.util.Map;
import java.util.Random;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.aliyuncs.exceptions.ClientException;
import com.tgb.entity.Users;
import com.tgb.manager.UsersManager;
import com.tgb.util.DateTime;
import com.tgb.util.Json;
import com.tgb.util.Sms;
/**
-
Title: LoginController
-
Description: 用户登录模块(IOS、Android)
-
@author zhaoxuehong
-
@date 2018年11月3日上午10:38:40
*/
@Controller
@RequestMapping(value=“api”)
public class LoginAppController {
@Resource(name=“usersManager”)
private UsersManager usersManager;/**
- 登录验证
- @param users
- @return
- @return
/
@RequestMapping(value=“login”,method=RequestMethod.POST)
@ResponseBody
public Map<String, Object> login(Users users,HttpServletRequest request,HttpServletResponse response,HttpSession session) {
String alipayuser_id=request.getParameter(“alipayuser_id”);
String wechatopen_id=request.getParameter(“wechatopen_id”);
String cellphone=request.getParameter(“cellphone”);
String code=request.getParameter(“code”);
if (cellphone!=null&&code!=null) {
String token=session.getId();
String code2=usersManager.getCellphone(cellphone).getCode().toString();
String lat=users.getLat();
String lng=users.getLng();
String lasttime=new DateTime().getDataTime();
if (Integer.parseInt(code2)Integer.parseInt(code)) {
if(lat""&&lng=="") {
users.setLat(“30.66074”);
users.setLng(“104.06327”);
}else{
users.setLat(lat);
users.setLng(lng);
}
users.setAlipayuser_id(alipayuser_id);
users.setWechatopen_id(wechatopen_id);
System.out.println(usersManager.getCellphone(cellphone).getToken());
System.out.println(token);
users.setToken(token);
users.setLasttime(lasttime);
users.setUid(usersManager.getCellphone(cellphone).getUid());
if (usersManager.updateUsers(users)) {
return new Json().getJson(“200”, “登录成功”,usersManager.getCellphone(cellphone).getUid());
}
}if(code2null||code2!=code) {
return new Json().getJson(“201”, “登录失败,请重新获取验证码”,"");
}
}else {
Users ali=new Users();
Users wechat=new Users();
if (alipayuser_id!=null||wechatopen_id!=null) {
if (alipayuser_id!=null&&wechatopen_idnull) {
ali=usersManager.getAlipay(alipayuser_id);
}else {
wechat=usersManager.getWechat(wechatopen_id);
System.out.println(wechat);
}
}
if (wechat!=null) {
if (wechat.getUid()!=null) {
return new Json().getJson(“200”, “成功授权微信登录”, wechat.getUid());
}
}if (ali!=null) {
if (ali.getUid()!=null) {
return new Json().getJson(“200”, “成功授权支付宝登录”, ali.getUid());
}
}
}
return new Json().getJson(“203”, “重新登录”,"");
}
/* - 发送验证码
- @param users
- @param request
- @param response
- @return
- @throws IOException
- @throws ClientException
*/
@SuppressWarnings(“unused”)
@RequestMapping(value=“sendSMS”,method=RequestMethod.POST)
@ResponseBody
public Map<String, Object> sendSMS(Users users,HttpServletResponse response,HttpSession session) throws IOException, ClientException {
String msg = “发送成功”;
String cellphone=users.getCellphone();
String createtime=new DateTime().getDataTime();
Random random = new Random();
String code="";
for (int i=0;i<4;i++)
{
code+=random.nextInt(10);
}
System.out.println(“code”+code);
Sms.sendSms(code,cellphone);
Users phone=usersManager.getCellphone(cellphone);
if (phone==null){
users.setCellphone(cellphone);
users.setCode(code);
users.setSex(“0”);
users.setStatus("-1");
users.setAuthorization(“0”);
users.setHead_pic("/static/img/head_pic.png");
users.setCreatetime(createtime);
users.setLasttime(createtime);
users.setLat(“30.66074”);
users.setLng(“104.06327”);
users.setUsername(“pck”+“800”+code);
users.setGrade(“0”);
users.setEnergy(“0”);
users.setBalance(“0”);
usersManager.addUsers(users);
return new Json().getJson(“200”, “新增用户,验证码发送成功”,usersManager.getCellphone(cellphone).getToken()+"");
}if (phone!=null) {
String uid=phone.getUid();
//测试用账户
if (cellphone.equals(“12345678901”)) {
phone.setCode(“1234”);
}else {
phone.setCode(code);
}
usersManager.updateUsers(phone);
return new Json().getJson(“200”, “用户已存在,验证码发送成功”,usersManager.getCellphone(cellphone).getToken()+"");
}
return new Json().getJson(“201”, “发送验证码失败”,"");
}
}