短信接口

本文详细介绍了一种基于PHP的短信API接口实现方法,包括如何使用YmSmsAPI类发送短信验证码,获取上行接口及余额接口。通过具体代码示例,读者可以了解如何配置app_id、secret_key等参数,以及如何调用发送短信、获取余额等功能。
<?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;
    }
}

 

转载于:https://www.cnblogs.com/zwtqf/p/10740108.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值