php去除短信教程,腾讯短信服务精简版(PHP )

短信视乎已经被慢慢淡出平常的交流工具队列,但始终抹不去它的存在,短信验证码视乎从未被取代,此外在重要的信息通知的地位也是不可取的的。所以了解短信的使用是开发中很有必要的一环。

腾讯云的短信服务提供有100条内免费,所以方便开发测试。

申请短信服务并建立模板

59f298958d8d02d2af7be626928b302c.png

查看SDK

https://cloud.tencent.com/document/product/382/13410

提供了多种语言的SDK

7089c0fb8da2deee2791e2059a767d38.png

PHP短信模板精简

实现短信模板的单次发送

729210dc2fd11f7934f1f21e118d34ee.png

1 /**

2 * @param string $nationCode 国家码,如 86 为中国

3 * @param string $phoneNumber 不带国家码的手机号

4 * @param int $templId 模板 id

5 * @param array $params 模板参数列表,如模板 {1}...{2}...{3},那么需要带三个参数

6 * @param string $sign 签名,如果填空串,系统会使用默认签名

7 * @param string $extend 扩展码,可填空串

8 * @param string $ext 服务端原样返回的参数,可填空串

9 * @return string 应答json字符串,详细内容参见腾讯云协议文档

10 */

11 function sendWithParam($nationCode, $phoneNumber, $templId = 0, $params, $sign = "", $extend = "", $ext = ""){

12

13 $appid = 1400xxx; //自己的短信appid

14 $appkey = "d80axxxxx"; //自己的短信appkey

15

16 $random = rand(100000, 999999);//生成随机数

17 $curTime = time();

18 $wholeUrl = "https://yun.tim.qq.com/v5/tlssmssvr/sendsms". "?sdkappid=" . $appid . "&random=" . $random;

19

20 // 按照协议组织 post 包体

21 $data = new \stdClass();//创建一个没有成员方法和属性的空对象

22 $tel = new \stdClass();

23 $tel->nationcode = "".$nationCode;

24 $tel->mobile = "".$phoneNumber;

25 $data->tel = $tel;

26 $data->sig=hash("sha256", "appkey=".$appkey."&random=".$random."&time=".$curTime."&mobile=".$phoneNumber);// 生成签名

27 $data->tpl_id = $templId;

28 $data->params = $params;

29 $data->sign = $sign;

30 $data->time = $curTime;

31 $data->extend = $extend;

32 $data->ext = $ext;

33

34 return sendCurlPost($wholeUrl, $data);

35 }

36 /**

37 * 发送请求

38 *

39 * @param string $url 请求地址

40 * @param array $dataObj 请求内容

41 * @return string 应答json字符串

42 */

43 function sendCurlPost($url, $dataObj){

44 $curl = curl_init();

45 curl_setopt($curl, CURLOPT_URL, $url);

46 curl_setopt($curl, CURLOPT_HEADER, 0);

47 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

48 curl_setopt($curl, CURLOPT_POST, 1);

49 curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 60);

50 curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($dataObj));

51 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);

52 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);

53 $ret = curl_exec($curl);

54 if (false == $ret) {

55 // curl_exec failed

56 $result = "{ \"result\":" . -2 . ",\"errmsg\":\"" . curl_error($curl) . "\"}";

57 } else {

58 $rsp = curl_getinfo($curl, CURLINFO_HTTP_CODE);

59 if (200 != $rsp) {

60 $result = "{ \"result\":" . -1 . ",\"errmsg\":\"". $rsp

61 . " " . curl_error($curl) ."\"}";

62 } else {

63 $result = $ret;

64 }

65 }

66 curl_close($curl);

67

68 return $result;

69 }

测试代码:

1 function xx(){

2 $templId = 286xxx; //自己短信模板id

3 $phoneNumber1="159xxxxx";//接受短信手机号码

4 try {

5 //模板占位数据

6 $params = array("数据1","数据2");

7 $result = sendWithParam("86", $phoneNumber1, $templId,$params, "", "", "");

8 echo $result;//输出成功的json结果

9 } catch(\Exception $e) {

10 echo var_dump($e);//输出异常信息

11 }

12 }

来源:https://www.cnblogs.com/yixin007/p/12446490.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值