php 发送短信 sms,php 调用百度sms来发送短信的实现示例

BaiduSms

百度云 sms php版本

官方没有给出php版本的短信发送sdk, 在此借鉴 [ 点击这里 ],并在此基础上将方法改成 单例模式 在原来的基础上更加容易调用

1.打开 BaiduSms.php 修改 sms函数中 accessKey 、 secretAccessKey 这两个参数登录百度云账号,在右上角头像的安全认证中可以获得

如果发送模板固定,可以修改 init_array 中的 invokeId、templateCode,这样以后调用时,就无需在传这两个参数。

2.修改命名空间,修改第二行的namespace,修改成为自己的目录。(laravel为例,我是放在 app/Http/Library 下)

3.调用

$to = [

//"invokeId" => "", //如果在类中已经设定好,则此处无需再写

//"templateCode" => "", //如果在类中已经设定好,则此处无需再写

"phoneNumber" => "188********",

"contentVar" => [

"code" => str_shuffle(rand(100000,999999)) //模板里面的变量

]

];

$re = BaiduSms::sms($to);//发送

//var_dump($re); //打印返回结果

/**********打印结果START************/

object(stdClass)#869 (3) {

["code"]=>

string(4) "1000"

["message"]=>

string(6) "成功"

["requestId"]=>

string(36) "9b2fbcca-6da9-4bfc-a458-93a676dcbb48"

}

/**********打印结果END************/

4.sms函数接收两个数组参数 ,一个是发送的数据的数组,一个是初始化endPoint、accessKey、secretAccessKey的数组,如果不想在类中固定初始化的key,则传入第二个参数即可。例:BaiduSms::sms(to,to,config)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间: 2018-11-01

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要在阿里云控制台中创建签名和模板,并获取到 AccessKeyId 和 AccessKeySecret。 接下来,在Spring Boot项目中添加阿里云 Java SDK的依赖: ``` <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.5.3</version> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-dysmsapi</artifactId> <version>1.0.0</version> </dependency> ``` 然后,在项目的 application.properties 文件中添加阿里云服务的相关配置: ``` aliyun.sms.accessKeyId=yourAccessKeyId aliyun.sms.accessKeySecret=yourAccessKeySecret aliyun.sms.signName=yourSignName aliyun.sms.templateCode=yourTemplateCode ``` 在代码中,你可以使用以下示例代码发送国际: ```java import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.exceptions.ServerException; import com.aliyuncs.profile.DefaultProfile; import com.aliyuncs.profile.IClientProfile; import com.aliyuncs.sms.model.v20170628.SendSmsRequest; import com.aliyuncs.sms.model.v20170628.SendSmsResponse; import java.util.Arrays; public class SmsUtil { private String accessKeyId; private String accessKeySecret; private String signName; private String templateCode; public SmsUtil(String accessKeyId, String accessKeySecret, String signName, String templateCode) { this.accessKeyId = accessKeyId; this.accessKeySecret = accessKeySecret; this.signName = signName; this.templateCode = templateCode; } public boolean sendSms(String phoneNumber, String message) { IClientProfile profile = DefaultProfile.getProfile("default", accessKeyId, accessKeySecret); DefaultProfile.addEndpoint("default", "default", "Dysmsapi", "dysmsapi.aliyuncs.com"); IAcsClient client = new DefaultAcsClient(profile); SendSmsRequest request = new SendSmsRequest(); request.setPhoneNumbers(phoneNumber); request.setSignName(signName); request.setTemplateCode(templateCode); request.setTemplateParam("{\"code\":\"" + message + "\"}"); try { SendSmsResponse response = client.getAcsResponse(request); if (response.getCode() != null && response.getCode().equals("OK")) { return true; } } catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { e.printStackTrace(); } return false; } public static void main(String[] args) { // 使用示例 SmsUtil smsUtil = new SmsUtil( "yourAccessKeyId", "yourAccessKeySecret", "yourSignName", "yourTemplateCode" ); boolean result = smsUtil.sendSms("+86xxxxxxxxxxx", "yourMessage"); System.out.println(result); } } ``` 其中,phoneNumber 是接收的手机号码,message 是内容,可以根据模板中定义的变量替换。调用 sendSms 方法即可发送

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值