2015年隨著手機(jī)、平板設(shè)備普及,快速推動(dòng)傳統(tǒng)行業(yè)不等不轉(zhuǎn)入電商銷售模式,新的社交電商逐漸成為主流消費(fèi)模式,而這一過程需要手機(jī)短信驗(yàn)證碼來確保安全,樂信短信平臺(tái)針對(duì)此種趨勢(shì)開辟樂信電商短信平臺(tái)短信接口程序解決方案,針對(duì)不同的短信接口開發(fā)程序語(yǔ)言,展示最真實(shí)詳細(xì)的短信接口代碼解決方案,短信接口代碼實(shí)例展示,從而有效解決電商短信平臺(tái)接口接收驗(yàn)證碼難題。
短信接口接口技術(shù)文檔及常見編程語(yǔ)言解決方案實(shí)例展示
首先,去短信接口供應(yīng)平臺(tái)免費(fèi)注冊(cè)帳號(hào)。
其次,到后臺(tái)下載短信接口說明文檔,以及各編程語(yǔ)言的實(shí)例代碼。
網(wǎng)站或軟件的技術(shù)開發(fā)人員根據(jù)短信接口包說明及實(shí)例代碼調(diào)試,調(diào)試成功即可開通網(wǎng)站短信驗(yàn)證碼功能應(yīng)用。常見編程語(yǔ)言短信接口代碼如下:
?、貾HP短信接口代碼實(shí)例:
請(qǐng)求
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.weimi.cc/2/sms/send.html");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
/*
短信接口一,自寫短信內(nèi)容。該接口提交的短信均由人工審核,下發(fā)后請(qǐng)聯(lián)系在線客服。適合:節(jié)假日祝福、會(huì)員營(yíng)銷群發(fā)等。
1、設(shè)定樂信賬號(hào)的接口UID和接口密碼
2、傳入目標(biāo)手機(jī)號(hào)碼,多個(gè)以,”分隔,一次性調(diào)用最多100個(gè)號(hào)碼,示例:139********,138********
3、傳入短信內(nèi)容。必須設(shè)置好短信簽名,簽名規(guī)范:
1)短信內(nèi)容一定要帶簽名,簽名放在短信內(nèi)容的最前面;
2)簽名格式:【***】,簽名內(nèi)容為三個(gè)漢字以上(包括三個(gè));
3)短信內(nèi)容不允許雙簽名,即短信內(nèi)容里只有一個(gè)【】”
*/
curl_setopt($ch, CURLOPT_POSTFIELDS, 'uid=<enter your UID>&pas=<enter your UID Pass>&mob=<enter your mobiles>&con='.urlencode('【樂信】尊敬的用戶,您的手機(jī)驗(yàn)證碼是:fgrwah,3分鐘內(nèi)有效。請(qǐng)不要把此驗(yàn)證碼泄露給任何人,以便您能安全使用。?').'&type=json');
$res = curl_exec( $ch );
curl_close( $ch );
echo($res);
返回結(jié)果
{ "code":0, "msg":"發(fā)送成功" }
?、贏SP短信接口代碼實(shí)例:
1.1 Register注冊(cè)
注:使用序列號(hào)的第一步即激活序列號(hào)的狀態(tài).和使用者進(jìn)行綁定.如不注冊(cè)便發(fā)送短信會(huì)返回相應(yīng)的返回值-2.除sign參數(shù)可為空其它均為必填項(xiàng).請(qǐng)認(rèn)真對(duì)待這些參數(shù)的真實(shí)性.短信出現(xiàn)問題聯(lián)系不上使用者后果自負(fù).
返回結(jié)果:
XML格式:
文本格式: 0 成功。
1.2 balance 查詢余額
函數(shù)返回值:String(余額)
示例:序列號(hào)SDK-BBX-010-00001 密碼 123456
參數(shù)輸入:
SN= SDK-BBX-010-00001
PWD= 3B5D3C427365F40C1D27682D78BB31E0
返回結(jié)果:
XML格式:
文本格式:
79109
1.4 mt 發(fā)送短信
函數(shù)返回值:String(唯一標(biāo)識(shí),即當(dāng)前發(fā)送短信批次的唯一標(biāo)識(shí),和rrid對(duì)應(yīng),如為空則返回系統(tǒng)生成的rrid)此方法推薦用于大量群發(fā).內(nèi)容相同手機(jī)號(hào)多個(gè)
示例1:
輸入?yún)?shù):
SN= SDK-BBX-010-00001
PWD=3B5D3C427365F40C1D27682D78BB31E0
Mobile:139***404,138***213…………….
Content:測(cè)試
Ext:21(如果不是網(wǎng)絡(luò)版,請(qǐng)置空)
Stime: 2009-10-19 16:34:00 (如果不需要定時(shí),請(qǐng)置空)
Rrid:123456 (如果填寫則系統(tǒng)返回填寫內(nèi)容,如果置空,返回系統(tǒng)生成的rrid)
輸出結(jié)果:
文本格式:
123456
示例2
SN= SDK-BBX-010-00001
PWD=3B5D3C427365F40C1D27682D78BB31E0
Mobile:139***404,138***213…………….
Content:測(cè)試
Ext:
Stime:
Rrid: 此處為空
輸出結(jié)果:
文本格式:
201012300908160937。
1.5 mo接收短信
函數(shù)返回值:Stirng
返回值說明:mo ID,特服號(hào),手機(jī)號(hào),內(nèi)容(對(duì)內(nèi)容進(jìn)行g(shù)b2312解碼),時(shí)間
如有多條回車換行隔開
返回結(jié)果:
XML格式:
文本格式:
12323666,47512,15201692834,%b2%e2%ca%d41,2010-12-30 9:15:56
注:拆分形式為 先 拆分成數(shù)組,然后逗號(hào)拆分成數(shù)組.根據(jù)索引讀出需要的數(shù)據(jù).內(nèi)容要GB2312解碼。
1.6 gxmt 個(gè)性發(fā)送
函數(shù)返回值:String (唯一標(biāo)識(shí),即當(dāng)前發(fā)送短信批次的唯一標(biāo)識(shí),和rrid對(duì)應(yīng),如為空則返回系統(tǒng)生成的rrid,此處的rrid和mt發(fā)送的rrid用法相同,此方法用于發(fā)送多條內(nèi)容不相同手機(jī)號(hào)多個(gè)的情況)
需要注意:
1、手機(jī)號(hào)以英文逗號(hào)隔開
2、發(fā)送內(nèi)容GB2312編碼后,以英文逗號(hào)隔開,個(gè)數(shù)和手機(jī)號(hào)個(gè)數(shù)一致
3、擴(kuò)展碼可以為空,單個(gè),或多個(gè)(以英文逗號(hào)隔開,個(gè)數(shù)和手機(jī)號(hào)個(gè)數(shù)一致)
4、定時(shí)時(shí)間可以為空,單個(gè),或多個(gè)(以英文逗號(hào)隔開,個(gè)數(shù)和手機(jī)號(hào)個(gè)數(shù)一致)
返回結(jié)果:
XML格式:
示例1:
輸入?yún)?shù):
SN= SDK-BBX-010-00001
PWD=3B5D3C427365F40C1D27682D78BB31E0
Mobile:139***404,138***213
Content: %B2%E2%CA%D41, %B2%E2%CA%D42
Ext:(如果不是網(wǎng)絡(luò)版,請(qǐng)置空)
Stime: (如果不需要定時(shí),請(qǐng)置空)
Rrid:123456 (如果填寫則系統(tǒng)返回填寫內(nèi)容,如果置空,返回系統(tǒng)生成的rrid)
輸出結(jié)果:
XML格式:
文本格式:
123456
示例2
SN= SDK-BBX-010-00001
PWD=3B5D3C427365F40C1D27682D78BB31E0
Mobile:139***404,138***213…………….
Content: %B2%E2%CA%D41, %B2%E2%CA%D42
Ext:
Stime:
Rrid: 此處為空
輸出結(jié)果:
XML格式:
文本格式:
201012300908160937。
③JAVA短信接口代碼實(shí)例:
請(qǐng)求
import java.util.HashMap;
import java.util.Map;
public class SmsDemo {
/**
* 短信接口一,自寫短信內(nèi)容。該接口提交的短信均由人工審核,下發(fā)后請(qǐng)聯(lián)系在線客服。適合:節(jié)假日祝福、會(huì)員營(yíng)銷群發(fā)等。
*/
public static void sms_api1() {
Map<String, String> para = new HashMap<String, String>();
/**
* 目標(biāo)手機(jī)號(hào)碼,多個(gè)以,”分隔,一次性調(diào)用最多100個(gè)號(hào)碼,示例:139********,138********
*/
para.put("mob", "<enter your mobiles>");
/**
* 樂信賬號(hào)的接口UID
*/
para.put("uid", "<enter your UID>");
/**
* 樂信賬號(hào)的接口密碼
*/
para.put("pas", "<enter your UID Pass>");
/**
* 接口返回類型:json、xml、txt。默認(rèn)值為txt
*/
para.put("type", "json");
/**
* 短信內(nèi)容。必須設(shè)置好短信簽名,簽名規(guī)范:
* 1、短信內(nèi)容一定要帶簽名,簽名放在短信內(nèi)容的最前面;
* 2、簽名格式:【***】,簽名內(nèi)容為三個(gè)漢字以上(包括三個(gè));
* 3、短信內(nèi)容不允許雙簽名,即短信內(nèi)容里只有一個(gè)【】”
*
*/
para.put("con", "【樂信】您的驗(yàn)證碼是:610912,3分鐘內(nèi)有效。如非您本人操作,可忽略本消息。");
try {
System.out.println(HttpClientHelper.convertStreamToString(
HttpClientHelper.get("https://api.weimi.cc/2/sms/send.html",
para), "UTF-8"));
System.out.println(HttpClientHelper.convertStreamToString(
HttpClientHelper.post(
"https://api.weimi.cc/2/sms/send.html", para),
"UTF-8"));
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 短信接口二,觸發(fā)類模板短信接口,可以設(shè)置動(dòng)態(tài)參數(shù)變量。適合:驗(yàn)證碼、訂單短信等。
*/
public static void sms_api2() {
Map<String, String> para = new HashMap<String, String>();
/**
* 目標(biāo)手機(jī)號(hào)碼,多個(gè)以,”分隔,一次性調(diào)用最多100個(gè)號(hào)碼,示例:139********,138********
*/
para.put("mob", "<enter your mobiles>");
/**
* 樂信賬號(hào)的接口UID
*/
para.put("uid", "<enter your UID>");
/**
* 樂信賬號(hào)的接口密碼
*/
para.put("pas", "<enter your UID Pass>");
/**
* 接口返回類型:json、xml、txt。默認(rèn)值為txt
*/
para.put("type", "json");
/**
* 短信模板cid,通過樂信后臺(tái)創(chuàng)建,由在線客服審核。必須設(shè)置好短信簽名,簽名規(guī)范:
* 1、模板內(nèi)容一定要帶簽名,簽名放在模板內(nèi)容的最前面;
* 2、簽名格式:【***】,簽名內(nèi)容為三個(gè)漢字以上(包括三個(gè));
* 3、短信內(nèi)容不允許雙簽名,即短信內(nèi)容里只有一個(gè)【】”
*/
para.put("cid", "<enter your cid>");
/**
* 傳入模板參數(shù)。
*
* 短信模板示例:
* 【樂信】您的驗(yàn)證碼是:%P%,%P%分鐘內(nèi)有效。如非您本人操作,可忽略本消息。
*
* 傳入兩個(gè)參數(shù):
* p1:610912
* p2:3
* 最終發(fā)送內(nèi)容:
* 【樂信】您的驗(yàn)證碼是:610912,3分鐘內(nèi)有效。如非您本人操作,可忽略本消息。
*/
para.put("p1", "610912");
para.put("p2", "3");
try {
System.out.println(HttpClientHelper.convertStreamToString(
HttpClientHelper.get("https://api.weimi.cc/2/sms/send.html",
para), "UTF-8"));
System.out.println(HttpClientHelper.convertStreamToString(
HttpClientHelper.post(
"https://api.weimi.cc/2/sms/send.html", para),
"UTF-8"));
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] a) {
// 測(cè)試短信接口一
sms_api1();
// 測(cè)試短信接口二
sms_api2();
}
}
返回結(jié)果
{ "code":0, "msg":"發(fā)送成功" }
④VB .NET短信接口代碼實(shí)例:
[java] view plaincopyprint?
package com.text;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
public class SendMsg_webchinese {
public static void main(String[] args) throws Exception {
HttpClient client = new HttpClient();
PostMethod post = new PostMethod("https://sms.webchinese.cn/web_api/");
post.addRequestHeader("Content-Type",
"application/x-www-form-urlencoded;charset=gbk");// 在頭文件中設(shè)置轉(zhuǎn)碼
NameValuePair[] data = { new NameValuePair("Uid", "cshxxxxxxxx"), // 注冊(cè)的用戶名
new NameValuePair("Key", "53295058d1c46710666a"), // 注冊(cè)成功后,登錄網(wǎng)站使用的密鑰
new NameValuePair("smsMob", "187xxxxxxx"), // 手機(jī)號(hào)碼
new NameValuePair("smsText", "以后給我老實(shí)點(diǎn)哈。。。。聽話。。。") };//設(shè)置短信內(nèi)容
[java] view plaincopyprint?
post.setRequestBody(data);
client.executeMethod(post);
Header[] headers = post.getResponseHeaders();
int statusCode = post.getStatusCode();
System.out.println("statusCode:" + statusCode);
for (Header h : headers) {
System.out.println(h.toString());
}
String result = new String(post.getResponseBodyAsString().getBytes(
"gbk"));
System.out.println(result);
post.releaseConnection();
}
⑤C# .NET短信接口代碼實(shí)例:
發(fā)送短信,<=0返回失敗.大于0成功條數(shù),個(gè)人的。企業(yè)ID為0
https://gateway.woxp.cn:6630/gb2312/web_api/?x_eid=企業(yè)ID&x_uid=賬號(hào)&x_pwd_md5=登陸密碼MD5值&x_ac=10&x_gate_id=300&x_target_no=手機(jī)號(hào)碼&x_memo=短信內(nèi)容
提示:HTTP調(diào)用URL接口時(shí), 參數(shù)值必須URL編碼后再調(diào)用
--x_eid企業(yè)代碼,個(gè)人賬號(hào)值為0
--x_gate_id值為300.代表組合通道
--x_target_no可以多個(gè)號(hào)碼最多100個(gè)每次。之間用[,]分開。例如:15910011001,1591061000,15912341234
--x_memo短信內(nèi)容70字
//需要用到的命名空間
using System.Net;
using System.IO;
using System.Text;
//調(diào)用時(shí)只需要把拼成的URL傳給該函數(shù)即可。判斷返回值即可
public string GetHtmlFromUrl(string url)
{
string strRet = null;
if(url==null || url.Trim().ToString()=="")
{
return strRet;
}
string targeturl = url.Trim().ToString();
try
{
HttpWebRequest hr = (HttpWebRequest)WebRequest.Create(targeturl);
hr.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
hr.Method = "GET";
hr.Timeout = 30 * 60 * 1000;
WebResponse hs = hr.GetResponse();
Stream sr = hs.GetResponseStream();
StreamReader ser = new StreamReader(sr, Encoding.Default);
strRet = ser.ReadToEnd();
}
catch (Exception ex)
{
strRet = null;
}
return strRet;
}
電商網(wǎng)站短信接口編程語(yǔ)言接入注意事項(xiàng):
如有返回各類錯(cuò)誤代碼,對(duì)照完整接口文檔看說明
返回代碼:100 表示發(fā)送成功
返回錯(cuò)誤代碼:101一般是 用戶名或接口密碼不對(duì)
返回錯(cuò)誤代碼:104 短信模板不符合規(guī)則或未審批備案或UTF8和GBK等編碼和接口不統(tǒng)一
返回錯(cuò)誤代碼:102,手機(jī)號(hào)碼格式不正確,103 會(huì)員級(jí)別不夠
返回錯(cuò)誤代碼:105 內(nèi)容過多,106 賬戶余額不足,107 Ip受限
返回錯(cuò)誤代碼:108 手機(jī)號(hào)碼發(fā)送太頻繁,120 系統(tǒng)升級(jí)
(責(zé)任編輯:樂信短信接口)