laravel项目需要用到短信渠道,使用phpsms发送短信,但是项目中接的短信渠道并不是phpsms默认支持的,需要修改代理器,phpsms支持两种自定义代理器,一种是自定义代理器,一种是寄生代理器,由于本人是php小白,没看懂官方的自定义代理器(继承Toplan\PhpSms\Agent类,实现接口)所以就按照官网的例子稍微改了改

下面以鼎信短信接入为例

第一步在发送短信的地方设置个scheme

Sms::scheme(['decentAgent' => ['20 backup','sendTemplateSms' => function($agent, $to, $tmpId, $tmpData){// 获取配置(如果设置了的话):
//                            $key = $agent->key;// 可使用的内置方法:$params = array('mobile' => $to,'param' => 'code:'.$tmpData['code'],'tpl_id' => $tmpId,);$config = $agent->config;// 获取代理的配置$headers = array(CURLOPT_HTTPHEADER => array('Authorization:APPCODE ' . $config['appCode'],),CURLOPT_HEADER => true,);$rsp = $agent->curlPost($config['url'], $params, $headers); //post请求Log::debug($rsp);$pattern = '/(?<=\{)[^\}]+/';$arrMatches = [];preg_match($pattern, $rsp['response'], $arrMatches);Log::debug($arrMatches);$result = '{'.$arrMatches[0].'}';Log::debug($result);if (json_decode($result)->return_code !== '00000'){throw new OuterException('短信发送失败');}// 更新发送结果:$agent->result(Agent::SUCCESS, true);$agent->result(Agent::INFO, 'some info');$agent->result(Agent::CODE, 'your code');},]]);

2、设置配置信息

Sms::config(['decentAgent' => ['url'       => $aliyunDecent['url'],'appCode'   => $aliyunDecent['appCode'],'tpl_id'    => $aliyunDecent['tpl_id'],],]);

3、发送

$status = Sms::make()->to($to)->template('decentAgent', $aliyunDecent['tpl_id'])->data($data)->send();

to template data 是sendTemplateSms方法的参数

'sendTemplateSms' => function($agent, $to, $tmpId, $tmpData){}

如果是内容短信只需要传入内容content即可

类库Agent.php中根据内容或模版是否为空来判断发送哪种短信,下面是判断代码

public function sendSms($to, $content = null, $tempId = null, array $data = [], array $params = []){$this->reset();$this->params($params, true);$to = $this->formatMobile(Util::formatMobiles($to));if ($tempId && $this instanceof TemplateSms) {$this->sendTemplateSms($to, $tempId, $data);} elseif ($content && $this instanceof ContentSms) {$this->sendContentSms($to, $content);}}

4、在config/phpsms.php文件中配置scheme 和config

'scheme' => [
//        'Log','decentAgent',],
'decentAgent' => ['url'           => 'http://','appCode'   => 'xxxx','tpl_id'   =>  'xxxx',],

四步完成即可发送短信

路过的大神有谁会自定义代理器的望指教,php初级伤不起

参考链接:https://github.com/toplan/phpsms#%E5%AF%84%E7%94%9F%E4%BB%A3%E7%90%86%E5%99%A8

/toplan/phpsms#寄生代理器发送短信相关推荐

  1. 安卓短信功能全解:调用系统短信功能发送短信、彩信,使用SmsManager发送短信,并监听发送短信的投递情况,使用广播接收器监听接收的短信。

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓短信功能全解:调用系统短信功能发送短信.彩信,使用SmsManager发送短信,并监听发送短信的投递情况,使用广播接收器监听接收的短信. 首先需要 ...

  2. PhpSms 稳定可靠的php短信发送库

    可能是目前最聪明.优雅的php短信发送库了.从此不再为各种原因造成的个别短信发送失败而烦忧! phpsms的任务均衡调度功能由toplan/task-balancer提供. GitHub地址:http ...

  3. android不调用系统发送短信,android之两种方式调用短信发送接口

    释放双眼,带上耳机,听听看~! 相信很多程序员在开发程序的时候都会遇到短信调用端口的情况,今天是技术狗小编为大家带来的关于android之两种方式调用短信发送接口,希望对你学习这方面知识有帮助! an ...

  4. 安卓 发送短信两种方式

    android中可以通过两种方式发送短信 第一:调用系统短信接口直接发送短信:主要代码如下: Java代码   //直接调用短信接口发短信 SmsManager smsManager = SmsMan ...

  5. php调用nexmo发送短信,在 Laravel 中 “规范” 的开发短信验证码发送功能

    Laravel简介 Laravel是一套简洁.优雅的PHP Web开发框架(PHP Web Framework).它可以让你从面条一样杂乱的代码中解脱出来:它可以帮你构建一个完美的网络APP,而且每行 ...

  6. android之发送短信的方法研究

    android中可以通过两种方式发送短信 第一:调起系统发短信功能:主要代码如下: Uri uri = Uri.parse("smsto:10010"); Intent it = ...

  7. 个人永久性免费-Excel催化剂功能第85波-灵活便捷的批量发送短信功能(使用腾讯云接口)...

    微信时代的今天,短信一样不可缺席,大系统都有集成短信接口. 若只是临时用一下,若能够直接在Excel上加工好内容就可以直接发送,这些假设在此篇批量群发短信功能中都为大家带来完美答案. 业务场景 不多说 ...

  8. Java用户注册服务器发送短信验证码功能实现

    <–start–> 当客户端发送了http的请求给服务器之后,服务器获取手机号然后调用短信平台给该手机号发送短信验证码. 给服务器发送请求的js代码: <script type=&q ...

  9. android 调用短信,android中可以通过两种方式调用接口发送短信

    第一:调用系统短信接口直接发送短信:主要代码如下: //直接调用短信接口发短信 SmsManager smsManager = SmsManager.getDefault(); List divide ...

最新文章

  1. android 动态人脸识别码,android OpenCV研究之动态人脸识别
  2. 【学术相关】一个博士生接受怎样的训练是完整、全面的科研训练?
  3. 详解Python中的JSON以及在Python中使用JSON
  4. 使用Chatkit构建Node.js命令行聊天应用程序
  5. Leetcode每日一题:面试题17.10.find-majority-element-lcci(主要元素)
  6. 颠覆你想象的150个故事(2)
  7. java简单入门教程_史上最快速最简单的java入门教程
  8. 苹果手机没声音了显示耳机模式_Airpods Pro 安卓苹果双机体验
  9. 计算机系技能比赛黑板报,技能成就梦想黑板报图文
  10. linux创建777权限的文件,Linux文件夹权限777,无法创建文件
  11. 【安卓开发】开源Notepad记事本APP项目(完整代码+说明文档)
  12. python调用gephi_利用Python和Gephi制作人物关系网络图
  13. 爪哇国新游记之十七----肺腑之言
  14. 大学计算机引论作业,计算机引论-1计算引论-认识计算机.pdf
  15. 历史的温度3:时代扑面而来,转瞬即成历史 读后感
  16. js数组置顶元素(将某一项移到首位)
  17. 狡猾的商人[HNOI2005]
  18. 【面试】奇虎360笔试解答
  19. 逆序数(inverse number)
  20. Automation Anywhere 认证考试

热门文章

  1. 磁盘负载指标 %iowait, await, %util 的正确理解
  2. win10移动热点之前开过,后来又不能用了。手机也是无法连接到ip
  3. oracle锁表、解锁方法
  4. 【转载】RAC 修改 spfile 参数
  5. 英国政府为高校提供50万英镑基金 培养网安人才
  6. 云台和华为p30pro_p30pro和mate30pro对比
  7. 一加5android,骁龙 835 手机一加 5 迎来氢 OS 安卓 10 公测版
  8. phpstorm 取消工作区右侧白色线
  9. 虚拟机磁盘分区(20G升50G)
  10. 如何爬取B站搜索结果