分享一下语音验证码的php开发流程
首先,根据与云通讯的技术宅沟通,得知测试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=
ff*****13bbcb2*****afb******b
1a8d9u
2
008613811234567
http://123.123.1.0:80/result
云平台回复的消息,如下:
HTTP/1.1 200 OK
Content-Length: 641
000000
a346467****************7123456
2014-05-01 15:38:09
云通讯的接口文档是:
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: :
Content-Type: text/plain
Content-Length:
VoiceCode
13800000000
1307241452320369000100030000002f
0
30
最后我们向云平台回个向应消息,如下:
HTTP/1.1 200 ok
Date:Wed Nov 9 16:08:57 2011
Content-Length:
000000
语音验证码通知接口:
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属性为准。应用回调地址是不包含语音验证码的。
------解决方案--------------------
迫切想知道云通讯是什么