overtrue / easy-sms

📲 一款满足你的多种发送需求的短信发送组件
MIT License
3.13k stars 543 forks source link

请问$easySms->send的返回结果如何处理? #227

Closed shihaha closed 2 years ago

shihaha commented 4 years ago

使用的代码如下:

        try {
            $result = $easySms->send($mobile, [
                'template' => 'SMS_xxx',
                'data' => [
                    'code' => $password
                ]
            ]);
            dd($result);
        } catch (\Overtrue\EasySms\Exceptions\NoGatewayAvailableException $exception) {
            $message = $exception->getException('aliyun')->getMessage();
            return [
                'code' => -1,
                'message' => $message
            ];
        }

我想要根据$result的结果来return成功还是失败的返回体 dd($result);的结果如下: 预览模式看见的是这样: image 实际是这样的: image

请问拿到这个返回值之后怎么用代码判断是成功还是失败呀?

datangkang123 commented 4 years ago
        if(($result['aliyun']['result']['Message'])=='OK'){
            echo '发送成功';
        }
overtrue commented 4 years ago

@shihaha 截图里不是有 status?

dogeow commented 3 years ago

2641628327797_ pic_hd

试过很多次,没有收到短信,但是 send 打印结果跟发送成功的返回,试过五六次都是返回这样,这个怎么弄?

[2021-08-07 08:32:18] local.INFO: array (
  'aliyun' => 
  array (
    'gateway' => 'aliyun',
    'status' => 'success',
    'result' => 
    array (
      'RequestId' => '1D8BCE94-503D-58B7-8A31-52B2F37DDE8E',
      'Message' => 'OK',
      'BizId' => '324221728325138139^0',
      'Code' => 'OK',
    ),
  ),
)  
overtrue commented 2 years ago

@likunyan 接口发送成功,用户没收到,这个是比较常见的,一般就是用户曾经投诉过推送账号,或者是运营商下发失败,这个和 SDK 无关了。