1. <?php
  2. namespace Ruifi\App;
  3.  
  4. class SmsL
  5. {
  6.  
  7. public function smsIcode($moblie,$sms_code,$intl_code){
  8. header("Content-Type:text/html;charset=utf-8");
  9. $apikey = "";
  10. $mobiles = "+".$intl_code.$moblie;
  11. $text = "Shixi";
  12. $smsArrL = array(
  13. "apikey" => "$apikey",
  14. "mobile" => "$mobiles",
  15. "text" =>"$text"
  16. );
  17. $smsArrL_to = \Ruifi\Service\CommonService::gbk_to_utf8_arr($smsArrL); //编码转换
  18. $apikey = $smsArrL_to['apikey'];
  19. $mobilesm = $smsArrL_to['mobile'];
  20. /* $mobiles = urlencode("$mobile");
  21. $mobiles = urlencode("$mobiles");*/
  22. //$text = $smsArrL_to['text'];
  23.  
  24. $ch = curl_init();
  25. /* 设置验证方式 */
  26. curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept:text/plain;charset=utf-8',
  27. 'Content-Type:application/x-www-form-urlencoded', 'charset=utf-8'));
  28. /* 设置返回结果为流 */
  29. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  30. /* 设置超时时间*/
  31. curl_setopt($ch, CURLOPT_TIMEOUT, 10);
  32. /* 设置通信方式 */
  33. curl_setopt($ch, CURLOPT_POST, 1);
  34. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  35. // 发送短信
  36. /* $data=array('text'=>$text,'apikey'=>$apikey,'mobile'=>$mobile);
  37. $json_data = $this->send($ch,$data);
  38. $array = json_decode($json_data,true);
  39.  
  40. return $array;*/
  41.  
  42. // 发送模板短信
  43. // 需要对value进行编码
  44. $data = array('tpl_id' => '2009674', 'tpl_value' => ('#code#').
  45. '='.urlencode("$sms_code"), 'apikey' => $apikey, 'mobile' => $mobilesm);
  46. $json_data = $this->tpl_send($ch,$data);
  47. $array = json_decode($json_data,true);
  48. return $array;
  49.  
  50. curl_close($ch);
  51. }
  52.  
  53. /************************************************************************************/
  54.  
  55. function send($ch,$data){
  56. curl_setopt ($ch, CURLOPT_URL, 'https://sms.yunpian.com/v2/sms/single_send.json');
  57. curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
  58. $result = curl_exec($ch);
  59. $error = curl_error($ch);
  60. $this->checkErr($result,$error);
  61. return $result;
  62. }
  63. function tpl_send($ch,$data){
  64. curl_setopt ($ch, CURLOPT_URL,
  65. 'https://sms.yunpian.com/v2/sms/tpl_single_send.json');
  66. curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
  67. $result = curl_exec($ch);
  68. $error = curl_error($ch);
  69. $this->checkErr($result,$error);
  70. return $result;
  71. }
  72. function checkErr($result,$error) {
  73. if($result === false)
  74. {
  75. echo 'Curl error: ' . $error;
  76. }
  77. else
  78. {
  79. //echo '操作完成没有任何错误';
  80. }
  81. }
  82.  
  83. }

调用:

  1. //传递手机号 验证码 和 国家区号
    $SmssL = new \Ruifi\App\SmsL();
  2. $Code = $SmssL->smsIcode("$mobile","$sms_code","$intl_code");
  3.  
  4. if ($Code['code'] == '0'){
  5. $codeState = 'OK';
  6. }

php 云片国外短信实例的更多相关文章

  1. asp.net C# 实现阿里大鱼和云片网短信接口类

    云片网短信通用类 public class YunpianSMS { public YunpianSMS() { } /// <summary> /// 服务器HTTP地址 /// < ...

  2. php 阿里云国内短信实例

    调用:先去阿里云申请短信服务 $smsArr = array( "accessKeyId" => "", // key "accessKeySe ...

  3. PhpSms 稳定可靠的php短信发送库

    可能是目前最聪明.优雅的PHP短信发送库了.从此不再为各种原因造成的个别短信发送失败而烦忧! phpsms的任务均衡调度功能由toplan/task-balancer提供. GitHub地址:http ...

  4. thinkphp实现短信验证注册

    前言 注册时经常需要用到短信验证码,本文记录一下思路和具体实现. 短信验证平台使用云片,短信验证码的生成使用thinkphp. 思路 1.用户输入手机号,请求获取短信验证码. 2.thinkphp生成 ...

  5. PHP短信发送服务 youe短信企业服务

    /** * 通用短信平台HTTP接口POST方式发送短信实例 * 返回字符串 * 一般情况下调用此方法 */ function postSendMessage($msgContents,$phoneL ...

  6. Android中实现短信发送的一种方式

    SendSmsActivity.java: package com.test.smsmangerdemo.sendsmsactivity; import android.support.v7.app. ...

  7. Android实例-打电话、发短信和邮件,取得手机IMEI号(XE8+小米2)

    结果: 1.不提示发短信卡住,点击没有反映,我猜想,可能是因为我用的是小米手机吧. 2.接收短信报错,我猜想可能是我改了里面的方法吧(哪位大神了解,求指教). 3.project -->opti ...

  8. 云片-语音验证码--短信验证码 - PHP接口

    ///////////////////////语音验证///////////////////////////// /**  * 发送短信(语音验证码)云片语音服务  * @param  $apikey ...

  9. 微信小程序发送短信验证码完整实例

    微信小程序注册完整实例,发送短信验证码,带60秒倒计时功能,无需服务器端.效果图: 代码: index.wxml <!--index.wxml--> <view class=&quo ...

随机推荐

  1. sql server in和exists 的区别

    如图,现在有两个数据集,左边表示#tempTable1,右边表示#tempTable2.现在有以下问题: 1.求两个集的交集? 2.求tempTable1中不属于集#tempTable2的集?   先 ...

  2. sql server 存储过程---游标的循环

    sqlserver中的循环遍历(普通循环和游标循环) sql 经常用到循环,下面介绍一下普通循环和游标循环 1.首先需要一个测试表数据Student

  3. greenplum(postgresql) 数据字典

    greenplum是基于postgresql开发的分布式数据库,里面大部分的数据字典是一样的.我们在维护gp的时候对gp的数据字典比较熟悉,特此分享给大家.在这里不会详细介绍每个字典的内容,只会介绍常 ...

  4. ElasticSearch数据导入By Postman

    样例数据 为了更好的使用和理解ES,没有点样例数据还是不好模拟的.这里提供了一份官网上的数据,accounts.json.如果需要的话,也可以去这个网址玩玩,它可以帮助你自定义写随机的JSON数据. ...

  5. 树套树【bzoj3262】陌上花开

    /* [bzoj3262]陌上花开 2014年6月19日1,2430 Description 有n朵花,每朵花有三个属性:花形(s).颜色(c).气味(m),又三个整数表示.现要对每朵花评级,一朵花的 ...

  6. 2017.11.8 Noip2017 考前模拟赛

    ----------------------------------T1---------------------------------- ——>足球联赛 题目描述 巴蜀中学新一季的足球联赛开 ...

  7. DES 加密 转码 脱敏

    from pyDes import des, CBC, PAD_PKCS5 import binascii # 秘钥 KEY = 'mHAxsLYz' from pyDes import des, C ...

  8. C++类的介绍

    最近在学习SLAM,顺便将C++类的知识复习一下.(其中部分官方定义和程序设计方法来源于西北工业大学魏英老师)   1.类的定义: 是用户自定义的数据类型. C++一个类定义的形式如下: class ...

  9. linux 网络带宽和延时测试

    Linux下使用qperf命令来测试网络带宽和网络延迟 参考文章:https://access.redhat.com/solutions/2122681 若是没有安装qperf命令,请使用yum 安装 ...

  10. 深入理解JVM虚拟机6:深入理解JVM类加载机制

    深入理解JVM类加载机制 简述:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制. 下面我们具体 ...