• 技术文章 >后端开发 >php教程

    php天翼开放平台短信发送接口实现方法_PHP

    2016-06-01 11:06:48原创362
    本文实例讲述了php天翼开放平台短信发送接口实现方法。分享给大家供大家参考。具体分析如下:

    临时性需求,研究了一下天翼开发平台的东西,用来发送验证码还是不错的,但是每日限额不多,所以很鸡肋,但是保证100%到达 买的话还是蛮贵的,代码没有做任何优化处理,只是测试是否可以实现接口,用的同学记得完善代码,刚写完老大又说是鸡肋的东西,不用了,代码放在博客记录下,代码如下:

    代码如下:

    <?php
    //
    date_default_timezone_set('PRC');
    //获取access_token
    $data = "app_id=x&app_secret=x&grant_type=client_credentials";
    $ch = curl_init("https://oauth.api.189.cn/emp/oauth2/v2/access_token");
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_POST,1);//使用post提交数据
    curl_setopt($ch,CURLOPT_POSTFIELDS,$data);//设置 post提交的数据
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    // 从证书中检查SSL加密算法是否存在

    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    $access_token = curl_exec($ch);
    curl_close($ch);
    $access_token = json_decode($access_token,true);
    //获取短信信任码
    $timestamp = date('Y-m-d H:i:s');

    $param['app_id'] = "app_id=x";
    $param['access_token'] = "access_token=".$access_token['access_token'];
    $param['timestamp'] = "timestamp=".$timestamp;
    ksort($param);
    $plaintext = implode("&",$param);
    $sign = rawurlencode(base64_encode(hash_hmac('sha1',$plaintext,app_secret,true)));
    //echo $sign;exit;
    $code = file_get_contents("http://api.189.cn/v2/dm/randcode/token?app_id=x&access_token={$access_token['access_token']}×tamp=".$timestamp."&sign=".$sign);
    $code = json_decode($code,true);
    $code = $code['token'];
    echo $code;
    //下发验证码
    unset($param,$plaintext,$sign);
    $param['app_id'] = "app_id=x";
    $param['access_token'] = "access_token=".$access_token['access_token'];
    $param['token'] = "token=".$code;
    $param['phone'] = "phone=15091421612";
    $param['url'] = "url=http://wx.podapi.com/test.php";
    $param['exp_time'] = "exp_time=2";
    $param['timestamp'] = "timestamp=".$timestamp;
    ksort($param);
    $plaintext = implode("&",$param);
    $sign = rawurlencode(base64_encode(hash_hmac('sha1',$plaintext,'xx',true)));

    $data = "app_id=x&access_token={$access_token['access_token']}&token={$code}&phone=15091421612&url=http://wx.podapi.com/test.php&exp_time=2×tamp={$timestamp}&sign=".$sign;
    $ch = curl_init("http://api.189.cn/v2/dm/randcode/send");
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_POST,1);//使用post提交数据
    curl_setopt($ch,CURLOPT_POSTFIELDS,$data);//设置 post提交的数据
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    // 从证书中检查SSL 加密算法是否存在
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    $state = curl_exec($ch);
    //var_dump(curl_getinfo($ch));
    curl_close($ch);
    //echo $state;
    ?>

    希望本文所述对大家的php程序设计有所帮助。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:微信公众平台开发关注及取消关注事件的方法_PHP 下一篇:PHP获取当前完整URL地址的函数_PHP
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• js 弹窗出现乱码了解决方案 • php调用远路url的四种方法 • PHP兑现快速排序算法 • PHP框架,伤不讫啊伤不起 • php同步议案
    1/1

    PHP中文网