📜  bd 短信网关,laravel 短信网关,短信发送库,bd 短信,短信网关 (1)

📅  最后修改于: 2023-12-03 15:29:36.329000             🧑  作者: Mango

介绍bd短信网关和laravel短信网关

短信网关是指一个用于接收和发送短信的中间设备或接口,它将短信的原始信息转换成可管理和处理的形式,在各个平台之间传递和维护短信。本文将为您介绍bd短信网关和laravel短信网关。

bd短信网关
概述

bd短信网关是一款基于HTTP和SOAP通信协议,由Baidu公司开发的短信网关服务。它提供短信发送、状态查询、短信回执等功能,能帮助您快速、高效地发送短信。通过使用它,您可以将您的短信服务集成到您的应用程序中,从而更好地控制短信服务并促进短信服务的壮大。

特性
  • 稳定性高,可靠性强。bd短信网关基于Baidu公司研发的大规模分布式架构,可以承受大流量的短信请求,保证短信发送的高质量和稳定性。
  • 高效发送。bd短信网关支持批量发送短信,可满足多场景短信发送需求。
  • 方便易用。您只需要正确设置参数和方法即可使用该服务发送和接收短信。bd短信网关提供了丰富的API操作文档和SDK,使其易于集成到您的任何一个项目中。
使用方法

您可以使用以下代码片段来将bd短信网关集成到您的应用程序中:

<?php

/**
 * 发送短信
 */
function sendSMS($phone, $message) {
    $url = "http://120.27.34.110:8881/sms";
    $username = "username";
    $password = "password";
    $extno = "extno";
    
    $postData = array(
        'u' => $username,
        'p' => $password,
        'm' => $phone,
        'c' => $message
        'e' => $extno
    );
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData));
    
    $result = curl_exec($ch);
    curl_close($ch);

    return $result;
}

/**
 * 查询短信状态
 */
function getSmsStatus($msgid) {
    $url = "http://120.27.34.110:8882/query";
    $username = "username";
    $password = "password";
    
    $postData = array(
        'u' => $username,
        'p' => $password,
        'msgId' => $msgid
    );
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData));
    
    $result = curl_exec($ch);
    curl_close($ch);

    return $result;
}

?>
laravel短信网关
概述

laravel短信网关是一款基于PHP语言和Laravel框架开发的短信网关服务。它提供集成laravel框架中的扩展包和包含服务提供者的服务框架中。它支持多种短信网关(bd,阿里云,云片等)以及自定义短信网关,用户可以根据自身需求选择适合自身的短信网关,方便实现短信发送,状态查询等功能。

特性
  • 支持多种短信网关。laravel短信网关支持多种主流短信网关,包括bd,阿里云,云片等,用户可以根据具体需求选择适合自身的短信网关。
  • 基于Laravel框架开发。laravel短信网关是基于Laravel框架进行开发,可以方便地将短信服务集成到Laravel应用程序中。
  • 支持自定义短信网关。如果您在支持的短信网关中找不到适合自己的,laravel短信网关提供了自定义短信网关的功能,方便您实现个性化需求。
使用方法

您可以使用以下代码片段将laravel短信网关集成到您的Laravel应用程序中:

<?php

/**
 * step 1 :向服务容器中注册短信服务提供者
 *
 * warning:这里使用了bd短信网关做为示例
 */
namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use HaiyangZhao\SMS\SMSService;

class SMSServiceProvider extends ServiceProvider
{

    public function register()
    {
        $this->app->singleton(SMSService::class, function () {
            return new SMSService("bd", [
                'username' => '<username>',
                'password' => '<password>',
                'extno' => '<extno>' 
            ]);
        });
    }

    public function boot()
    {
        //
    }
}

/**
 * step 2:定义发送短信的方法
 */
namespace App\Services;

use HaiyangZhao\SMS\SMSService;

class SMSService {
    protected $smsService;

    public function __construct(SMSService $smsService) {
        $this->smsService = $smsService;
    }

    /**
     * 发送短信
     */
    public function sendSMS($phone, $message) {
        return $this->smsService->sendSms($phone, $message)->toArray();
    }

    /**
     * 查询短信发送状态
     */
    public function getStatus($msgid) {
        return $this->smsService->getStatus($msgid)->toArray();
    }
}

/**
 * step 3: 在controller中使用
 */
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Services\SMSService;

class SMSController extends Controller {

    protected $smsService;

    public function __construct(SMSService $smsService){
        $this->smsService = $smsService;
    }

    public function sendSMS(Request $request) {
        $phone = $request->input('phone');
        $message = $request->input('message');

        $result = $this->smsService->sendSMS($phone, $message);

        return response()->json($result);
    }

    public function getStatus(Request $request) {
        $msgid = $request->input('msgid');

        $result = $this->smsService->getStatus($msgid);

        return response()->json($result);
    }
}
?>
总结

以上便是介绍bd短信网关和laravel短信网关的详细内容,您可以根据自己的需求选择适合自己的短信网关。由于篇幅有限,介绍中可能有所遗漏,您可以查阅官方文档获取更加详细的信息。