Giter Site home page Giter Site logo

easy-sms's Introduction

easy-sms's People

Contributors

0daypwn avatar anhao avatar crny avatar dependabot-preview[bot] avatar fenguoz avatar hanson avatar her-cat avatar imxfly avatar iwzh avatar jcc avatar jesse7866 avatar jinchun avatar keacefull avatar lcp0578 avatar littlehz avatar luomoxu avatar medz avatar milkmeowo avatar mumianzi avatar novalevel avatar nsnake avatar overtrue avatar scrutinizer-auto-fixer avatar sgssxf avatar suguer avatar timjuly avatar tiniyoadmin avatar xule avatar zhenggg avatar zingimmick avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

easy-sms's Issues

请问如何同时使用多家服务商

  1. 首先问一下,该库定位是不是可以同时使用多家服务商发送短信?

  2. 其次,再问一下,如何处理每一家服务商对应的模板ID不同的问题(如果是这家服务商需要采用模板发送短信)的?

我想,关于模板ID的处理好像有点问题吧

腾讯短信测试问题

使用模板代码发送短信测试的时候报错:
Overtrue\EasySms\Exceptions\InvalidArgumentException with message 'Gateway "Overtrue\EasySms\Gateways\TencentGateway" not exists.'
这里面的TencentGateway 不应该是QcloundGateway嘛

华信短信手机号错误

\Overtrue\EasySms\Gateways\HuaxinGateway::send
'mobile' => $to, 这里手机号没有转成字符串形式

阿里云国际短信发送失败并且没有报错

阿里云的国际短信发送,直接执行可以发送成功,但是通过队列执行就会发送失败,下面是记录的错误

[2018-05-23 08:26:25] local.INFO: ***国际短信错误记录***  
[2018-05-23 08:26:25] local.INFO: 手机号码:********  
[2018-05-23 08:26:25] local.INFO: 国际冠码:1  
[2018-05-23 08:26:25] local.INFO: 发送数据:{"code":"4114"}  
[2018-05-23 08:26:25] local.INFO: {"aliyun":{"status":"failure","exception":{}}}  
[2018-05-23 08:26:25] local.INFO: ====短信发送错误记录结束===  

并没有任何的 Exception 内容返回,请教下这个问题怎么解决?

关于自己扩展

大神, 我想问下,如果我要自己扩展一个网关,但是我又不想写到你的包里,我该怎么操作,网关我已经写好了,继承了Gateway,但是,我不知道怎么注册它?

创蓝api curl error 60

运行页面报错
cURL error 60: SSL certificate problem: self signed certificate in certificate chain (seehttp://curl.haxx.se/libcurl/c/libcurl-errors.html)

controller 

$this->easySms->send('*****', [
                'content' => '您请求的验证码为: ' . $this->phoneCodeService->phoneCode($request->input('phone_number'))
            ]);
easy-sms.php

return [
    // HTTP 请求的超时时间(秒)
    'timeout' => 5.0,

    // 默认发送配置
    'default' => [
        // 网关调用策略,默认:顺序调用
        'strategy' => \Overtrue\EasySms\Strategies\OrderStrategy::class,

        // 默认可用的发送网关
        'gateways' => [
            'chuanglan'
        ],
    ],
    // 可用的网关配置
    'gateways' => [
        'errorlog' => [
            'file' => '/tmp/easy-sms.log',
        ],
        'chuanglan' => [
            'username'  => env('CHUANGLAN_USERNAME'),
            'password' => env('CHUANGLAN_PASSWORD'),
        ],
    ],
];

手机号的问题

比如阿里云的要求➕地区码
腾讯要求 不能+地区码
如何兼容

超哥 求助

用的是阿里云的短信服务,同一个手机号码,上午可以正常发送并且接受到短信。
然后到晚上发送这个手机 就会报错,别的手机号码是正常的

NoGatewayAvailableException in Messenger.php line 88:
All the gateways have failed.

华信短信发送错误

\Overtrue\EasySms\Gateways\HuaxinGateway::send
'mobile' => $to, // 这里手机号没有转成字符串形式

阿里大鱼的请求失败。错误信息:权限不够

加载了控件,输入相关配置

$config = [
            // HTTP 请求的超时时间(秒)
            'timeout' => 5.0,

            // 默认发送配置
            'default' => [
                // 网关调用策略,默认:顺序调用
                'strategy' => \Overtrue\EasySms\Strategies\OrderStrategy::class,

                // 默认可用的发送网关
                'gateways' => [
                    'alidayu'
                ],
            ],
            // 可用的网关配置
            'gateways' => [
//                'errorlog' => [
//                    'file' => '',
//                ],
                'alidayu' => [
                    'app_key' => '',//阿里云账号access key
                    'app_secret' => '', //阿里云账号access secret
                    'sign_name' => '',//通过审核的一个签名
                ],
            ],
        ];

        $easySms = new EasySms($config);
//dd($easySms);
        $message = [
            'template' => 'SMS_XXXXX', //通过审核的一个模板id
            'data' => [
                'name' => $name, //一个参数
            ],
        ];
        $result = $easySms->send(13888888888, $message);

得到的返回数据是:

{"code":11,"msg":"Insufficient isv permissions","sub_code":"isv.permission-api-package-limit","sub_msg":"scope ids is 11022 11600 11863","request_id":"iv15fxmtv8z6"}

调试了很久不太好使,我尝试了阿里大鱼自带的一个demo,也是用以上的配置,该复制的复制。发送短信没有问题。
同时,注意到人家给的demo里面,有这么几个参数:

//短信API产品名
$product = "Dysmsapi";
//短信API产品域名
$domain = "dysmsapi.aliyuncs.com";

然后阿里大鱼的配置项里面的是:

const ENDPOINT_URL = 'https://eco.taobao.com/router/rest';
const ENDPOINT_METHOD = 'alibaba.aliqin.fc.sms.num.send';

还是挺想用这个插件的~但是可能是我用的方法不太对?希望有人能指导一下

百度的应该是不能用了。

Client error: POST http://sms.bj.baidubce.com/bce/v2/message resulted in a 401 Unauthorized response
同样的配置使用另外一个包可以发送成功。

如果配置更强大一点就更好了

建议把短信平台的URL也放到配置文件里。因为好多公司都用的是二级代理(比如我们公司),虽然也是创蓝的文档,但是请求的地址却不是同一个。

SendCloud 替换变量格式错误

当 SendCloud 使用模板无变量替换时,发送参数 vars 为字符串 "vars" => "[]" 导致 SendCloud 报错:替换变量格式错误。

可考虑过滤掉空值 或 为空情况下 formatTemplateVars 返回数组:

if (empty($vars)) {
    return $formatted;
}

支持多种签名

由于历史问题,发送不同的通知短信,使用了不同的模板,以及不一样的签名。不同的 gateway 也可能签名不同。

what is the problem

Could not find package overtrue/easy-sms at any version for your minimum-stability (stable). Check the package spelling or your minimum-stability

如果抛出异常我要怎么捕获错误信息?

我现在使用的阿里云,出现 All the gateways have failed. 我打印出错误信息是请求频繁了,有没有方便的方法获取这个错误信息?
{"aliyun":{"status":"failure","exception":{"raw":{"Message":"触发小时级流控Permits:5","RequestId":"A324EFD4-3162-4354-9D39-24AE4EE6871F","Code":"isv.BUSINESS_LIMIT_CONTROL"}}}}

我现在打印这个信息是 return $e->results;如果我只想获取Message 信息要怎么做 是不是所有的短信通道都可以这么获取?

国际短信怎么发送呢

我现在知道怎么去发送国际短信了 但是我现在不知道怎么去兼容。比如Qcloud 需要再data里加一个nationcode,mobile不带国家地区号,但是阿里云的在mobile里带国家地区号 ,我应该怎么兼容呢
$data = [
'content' => '【签名】您的验证码是:'.$rand,
'template' => 'SMS_133969095',
'data' => [
'code' => $rand,
' '=>'00852',
],
];
$mobile = '00000000';
我现在这样配置 Qcloud可以发送,但是阿里云就失败了

[建议]所有gateway均失败时,是否应当抛异常

我注意到 Messenger->send() 返回的是一个数组,包含了每次不同的gateway请求的结果。
是否考虑所有gateway全部返回失败时,抛出特定异常给业务层捕获?
毕竟有重试、或者随机取的机制,不抛异常的话,业务层很难确定所有接口均调用失败的情况(不知道是哪个key)

云片报错捕获不到异常

GuzzleHttp\Exception\ClientException #400
Client error: POST https://sms.yunpian.com/v2/sms/single_send.json resulted in a 400 Bad Request response

我对“添加对融云的支持”的疑问

请问有没有什么注意事项,当我提交PR的时候?

另外,我将要添加的RongcloudGateway中,默认是发送短信功能。不过,通过在data[]中添加action扩展额外的功能,比如验证短信验证的正确性,因为这个是由融云接口提供的,不知道这样有没有违背框架库的东西?

SendCloud 时间戳无效

SendCloud 服务端时间戳为 13 位 JS 时间戳,所以 SendCloud 发送时会返回:时间戳无效,与服务器时间超过60000毫秒。

SendCloud 文档提示需要通过接口获取时间戳:http://www.sendcloud.net/smsapi/timestamp/get

故可以考虑注释掉 SendcloudGateway.php 46 行 或者 补全 13 位时间戳。

aliyun不能用啊

按照文档配置好了,就是不行,目前用的是阿里官方的sdk,想用这个扩展包,但是不知道哪里出了问题,config都正确配置了,template和data也写了,就是不行呢...

阿里大于ssl错误

如题,修改了HasHttpRequest getBaseOptions 自己解决了,请问有什么更好的方法。
protected function getBaseOptions()
{
$options = [
'base_uri' => method_exists($this, 'getBaseUri') ? $this->getBaseUri() : '',
'timeout' => property_exists($this, 'timeout') ? $this->timeout : 5.0,
'verify' => false,
];

    return $options;
}

用阿里云的时候提示手机号不可用要这样写

$number = new PhoneNumber(13188888888, 00);
try {
$result = $easySms->send( $number, [
// 'content' => '您的验证码为: 6379',
'template' => 'SMS_136335001',
'data' => [
'status' => 'status-test',
'remark' => 'remark-test',
]]
);

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.