zoukankan      html  css  js  c++  java
  • 短信接口

    <?php
    
    class YmSmsAPI
    {
        private $app_id = '';  //appid
        private $secret_key = '';     //密钥
        private $address = 'http://bjksmtn.b2m.cn';  //接口地址
        private $sms_send_url = '/simpleinter/sendSMS';  //发送短信接口
    
        function http_request($url, $data)
        {
            print_r($url);
            print_r(END);
            print_r($data);
            print_r(END);
            $data = http_build_query($data);
            $curl = curl_init();
            curl_setopt($curl, CURLOPT_URL, $url);
            curl_setopt($curl, CURLOPT_POST, TRUE);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
            $output = curl_exec($curl);
            curl_close($curl);
            print_r($output);
            return $output;
        }
    
        function signmd5($app_id,$secret_key,$timestamp){
            return md5($app_id.$secret_key.$timestamp);
        }
    
        /**
         * 发送短信验证码
         * @param string $app_id 用户appId
         * @param string $timestamp 时间格式yyyyMMddHHmmss
         * @param string $sign 签名md5(appId+ secretKey + timestamp)32位
         * @param string $mobile 手机号
         * @param string $content 短信内容
         * @param string $timerTime 定时发送时间,若不填即时发送
         * @param string $customSmsId 自定义消息id
         * @param string $extendedCode 扩展码(最长12位)
         * @return array
         */
        function sendSMS($mobile,$code)
        {
            $app_id = $this->app_id;
            $secret_key = $this->secret_key;
            $address = $this->address;
            $sms_send_url = $this->sms_send_url;
            $content = "您的短信验证码为".$code.",10分钟内有效";/* 短信内容请以商务约定的为准,如果已经在通道端绑定了签名,则无需在这里添加签名 */
            $timestamp = date("YmdHis");
            $sign = $this->signmd5($app_id,$secret_key,$timestamp);
            // 如果您的系统环境不是UTF-8,需要转码到UTF-8。如下:从gb2312转到了UTF-8
            // $content = mb_convert_encoding( $content,"UTF-8","gb2312");
            // 另外,如果包含特殊字符,需要对内容进行urlencode
            $data = array(
                "appId" => $app_id,
                "timestamp" => $timestamp,
                "sign" => $sign,
                "mobiles" => $mobile,
                "content" =>  $content,
                "customSmsId" => "",
                "timerTime" => "",
                "extendedCode" => ""
            );
            $url = $address.$sms_send_url;
            $resobj = http_request($url, $data);
            return $resobj;
        }
    
        /**
         * 获取上行接口
         */
        function getMo()
        {
            $app_id = $this->app_id;
            $secret_key = $this->secret_key;
            $address = $this->address;
            $sms_send_url = $this->sms_send_url;
            $timestamp = date("YmdHis");
            $sign = $this->signmd5($app_id,$secret_key,$timestamp);
            $data = array(
                "appId" => $app_id,
                "timestamp" => $timestamp,
                "sign" => $sign,
                "number" => "300"
            );
            $url = $address.$sms_send_url;
            $resobj = http_request($url, $data);
            return $resobj;
        }
    
        /**
         * 获取余额接口
         */
        function getBalance()
        {
            $app_id = $this->app_id;
            $secret_key = $this->secret_key;
            $address = $this->address;
            $sms_send_url = $this->sms_send_url;
            $timestamp = date("YmdHis");
            $sign = $this->signmd5($app_id,$secret_key,$timestamp);
            $data = array(
                "appId" => $app_id,
                "timestamp" => $timestamp,
                "sign" => $sign
            );
            $url = $address.$sms_send_url;
            $resobj = http_request($url,$data);
            return $resobj;
        }
    }
  • 相关阅读:
    社交需求和社交产品的更替
    腾讯产培生面经
    【C++基础】类class
    【C++基础】结构struct
    【C++基础】C-串知识整理
    GeoServer war包在tomcat7中配置遇到的一个问题
    pgrouting 2.0 的环境配置
    阿里2014年9月笔试中的一个算法设计题--擦黑板剩余数字
    VisualSVN Server的启动关闭脚本
    二叉树遍历(前序、中序、后序)的递归及非递归实现(小结)
  • 原文地址:https://www.cnblogs.com/zwtqf/p/10740108.html
Copyright © 2011-2022 走看看