起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: Masion

[分享] 利用WeX5给手机APP增加短信验证码功能

  [复制链接]

44

主题

81

帖子

232

积分

中级会员

Rank: 3Rank: 3

积分
232
QQ
发表于 2015-5-1 16:10:11 | 显示全部楼层
Model.prototype.saveUserBtnClick = function(event) {
var userData = this.comp("userData");
var paramsa = {
                                "fPhoneNumber"   : userData.val("fPhoneNumber")
                };
               
                 var successa = function(resultData)
      {
          //拿到从后台返回的验证码
          alert(resultData.CheckCode);
      };
                Baas.sendRequest({
                        "url" : "/dx",
                        "action" : "DuanXinCheck",
                        "params" : paramsa,
                        "success" : successa
                });
                       
               
       
        };
回复 支持 反对

使用道具 举报

44

主题

81

帖子

232

积分

中级会员

Rank: 3Rank: 3

积分
232
QQ
发表于 2015-5-1 16:10:39 | 显示全部楼层
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
        id="WebApp_ID" version="2.5">
        <display-name>X5 Baas Server</display-name>
        <servlet>
                <servlet-name>weixin default</servlet-name>
                <servlet-class>com.justep.weixin.mp.DefaultServlet</servlet-class>
                <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
                <servlet-name>weixin default</servlet-name>
                <url-pattern>/weixin/default</url-pattern>
        </servlet-mapping>

        <servlet>
                <servlet-name>weixin userInfo</servlet-name>
                <servlet-class>com.justep.weixin.mp.UserInfoServlet</servlet-class>
                <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
                <servlet-name>weixin userInfo</servlet-name>
                <url-pattern>/weixin/userinfo</url-pattern>
        </servlet-mapping>
        <servlet>
                <servlet-name>X5 Baas Demo Servlet</servlet-name>
                <servlet-class>com.justep.baas.test.DemoServlet</servlet-class>
                <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
                <servlet-name>X5 Baas Demo Servlet</servlet-name>
                <url-pattern>/demo</url-pattern>
        </servlet-mapping>
        <servlet>
                <servlet-name>X5 Baas Takeout Servlet</servlet-name>
                <servlet-class>com.justep.baas.takeout.TakeoutServlet</servlet-class>
                <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
                <servlet-name>X5 Baas Takeout Servlet</servlet-name>
                <url-pattern>/takeout</url-pattern>
        </servlet-mapping>
        <servlet>
                <servlet-name>X5 Baas Dx Servlet</servlet-name>
                <servlet-class>com.justep.baas.test.DxServlet</servlet-class>
                <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
                <servlet-name>X5 Baas Dx Servlet</servlet-name>
                <url-pattern>/dx</url-pattern>
        </servlet-mapping>
</web-app>
回复 支持 反对

使用道具 举报

44

主题

81

帖子

232

积分

中级会员

Rank: 3Rank: 3

积分
232
QQ
发表于 2015-5-1 16:12:27 | 显示全部楼层
上面的代码有问题吗? 为什么不发短信,报:
信息: Servlet X5 Baas Dx Servlet is currently unavailable
回复 支持 反对

使用道具 举报

44

主题

81

帖子

232

积分

中级会员

Rank: 3Rank: 3

积分
232
QQ
发表于 2015-5-1 19:09:56 | 显示全部楼层
调了好几天短信验证测试,终于成功,现将全部源代码发给大家,希望对各位有所帮助,少走弯路。 如有问题,请加入我的QQ :893586170
        Model.prototype.saveUserBtnClick = function(event) {
       
                var userData = this.comp("userData");
                var params = {
                        "userData" : userData.toJson(true)
                };
                var success = function(resultData) {
                        userData.applyUpdates();
                        justep.Util.hint("用户信息保存成功");
                };
                Baas.sendRequest({
                        "url" : "/takeout",
                        "action" : "save",
                        "params" : params,
                        "success" : success
                });

               
        var paramsa = {
                                "fPhoneNumber"   : userData.val("fPhoneNumber")
                };
               
                 var successa = function(resultData)
      {
          //拿到从后台返回的验证码
          alert(resultData.CheckCode);
      };
                Baas.sendRequest({
                        "url" : "/takeout",
                        "action" : "DuanXinCheck",
                        "params" : paramsa,
                        "success" : successa
                });
                       
               
       
        };

private static void DuanXinCheck(ServletRequest request, ServletResponse response) throws SQLException, IOException, NamingException , Exception
        {
                JSONObject params = (JSONObject) JSONObject.parse(request.getParameter("params"));
            String reta =null;       
                String fPhoneNumber = params.getString("fPhoneNumber");
                //生成6位数字的随机字符串
        int suiji = new Random().nextInt(899999)+100000;
        String backStr=Integer.toString(suiji);
        // 将随机字符串通过jsonOBJ返回前台
        JSONObject jsonObj = new JSONObject();
        jsonObj.put("CheckCode", backStr);
        Util.writeJsonToResponse(response, jsonObj);
     
        String dxurl="http://utf8.sms.webchinese.cn";
        String PostData ="Uid=kljkljklk1&Key=ekjlkj271c32a&smsMob="+fPhoneNumber+"&smsText=验证码:"+backStr+" (本信息由系统自动发出,不要回复)";
        reta = Send.SMS(PostData,dxurl);
     }
               



package com.justep.baas.takeout;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;

/**
*
* @author Administrator
*/
public class Send {

    public static String SMS(String postData, String postUrl) {
        try {
            //发送POST请求
            URL url = new URL(postUrl);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("POST");
            conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            conn.setRequestProperty("Connection", "Keep-Alive");
            conn.setUseCaches(false);
            conn.setDoOutput(true);

            conn.setRequestProperty("Content-Length", "" + postData.length());
            OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");
            out.write(postData);
            out.flush();
            out.close();

            //获取响应状态
            if (conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
                System.out.println("connect failed!");
                return "";
            }
            //获取响应内容体
            String line, result = "";
            BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));
            while ((line = in.readLine()) != null) {
                result += line + "\n";
            }
            in.close();
            return result;
        } catch (IOException e) {
            e.printStackTrace(System.out);
        }
        return "";
    }
}


回复 支持 1 反对 0

使用道具 举报

377

主题

2594

帖子

5117

积分

论坛元老

Rank: 8Rank: 8

积分
5117
QQ
 楼主| 发表于 2015-5-1 20:28:01 | 显示全部楼层
分享精神!!
长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)
回复

使用道具 举报

1

主题

10

帖子

79

积分

初级会员

Rank: 2

积分
79
QQ
发表于 2015-5-5 14:50:23 | 显示全部楼层
学习了!!
回复

使用道具 举报

191

主题

688

帖子

3325

积分

论坛元老

Rank: 8Rank: 8

积分
3325
QQ
发表于 2015-5-9 13:30:07 | 显示全部楼层
坛子里高人很多啊,收藏先。
轻量化ERP--企业邦  网址:meiprocess.cn
qq:8269301
手机:13801998595
回复 支持 反对

使用道具 举报

8

主题

57

帖子

256

积分

中级会员

Rank: 3Rank: 3

积分
256
QQ
发表于 2015-5-9 16:05:59 | 显示全部楼层
楼主好技术,经常把这些很好的经验分享给大家,好人
回复 支持 反对

使用道具 举报

16

主题

49

帖子

126

积分

初级会员

Rank: 2

积分
126
QQ
发表于 2015-7-1 09:52:03 | 显示全部楼层
发送短信时,一定要加正规签名发送,签名格式【中文公司名称】或【中文网站名称】否则发送不成。 http://gbk.sms.webchinese.cn/?Uid=本站用户名&Key=接口安全秘钥&smsMob=手机号码&smsText=验证码:8888 【你的公司名称】
回复 支持 反对

使用道具 举报

0

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
QQ
发表于 2015-7-28 07:45:43 | 显示全部楼层
收藏,以后能用到!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-23 16:16 , Processed in 0.076666 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表