java短信接口以及demo

浏览:949 发布日期:2018/02/28 分类:用法示例 关键字: 短信验证码接口 短信接口
短信接口 短信验证码接口 短信发送接口 java短信验证接口以及demo
每一个做技术开发的多多少少都会接触到网站或是APP的注册登录功能的实现。

要实现商业网站或是APP用户注册登录成为会员,一般多采用短信验证码的方式进行身份确认。

当用户注册或是改密码时,如何通过下发验证码到用户的手机号上验证用户身份呢?很简单是通过短信接口来实现的。

以下是java短信接口
短信发送接口
1.1 请求地址

请求地址是客户接口程序调用时请求的url地址,采用的是https post 接口,地址是

https://sh2.ipyy.com/sms.aspx 对应UTF-8

https://sh2.ipyy.com/smsGBK.aspx 对应GB2312

https://sh2.ipyy.com/smsJson.aspx 对应UTF-8(返回值为json格式)

https://sh2.ipyy.com/ensms.ashx 对应UTF-8(加密传输,使用json)



入口地址一般不会发生变化,当发生变化的时候,会通知接口用户

1.2参数说明

参数名称

含义

说明

userid

企业id

企业ID(不验证)

account

发送用户帐号

用户帐号,由系统管理员

password

发送帐号密码

用户账号对应的密码

可以使用明文,也可以全用md5加密方式,md5采用32位大写

如abc123加密后为

E99A18C428CB38D5F260853678922E03

mobile

全部被叫号码

短信发送的目的号码.多个号码之间用半角逗号隔开

content

发送内容

短信的内容,内容需要UTF-8编码,提交内容格式:内容+【签名】。签名是公司的名字或者公司项目名称。示例:您的验证码:1439【腾飞】。【】是签名的标识符。请按照正规的格式提交内容测试

sendTime

定时发送时间

为空表示立即发送,定时发送格式2010-10-24 09:08:10

action

发送任务命令

设置为固定的:send

extno

扩展子号

请先询问配置的通道是否支持扩展子号,如果不支持,请填空。子号只能为数字,且最多5位数。

例如:

https://sh2.ipyy.com/sms.aspx?action=send&userid=&account=账号&password=密码&mobile=15023239810,13527576163&content=内容&sendTime=&extno=

1.3返回值

在接收到客户端发送的https请求后,返回以xml的方式返回处理结果。格式为:

<?xml version="1.0" encoding="utf-8" ?>

<returnsms>

<returnstatus>status</returnstatus> ---------- 返回状态值:成功返回Success 失败返回:Faild

<message>message</message> ---------- 相关的错误描述

<remainpoint> remainpoint</remainpoint> ---------- 返回余额

<taskID>taskID</taskID> ----------- 返回本次任务的序列ID

<successCounts>successCounts</successCounts> --成功短信数:当成功后返回提交成功短信数

</returnsms>



1.4 Json返回值

{"returnstatus":"Success",
"message":"操作成功",
"remainpoint":"-4",
"taskID":"1504080852350206",
"successCounts":"1"}
java短信验证码接口package com.yy.test;

import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
import org.json.JSONObject;

import sun.misc.BASE64Encoder;


public class HttpEnsms {
    /**
     * http加密
     * @param args
     */
    public static void main(String[] args) {

        SimpleDateFormat df=new SimpleDateFormat("MMddHHmmss");        
        String Stamp = df.format(new Date());
        String password="123456";
        String Secret=MD5.GetMD5Code(password+Stamp).toUpperCase();
        
        try {
            JSONObject j=new JSONObject();
            j.put("UserName", "qq");
            j.put("Stamp", Stamp);
            j.put("Secret", Secret);
            j.put("Moblie", "17721077856");//可以call协助对接
            j.put("Text", "您的验证码是:8859【华信】");
            j.put("Ext", "");
            j.put("SendTime", "");
            //获取json字符串
            String json=j.toString();
            byte[] data=json.getBytes("utf-8");
            byte[] key=password.getBytes();
            //获取加密的key
            byte[] nkey=new byte[8];
            System.arraycopy(key, 0, nkey, 0, key.length > 8 ? 8 : key.length);
            //Des加密,base64转码
            String str=new BASE64Encoder().encode(DesHelper.encrypt(data, nkey)); 
            
            System.out.println(str);
            //url编码
            //str=URLEncoder.encode(str, "utf-8");
            
            //发送http请求
            String Url="http://42.96.205.165/ensms.ashx";
            HttpClient client=new HttpClient();
            PostMethod post=new PostMethod(Url);
            post.setRequestHeader("Content-type", "application/x-www-form-urlencoded;charset=utf-8");
            NameValuePair UserId=new NameValuePair("UserId","1");
            NameValuePair Text64=new NameValuePair("Text64",str);
            post.setRequestBody(new NameValuePair[]{UserId,Text64});
            int statu=client.executeMethod(post);
            System.out.println("statu="+statu);
            //返回结果
            String result=post.getResponseBodyAsString();
            System.out.println("result="+result);

        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }

}

附件 接口以及demo.rar ( 3.71 MB 下载:1 次 )

评论( 相关
后面还有条评论,点击查看>>