首先,根据与云通讯的技术宅沟通,得知测试demo应用是不能用于上线的,因此我还要自己去创建应用和子帐号。应用就不说了,在官网的应用列表创建一个。取出其应用ID就ok了。
创建完应用后我开始写代码了,通过阅读文档我知道要先向云平台发送请求,格式如下:
XML请求示例:
POST https://app.cloopen.com:8883/2013-12-26/Accounts/ff8***13bacd54e***b29a*****03/Calls/VoiceVerify?sig=C1F20E7A9733CE9 HTTP/1.1
Accept:application/xml;
Content-Type:application/xml;charset=utf-8;
Authorization:ZmY4MDgwODEzYzM3ZGE1MzAxM2M4MDRmODA3MjAwN2M6MjAxMzAyMDExNTABCDE=
<?xml version='1.0' encoding='utf-8'?>
<VoiceVerify>
<appId>ff*****13bbcb2*****afb******b</appId>
<verifyCode>1a8d9u</verifyCode>
<playTimes>2</playTimes>
<to>008613811234567</to>
<respUrl>http://123.123.1.0:80/result<respUrl>
</VoiceVerify>
云平台回复的消息,如下:
HTTP/1.1 200 OK
Content-Length: 641
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response>
<statusCode>000000</statusCode>
<VoiceVerify>
<callSid>a346467****************7123456</callSid>
<dateCreated>2014-05-01 15:38:09</dateCreated>
</VoiceVerify>
</Response>
云通讯的接口文档是:
http://docs.cloopen.com/index.php/%E8%AF%AD%E9%9F%B3%E9%AA%8C%E8%AF%81%E7%A0%81
在这里说明一下,我使用的是PHP开发。由于我很懒,所以我直接在云通讯的demo中找到了phpdemo,本来以为改改就行了,没想到还是遇到了些小麻烦。我先用回拨接口去修改的(因为感觉功能很接近),结果给我返回404,经过和云通讯技术宅了解,原来云通讯分为子账号鉴权和主账号鉴权。其中回拨是子账号鉴权。语音验证码是主账号鉴权。需要在url,sig和包头auth中填主账号和token。OK,继续发扬我的懒惰作风,继续抄!这次用短信的接口修改。这里要注意了,虽然同是主账号鉴权但url最后是不一样的。需要改为Calls/VoiceVerify。
改好代码后测试,终于可以成功拨打语音验证码了,但我的业务还需要知道是否拨打成功了,因此我开始部署我的result接收通知的地址。同样是通过PHP实现。我是偷的云通讯的鉴权demo,直接部署到我的服务器。
保留代码如下:
//获取POST数据
$result = file_get_contents("php://input");
//解析XML
$xml = simplexml_load_string(trim($result," \t\n\r"));
自己写的代码:
$ state = $xml-> state;
If($state == 2){
//继续套用发送语音验证码请求的代码。
}
注:云通讯的示例如下。
POST /{path} HTTP/1.1
Host: <ip>:<port>
Content-Type: text/plain
Content-Length: <Len>
<?xml version="1.0" encoding="UTF-8"?>
<Request>
<action>VoiceCode</action>
<number>13800000000</number>
<callSid>1307241452320369000100030000002f</callSid>
<state>0</state>
<duration>30</duration>
</Request>
最后我们向云平台回个向应消息,如下:
HTTP/1.1 200 ok
Date:Wed Nov 9 16:08:57 2011
Content-Length: <len>
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<statuscode>000000</statuscode>
</Response>
语音验证码通知接口:
http://docs.cloopen.com/index.php/%E8%AF%AD%E9%9F%B3%E9%AA%8C%E8%AF%81%E7%A0%81%E7%8A%B6%E6%80%81%E9%80%9A%E7%9F%A5%E6%8E%A5%E5%8F%A3%E8%AF%B4%E6%98%8E
以上是发的大体流程,在开发中遇到的其他问题:
1.显号功能,我填写了displayNum参数,但是显示的号码不是我填的号码。询问客服后知道显号功能是要配置显号规则的。
2.注意语音验证码回调地址是以respUrl属性为准。应用回调地址是不包含语音验证码的。
------解决方案--------------------
迫切想知道云通讯是什么