阿里大鱼短信接口PHP版,精简版阿里大鱼短信SMS发送接口PHP实例

201803更新为官方精简版

只有两个文件,不压缩都才6KB左右

文件1 :Signature.php 

<?php
/*
 * 执行验证前请确保文件为utf-8编码,并替换相应参数为您自己的信息,并取消相关调用的注释
 * 来自2017/11/30 阿里云短信官方DEMO 
 */
 
namespace Aliyun\DySDKLite;

/**
 * 签名助手 2017/11/19
 *
 * Class SignatureHelper
 */
class SignatureHelper {

    /**
     * 生成签名并发起请求
     *
     * @param $accessKeyId string AccessKeyId (https://ak-console.aliyun.com/)
     * @param $accessKeySecret string AccessKeySecret
     * @param $domain string API接口所在域名
     * @param $params array API具体参数
     * @param $security boolean 使用https
     * @return bool|\stdClass 返回API接口调用结果,当发生错误时返回false
     */
    public function request($accessKeyId, $accessKeySecret, $domain, $params, $security=false) {
        $apiParams = array_merge(array (
            "SignatureMethod" => "HMAC-SHA1",
            "SignatureNonce" => uniqid(mt_rand(0,0xffff), true),
            "SignatureVersion" => "1.0",
            "AccessKeyId" => $accessKeyId,
            "Timestamp" => gmdate("Y-m-d\TH:i:s\Z"),
            "Format" => "JSON",
        ), $params);
        ksort($apiParams);

        $sortedQueryStringTmp = "";
        foreach ($apiParams as $key => $value) {
            $sortedQueryStringTmp .= "&" . $this->encode($key) . "=" . $this->encode($value);
        }

        $stringToSign = "GET&%2F&" . $this->encode(substr($sortedQueryStringTmp, 1));

        $sign = base64_encode(hash_hmac("sha1", $stringToSign, $accessKeySecret . "&",true));

        $signature = $this->encode($sign);

        $url = ($security ? 'https' : 'http')."://{$domain}/?Signature={$signature}{$sortedQueryStringTmp}";

        try {
            $content = $this->fetchContent($url);
            return json_decode($content);
        } catch( \Exception $e) {
            return false;
        }
    }

    private function encode($str)
    {
        $res = urlencode($str);
        $res = preg_replace("/\+/", "%20", $res);
        $res = preg_replace("/\*/", "%2A", $res);
        $res = preg_replace("/%7E/", "~", $res);
        return $res;
    }

    private function fetchContent($url) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_TIMEOUT, 5);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            "x-sdk-client" => "php/2.0.0"
        ));

        if(substr($url, 0,5) == 'https') {
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        }

        $rtn = curl_exec($ch);

        if($rtn === false) {
            trigger_error("[CURL_" . curl_errno($ch) . "]: " . curl_error($ch), E_USER_ERROR);
        }
        curl_close($ch);

        return $rtn;
    }
}

文件2:sendsms.php

<?php
/*
 * 此文件用于验证短信服务API接口,供开发时参考
 * 执行验证前请确保文件为utf-8编码,并替换相应参数为您自己的信息,并取消相关调用的注释
 * 来自2017/11/30 阿里云短信官方DEMO 
 */

namespace Aliyun\DySDKLite\Sms;

require_once "../Signature.php";

use Aliyun\DySDKLite\SignatureHelper;


/**
 * 发送短信
 */
function sendSms() {

    $params = array ();

    // *** 需用户填写部分 ***

    // fixme 必填: 请参阅 https://ak-console.aliyun.com/ 取得您的AK信息
    $accessKeyId = "*****************";
    $accessKeySecret = "**********************";

    // fixme 必填: 短信接收号码
    $params["PhoneNumbers"] = "19999999999";

    // fixme 必填: 短信签名,应严格按"签名名称"填写,请参考: https://dysms.console.aliyun.com/dysms.htm#/develop/sign
    $params["SignName"] = "查分吧"; 

    // fixme 必填: 短信模板Code,应严格按"模板CODE"填写, 请参考: https://dysms.console.aliyun.com/dysms.htm#/develop/template
    $params["TemplateCode"] = "SMS_13740380";

    // fixme 可选: 设置模板参数, 假如模板中存在变量需要替换则为必填项
    $params['TemplateParam'] = Array (
        "code" => "12345",
        "product" => "用户注册验证码"
    );

    // fixme 可选: 设置发送短信流水号
    $params['OutId'] = "12345";

    // fixme 可选: 上行短信扩展码, 扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段
    $params['SmsUpExtendCode'] = "1234567";


    // *** 需用户填写部分结束, 以下代码若无必要无需更改 ***
    if(!empty($params["TemplateParam"]) && is_array($params["TemplateParam"])) {
        $params["TemplateParam"] = json_encode($params["TemplateParam"], JSON_UNESCAPED_UNICODE);
    }

    // 初始化SignatureHelper实例用于设置参数,签名以及发送请求
    $helper = new SignatureHelper();

    // 此处可能会抛出异常,注意catch
    $content = $helper->request(
        $accessKeyId,
        $accessKeySecret,
        "dysmsapi.aliyuncs.com",
        array_merge($params, array(
            "RegionId" => "cn-hangzhou",
            "Action" => "SendSms",
            "Version" => "2017-05-25",
        ))
    );
    return $content;
}

ini_set("display_errors", "on"); 	// 显示错误提示,仅用于测试时排查问题
set_time_limit(0); 					// 防止脚本超时,仅用于测试使用,生产环境请按实际情况设置
header("Content-Type: text/plain; charset=utf-8"); // 输出为utf-8的文本格式,仅用于测试

// 验证发送短信(SendSms)接口
print_r(sendSms());
蚂蚁分类信息系统是分类信息源码里值得推荐的一款,源码包含四色模板(蓝、绿、橙、红)、3种风格(分类、门户、行业),并含有WAP端,推荐做本地分类信息类站点使用。MayiCMS功能简介:1,整合在线支付接口如支付宝,财付通,网银支付/京东钱包接口。2,支持手机端支付宝在线充值3,支持手机端微信在线充值4,支持微信登录,微信公众号绑定5,支持手机发送验证码6,手机信息列表展示·无分页上拉刷新7,负载强,易维护,易拓展,程序和模板完全分离8,增加百度提交网站地图索引文件sitemap.xml的功能9,支持QQ一键登录10,会员注册发布信息IP及地域限制:可限制注册会员及发布信息所在地11,可限时分类置顶以及首页置顶(包括手机),会员可自行操作,扣除的金币数也可在后台设置。12,可自助对信息进行刷新操作(包括手机),扣除的金币数也可在后台设置。13,整合地图标注接口设置(包括 baidu,51ditu,google地图)14,后台可以设置各种类型的网站广告,并且可设置不同页面显示不同的广告15,分类信息栏目支持多级分类,可对指定栏目进行多级细分16,支持所有分类栏目自定义拼音伪静态规则,如http://demo1.mayicms.com/fang/17,支持站内和站外双重用,后台可按自定义条件生成用代码,实现在任意网页自由用网站信息18,系统安装后自带有团购,新闻,商品,优惠券等功能插件,可在后台按需开启或关闭19,各栏目分类信息模型选项字段完全自定义,支持价格等数字输入型字段检索20,可限制信息发布者的手机号21,可设置不同分类的信息查看联系方式需要登录或者需要付费22,不同栏目分类和信息介绍页可设置使用不同的模板23,蚂蚁蓝,赶集绿,58橙,天猫红四种颜色主题自由切换(包括手机)24,数据和网页双重缓存,在缓存数据的基础之上增加支持网页整体缓存功能25,微信等各类小程序和APP支持环境要求:php5.4 + mysql5 + zend安装步骤:1,将程序文件上传至服务器空间上(LINUX服务器注意二进制上传)2,在浏览器执行 http://你的域名/install/index.php 进入安装蚂蚁分类信息系统5.9最新升级说明:1,PC端模板增加悬浮QQ客服,微信客服图标的显示2,修正当个人会员升级为机构会员后级别变成新手上路的问题3,后台首页增加审核机制,方便审核所有网站的信息,会员,新闻,友情链接等模块内容4,会员中心首页增加不同等级会员的权限对照表,一目了然,5,PC端首页和列表页模板增加格子类型模板风格6,增加手机信息页以及商家页分享微信分享朋友圈的功能7,信息分类列表页的标题改进8,修正手机里输入框检测重复时,窗口不停弹出无法关闭的BUG9,修正违禁词语出现后信息不自动转待审的问题10,增加手机端找回用户密码的功能11,手机号增加14,16,19等新号段支持12,增加手机分类信息端举报和收藏功能13,修正部分主机环境下支付宝支付充值成功但未实际到帐的BUG14,修正新闻的数据用排序错误的BUG15,修复部分主机环境下微信支付漏洞16,增加手机端会员自助升级会员组的功能17,改进部分主机环境下IP识别不准确的BUG18,修正部分主机环境下短信发送漏洞19,修正手机安卓系统中操作首页,主图标下拉手势自动触发链接的BUG20,百度标注地图标注优化,增加地址检索的功能21,修复部分主机环境下用户中心SQL注入漏洞22,改进IP地址识别代码,精确度提升至99.99#,商家增加营业时间功能设置24,增加微信登录/QQ登录的用户需要手机实名认证才能发信息的功能25,手机首页和列表页改进为无分页上拉刷新效果26,手机发布界面体验改进27,手机全面支持URL伪静态28,手机首页增加微信二维码客服,公众号订阅显示,方便微信用户订阅,增加用户黏性29,手机修正部分主机环境下分享不显示图标和内容的BUG30,手机首页和信息列表页的信息增加点赞和收藏功能31,手机模板全新风格全新设计32,支持完整全套微信支付接口(增加微信扫码支付,微信手机H5支付,不再局限必须手机微信内部访问才可以支付)33,全新的用户中心模板模板设计34,增加短信短信接口通道支持35,商家功能改进36,增加百度提交网站地图索引文件sitemap.xml的功能37,增加支持APP封装38,增加支持微信小程序39,修复微信扫码登录在PC端,IE等浏览器模式下不能正常登录的BUG40,增加后台分类信息修改浏览次数的功能41,会员中心全面升级改进,用户体验更好更方便42,不同会员组增加每天信息发布数量上限,信息发布总数上限,机构文章发布上限,相册上传上限的功能43,多城市改进后台的分站下拉框筛选形式,操作更为人性化更为简便
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值