app.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. <?php
  2. require __DIR__ . "/vendor/autoload.php";
  3. use Qcloud\Sms\SmsSingleSender;
  4. use Qcloud\Sms\SmsMultiSender;
  5. use Qcloud\Sms\SmsVoiceVerifyCodeSender;
  6. use Qcloud\Sms\SmsVoicePromptSender;
  7. use Qcloud\Sms\SmsStatusPuller;
  8. use Qcloud\Sms\SmsMobileStatusPuller;
  9. use Qcloud\Sms\VoiceFileUploader;
  10. use Qcloud\Sms\FileVoiceSender;
  11. use Qcloud\Sms\TtsVoiceSender;
  12. // 短信应用SDK AppID
  13. $appid = 1400009099; // 1400开头
  14. // 短信应用SDK AppKey
  15. $appkey = "9ff91d87c2cd7cd0ea762f141975d1df37481d48700d70ac37470aefc60f9bad";
  16. // 需要发送短信的手机号码
  17. $phoneNumbers = ["21212313123", "12345678902", "12345678903"];
  18. // 短信模板ID,需要在短信应用中申请
  19. $templateId = 7839; // NOTE: 这里的模板ID`7839`只是一个示例,真实的模板ID需要在短信控制台中申请
  20. // 签名
  21. $smsSign = "腾讯云"; // NOTE: 这里的签名只是示例,请使用真实的已申请的签名,签名参数使用的是`签名内容`,而不是`签名ID`
  22. // 单发短信
  23. try {
  24. $ssender = new SmsSingleSender($appid, $appkey);
  25. $result = $ssender->send(0, "86", $phoneNumbers[0],
  26. "【腾讯云】您的验证码是: 5678", "", "");
  27. $rsp = json_decode($result);
  28. echo $result;
  29. } catch(\Exception $e) {
  30. echo var_dump($e);
  31. }
  32. echo "\n";
  33. // 指定模板ID单发短信
  34. try {
  35. $ssender = new SmsSingleSender($appid, $appkey);
  36. $params = ["5678"];
  37. $result = $ssender->sendWithParam("86", $phoneNumbers[0], $templateId,
  38. $params, $smsSign, "", ""); // 签名参数未提供或者为空时,会使用默认签名发送短信
  39. $rsp = json_decode($result);
  40. echo $result;
  41. } catch(\Exception $e) {
  42. echo var_dump($e);
  43. }
  44. echo "\n";
  45. // 群发
  46. try {
  47. $msender = new SmsMultiSender($appid, $appkey);
  48. $result = $msender->send(0, "86", $phoneNumbers,
  49. "【腾讯云】您的验证码是: 5678", "", "");
  50. $rsp = json_decode($result);
  51. echo $result;
  52. } catch(\Exception $e) {
  53. echo var_dump($e);
  54. }
  55. echo "\n";
  56. // 指定模板ID群发
  57. try {
  58. $msender = new SmsMultiSender($appid, $appkey);
  59. $params = ["5678"];
  60. $result = $msender->sendWithParam("86", $phoneNumbers,
  61. $templateId, $params, $smsSign, "", ""); // 签名参数未提供或者为空时,会使用默认签名发送短信
  62. $rsp = json_decode($result);
  63. echo $result;
  64. } catch(\Exception $e) {
  65. echo var_dump($e);
  66. }
  67. echo "\n";
  68. // 发送语音验证码
  69. try {
  70. $vvcsender = new SmsVoiceVerifyCodeSender($appid, $appkey);
  71. $result = $vvcsender->send("86", $phoneNumbers[0], "5678", 2, "");
  72. $rsp = json_decode($result);
  73. echo $result;
  74. } catch (\Exception $e) {
  75. echo var_dump($e);
  76. }
  77. echo "\n";
  78. // 发送语音通知
  79. try {
  80. $vpsender = new SmsVoicePromptSender($appid, $appkey);
  81. $result = $vpsender->send("86", $phoneNumbers[0], 2, "5678", "");
  82. $rsp = json_decode($result);
  83. echo $result;
  84. } catch (\Exception $e) {
  85. echo var_dump($e);
  86. }
  87. echo "\n";
  88. // 拉取短信回执以及回复
  89. try {
  90. $sspuller = new SmsStatusPuller($appid, $appkey);
  91. // 拉取短信回执
  92. $callbackResult = $sspuller->pullCallback(10);
  93. $callbackRsp = json_decode($callbackResult);
  94. echo $callbackResult;
  95. // 拉取回复
  96. $replyResult = $spuller->pullReply(10);
  97. $replyRsp = json_decode($replyResult);
  98. echo $replyResult;
  99. } catch (\Exception $e) {
  100. echo var_dump($e);
  101. }
  102. echo "\n";
  103. // 拉取单个手机短信状态
  104. try {
  105. $beginTime = 1516670595; // 开始时间(unix timestamp)
  106. $endTime = 1516680595; // 结束时间(unix timestamp)
  107. $maxNum = 10; // 单次拉取最大量
  108. $mspuller = new SmsMobileStatusPuller($appid, $appkey);
  109. // 拉取短信回执
  110. $callbackResult = $mspuller->pullCallback("86", $phoneNumbers[0],
  111. $beginTime, $endTime, $maxNum);
  112. $callbackRsp = json_decode($callbackResult);
  113. echo $callbackResult;
  114. echo "\n";
  115. // 拉取回复
  116. $replyResult = $mspuller->pullReply("86", $phoneNumbers[0],
  117. $beginTime, $endTime, $maxNum);
  118. $replyRsp = json_decode($replyResult);
  119. echo $replyResult;
  120. } catch (\Exception $e) {
  121. echo var_dump($e);
  122. }
  123. echo "\n";
  124. // 上传语音文件
  125. try {
  126. $filepath = "path/to/example.mp3";
  127. $fileContent = file_get_contents($filepath);
  128. if ($fileContent == false) {
  129. throw new \Exception("can not read file " . $filepath);
  130. }
  131. $contentType = VoiceFileUploader::MP3;
  132. $uploader = new VoiceFileUploader($appid, $appkey);
  133. $result = $uploader->upload($fileContent, $contentType);
  134. $rsp = json_decode($result);
  135. echo $result;
  136. } catch (\Exception $e) {
  137. echo var_dump($e);
  138. }
  139. echo "\n";
  140. // 按语音文件fid发送语音通知
  141. try {
  142. $fid = "73844bb649ca38f37e596ec2781ce6a56a2a3a1b.mp3";
  143. $fvsender = new FileVoiceSender($appid, $appkey);
  144. $result = $fvsender->send("86", $phoneNumbers[0], $fid);
  145. $rsp = json_decode($result);
  146. echo $result;
  147. } catch (\Exception $e) {
  148. echo var_dump($e);
  149. }
  150. echo "\n";
  151. // 指定模板发送语音通知类
  152. try {
  153. $templateId = 1013;
  154. $params = ["54321"];
  155. $tvsender = new TtsVoiceSender($appid, $appkey);
  156. $result = $tvsender->send("86", $phoneNumbers[0], $templateId, $params);
  157. $rsp = json_decode($result);
  158. echo $result;
  159. } catch (\Exception $e) {
  160. echo var_dump($e);
  161. }
  162. echo "\n";