短信接口

时间:2019-04-20
本文章向大家介绍短信接口,主要包括短信接口使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
<?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;
    }
}