合通启短信php手机验证phpapi接口实例是http协议吗?

我有移动提供的短信接口,请问怎么用php调用这些接口发送短信呢?_百度知道
我有移动提供的短信接口,请问怎么用php调用这些接口发送短信呢?
因为没分数、所以不能提高悬赏、、
我有更好的答案
?php$ch&=&nbsp:&lt。3、请求数据4;curl_exec($ch);//&解析反馈的内容,略如果是SOAP风格的,请查阅PHP文档SoapClient类的用法,&nbsp、解析返回的内容;CURLOPT_POSTFIELDS,&$post_data);//&提交请求;CURLOPT_POST,&1)。因为Soap规范不统一;//&$post_data是你的参数组成的关联数组curl_setopt($&nbsp,得到反馈&nbsp,使用其他语言实现的Soap可能和PHP不兼容。以前我使用过移动梦网的接口(不是移动的接口);将参数POST过去,&//&nbsp。如果是POST接口,&nbsp移动的接口是什么风格的;使用POST请求curl_setopt($ch。给你一个CURL调用POST接口的例子,&CURLOPT_RETURNTRANSFER,&true);//&连接超时,请将参数拼接在地址的后面(推荐使用http_build_query)、阅读接口文档2、数据接口一般会提供一些参数。如果是GET接口,否则接口返回的内容会直接打印在页面上curl_setopt($ch,&nbsp,一定要设置curl_setopt($ch,&CURLOPT_CONNECTTIMEOUT,一定要设置curl_setopt($ch,&CURLOPT_TIMEOUT,&5),&nbsp,看我的示例代码,判断调用是否成功。一般返回的内容有xml和json格式,它提供两种风格的API;防止屏蔽');//&以下选项设为curl_init('省略接口地址;$response&=&5);&//&连接成功后,请求超时?是soap的还是自定义的?调用自定义接口通常有以下步骤:1
是webservice接口,有范例吗?
这个接口是soap的,人家已经帮你把逻辑封装了。注意这个地址是否正确。我这里是访问不到的。我觉得你使用他文档中的实例肯定不会有问题。
这个我替换成 开放给我的接口 却还是不行啊!!!
你要说说是怎么个不行啊。。是没响应(空白),还是返回内容有问题,还是报错?把出错信息贴上
没响应 返回空白,因为代码多这里不够贴。
我试了一下,刷出一堆错误来。它用的是一个叫nusoap的类。你尝试一下PHP内置的SoapClient吧,可以代替它的nusoap。
为您推荐:
其他类似问题
您可能关注的内容
发送短信的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。PHP接入网易云信发送和校验短信验证码
网易云信已经出来很久,一直想试试。最近也有机会,放弃了之前使用的短信服务商,觉得不是很好用,想试试网易云信怎么样。云信最近貌似降价了...短信接入本来就比较简单,不过云信的的开发手册里面有些东西还是需要靠自己弄清楚(没有PHP的代码示例)。废话不多说,先上手册地址:下面两个手册一个是短信的,第二个是关于APP和APP.SECRET的验证的网易云信短信开发手册:网易云信Server Http API接口文档:一、获得APPKEY、APPsecret这个自己申请就OK,免费20条短信。同样server端保存咯..二、APP Checksum网易云信的checksum使用的也是sha1计算并转成小写。手册说16进制字符串,恰巧PHP sha1()计算返回的默认就是16进制,具体的可以看看PHP手册Checksum的构建:1、组成构建checksum有三部分,分别如下:CurTime : 当前时间戳,直接time()生成即可需要注意的是,服务器时间应当是正常的时间,否则会认为失效。Nonce : 一个不超过128字符的随机数,直接rand()生成即可这个随机数是随便的,只是多一个验证而已APP secret :获得的APP secret2、组合顺序
sha1(APP_SECRET.$nonce.$curtime);3、使用示例因为后面要设置HTTP CURL的HEADER,因此建议写成一个函数网易云信的服务Checksum的校验全部放在请求的Header中,这是非常关键的一点。而请求头包括的内容包括AppKey , Nonce , CurTime , CheckSum , Content-Type , 其中Content-Type是固定的,其他的由自己生成,而且建议每次生成新的checksum,因此一个header函数显得非常重要。
* 得到头信息
* @return array $header - 头信息数组
public function getHeader(){
// 构建checksum
$curtime=time();
$nonce=rand();
$checksum=strtolower(sha1(Config::get('wangyi.appsecret').$nonce.$curtime));
// 构建header
$header=array(
'AppKey:'.Config::get('wangyi.appkey'),
'CurTime:'.$curtime,
'CheckSum:'.$checksum,
'Nonce:'.$nonce,
'Content-Type: application/x-www-form-charset=utf-8',
}三、发送CURL请求PHP 肯定是使用CURL发送是最好的,因此这里是我珍藏的一个发送curl
POST请求的函数。而且能够设置HTTP CURL请求的请求头以及响应头等,关于查看请求头和响应头,可以下面链接:/**
* 发送数据
* @param String $url
请求的地址
* @param array
自定义的header数据
* @param array
$content POST的数据
* @return String
function curl_post($url, $header, $content){
$ch = curl_init();
if(substr($url,0,5)=='https'){
// 跳过证书检查
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// 从证书中检查SSL加密算法是否存在
// curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
// 设置允许查看请求头信息
// curl_setopt($ch,CURLINFO_HEADER_OUT,true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($content));
$response = curl_exec($ch);
// 查看请求头信息
// dump(curl_getinfo($ch,CURLINFO_HEADER_OUT));
if($error=curl_error($ch)){
curl_close($ch);
curl_close($ch);
}四、发送验证码校验验证码上面工作做好之后,就可以发送短信验证码或者校验了。一个参考的示例如下:curl_post为发送curl post请求的函数getHeader()为获得头部数组信息的函数
public function message(){
$header=$this-&getHeader();
// 构建data
$data=array(
'mobile'=&'138xxxxxxx'
$url='https://api.netease.im/sms/sendcode.action';
// 发送短信验证码
$res=curl_post($url,$header,$data);
dump($res);
return '';
}五、错误说明如果返回414错误,一定是因为头信息设置错误的问题,或者是checksum有问题(checksum一般不会有问题)。说说我的错误:我一开始设置头信息的时候,Nonce: 这里冒号(:)两边留了空格,结果就错误!!切记。需要说明的部分:上述代码中只有curl_post()可以直接复制,而Config::get('wangyi.appkey')是thinkphp5框架获取配置信息的函数,请自动替换成自己的APPkey或者是APP secret的函数.
文章版权:
本文链接:
转载请注明文章原始出处 !
扫描二维码,在手机阅读!
添加新评论php ci框架怎么对接短信接口_百度知道
php ci框架怎么对接短信接口
html想用这个接口,ci框架不知道怎么对接,文件放哪里,怎么调用.com
请先选择一个要加入的团队
&=&curl_exec($ch);;$data&nbsp,$content){$url&nbsp,&#39,$=&'';);sendSMS($$content,&//内容);$result=&curlSMS($&nbsp,$content);&nbsp,&&$&&nbsp,$'您的短信验证码是;&我把源码给你贴一遍,这个里面的账号密码是需要你们自己去申请的;&CURLOPT_HEADER,1);&;&//号手机码$content&=&nbsp.com';&//密码$mobile&nbsp,'http://www.yourdomain.php'&&curl_setopt($function&$&nbsp,;=&array('&&nbsp,&nbsp相当简单 这个接口调用就是封装一个curl请求的function (sendSMS),代码示例网站上已经有了,使用时:加载这个&&nbsp
这个代码我看的懂,就是php ci框架不知道怎么加载这个文件,放在library或者helper文件里面,表单的验证就不能用了,也不知道有没有加载成功
如果你只是一个文件使用 你把方法写在要用的文件里;如果你多个页面都需要
你把function单独写个一文件 sms.php 然后require 或者Includesms.php放在公共目录里
采纳率:32%
为您推荐:
其他类似问题
您可能关注的内容
php的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。PHP 短信验证码接口 - ThinkPHP框架
有没有人有PHP版本的 发送短信验证码 的实例?给俺参考参开一下,谢谢啦
lianjie5664
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。随笔 - 29&
文章 - 0&评论 - 149&trackbacks - 0
不要急,源代码分享在最底部,先问大家一个问题,你在写开放的API接口时是如何保证数据的安全性的?先来看看有哪些安全性问题在开放的api接口中,我们通过http Post或者Get方式请求服务器的时候,会面临着许多的安全性问题,例如:
请求来源(身份)是否合法?
请求参数被篡改?
请求的唯一性(不可复制)
为了保证数据在通信时的安全性,我们可以采用参数签名的方式来进行相关验证。
我们通过给某 [移动端(app)] 写 [后台接口(api)] 的案例进行分析:& & &
& &客户端: 以下简称app& &
后台接口:以下简称api
我们通过app查询产品列表这个操作来进行分析:
app中点击查询按钮==》调用api进行查询==》返回查询结果==&显示在app中
上代码啦 -_-!
一、不进行验证的方式
api查询接口:
app调用:http://api.test.com/getproducts?参数1=value1.......
如上,这种方式简单粗暴,通过调用getproducts方法即可获取产品列表信息了,但是 这样的方式会存在很严重的安全性问题,没有进行任何的验证,大家都可以通过这个方法获取到产品列表,导致产品信息泄露。那么,如何验证调用者身份呢?如何防止参数被篡改呢?
二、MD5参数签名的方式
我们对api查询产品接口进行优化:
1.给app分配对应的key、secret
2.Sign签名,调用API&时需要对请求参数进行签名验证,签名方式如下:&
& & a.&按照请求参数名称将所有请求参数按照字母先后顺序排序得到:keyvaluekeyvalue...keyvalue&&字符串如:将arong=1,mrong=2,crong=3&排序为:arong=1,&crong=3,mrong=2&&然后将参数名和参数值进行拼接得到参数字符串:arong1crong3mrong2。&
& & b.&将secret加在参数字符串的头部后进行MD5加密&,加密后的字符串需大写。即得到签名Sign
新api接口代码:
app调用:http://api.test.com/getproducts?key=app_key&sign=BCC7C71CF93F9CDBDBA35&参数1=value1&参数2=value2.......
注:secret&仅作加密使用,&为了保证数据安全请不要在请求参数中使用。
如上,优化后的请求多了key和sign参数,这样请求的时候就需要合法的key和正确签名sign才可以获取产品数据。这样就解决了身份验证和防止参数篡改问题,如果请求参数被人拿走,没事,他们永远也拿不到secret,因为secret是不传递的。再也无法伪造合法的请求。
但是...这样就够了吗?细心的同学可能会发现,如果我获取了你完整的链接,一直使用你的key和sign和一样的参数不就可以正常获取数据了...-_-!是的,仅仅是如上的优化是不够的
请求的唯一性:
为了防止别人重复使用请求参数问题,我们需要保证请求的唯一性,就是对应请求只能使用一次,这样就算别人拿走了请求的完整链接也是无效的。唯一性的实现:在如上的请求参数中,我们加入时间戳 :timestamp(yyyyMMddHHmmss),同样,时间戳作为请求参数之一,也加入sign算法中进行加密。
新的api接口:
app调用:http://api.test.com/getproducts?key=app_key&sign=BCC7C71CF93F9CDBDBA35&timestamp=&参数1=value1&参数2=value2.......
如上,我们通过timestamp时间戳用来验证请求是否过期。这样就算被人拿走完整的请求链接也是无效的。
Sign签名安全性分析:
通过上面的案例,我们可以看出,安全的关键在于参与签名的secret,整个过程中secret是不参与通信的,所以只要保证secret不泄露,请求就不会被伪造。
上述的Sign签名的方式能够在一定程度上防止信息被篡改和伪造,保障通信的安全,这里使用的是MD5进行加密,当然实际使用中大家可以根据实际需求进行自定义签名算法,比如:RSA,SHA等。
源码下载:
源代码:http://git.oschina.net/daimali/Daimali.ISV
欢迎关注个人技术类公众号CodeL
阅读(...) 评论()

我要回帖

更多关于 phpapi接口实例 的文章

 

随机推荐