shikiryu/laravel-ovh-sms

为Laravel的OVH短信服务提供包装

dev-master 2021-04-01 14:25 UTC

This package is auto-updated.

Last update: 2024-09-13 22:18:59 UTC


README

简介

此包是为Laravel 5+设计的OVH短信服务的非官方包装器。

此项目使用了php-ovh api (https://github.com/ovh/php-ovh) - v2.0.1。

安装

  1. 使用composer安装包
composer require okn/laravel-ovh-sms
  1. 仅适用于Laravel版本 < 5.5
    config/app.php 中添加服务提供者和类别名以支持外观
'providers' => [
	// ...
	Okn\OvhSms\OvhSmsServiceProvider::class
];

'aliases' => [
   	// ...
   	'OvhSms' => Okn\OvhSms\Facades\OvhSms::class
];
  1. 运行artisan命令安装服务
php artisan ovhsms:install

此命令将创建一个默认的配置文件 config/ovhsms.php

配置

应用程序密钥必须在 .env 文件中定义,如下所示

OVHSMS_APP_KEY=
OVHSMS_APP_SECRET=
OVHSMS_CONSUMER_KEY=
OVHSMS_ENDPOINT=
OVHSMS_SERVICE_NAME=

为了让这个库与你的项目一起工作,你需要定义同质的路由权限(所有以斜杠结尾或都不以斜杠结尾)。默认配置添加了一个(例如:/sms/*/jobs 变为 /sms/*/jobs/),因此为了适应你的权限,你可以在你的 .env 文件中添加以下行

OVHSMS_TRAILING_SLASH=false

使用

默认使用

  1. 创建消息
$sms = OneSignal::createMessage('This my sms. Can you read it ?');
  1. 发送消息
$smsStatus = $sms->send(['+xxxxxxxxxxx']);

限制要发送的短信部分

$sms->limitParts(1)->send(['+xxxxxxxxxxx']);

如果估计的短信部分数量超过你定义的限制,这将抛出一个异常。

异常

cURL错误60:SSL证书问题...
cURL需要SSL证书才能通过https协议进行通信。

解决方案1(推荐)

在本地机器上安装SSL证书

假设你在Windows上使用WAMP

  • 下载你的本地服务器的SSL证书 https://curl.haxx.se/ca/cacert.pem
  • 将其放在你喜欢的目录中(我的目录是 C:\Users\[MY-USERNAME]\cacert.pem
  • 编辑你的 php.ini 中的此变量以添加证书路径
curl.cainfo = "C:\Users\[MY-USERNAME]\cacert.pem"
  • 重启你的网络服务器

现在它应该可以工作了,如果不起作用,你可以尝试下一个解决方案。

解决方案2

禁用SSL验证(不推荐)

.env 文件中,你可以添加以下行

OVHSMS_VERIFY_SSL=false