No Description

YPSMS.php 5.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <?php
  2. use App\libs\sms;
  3. define("YP_SMS_KEY", "fbdb5f2ddae13c2f4a592348bfe52137");
  4. define('YP_SMS_YHQ', '73a74eb72c42b765669acd8e94096b9f');
  5. define("YP_SMS_KEY_FAMLI",'995629e02beaaf47118b84ac19c4b5b9');
  6. define("YP_VOICE_URL", "http://voice.yunpian.com/v2/voice/send.json");
  7. define("YP_TPL_URL", "https://sms.yunpian.com/v2/sms/tpl_single_send.json");
  8. define("YP_TPL_ID", "2122814");
  9. class YPSMS{
  10. private static $order_tpl = [
  11. 1 => '3210114', //新订单审核提醒管理员
  12. //2 => '3210120', //新订单提醒仓管
  13. 2 => '3211800', //新订单提醒仓管
  14. 3 => '3210134', //订单发货提醒销售
  15. 4 => '3210146', //订单审核通过提醒销售
  16. 5 => '3210312', //订单审核驳回提醒销售
  17. ];
  18. private static function init(){
  19. $ch = curl_init();
  20. /* 设置验证方式 */
  21. curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept:text/plain;charset=utf-8',
  22. 'Content-Type:application/x-www-form-urlencoded', 'charset=utf-8'));
  23. /* 设置返回结果为流 */
  24. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  25. /* 设置超时时间*/
  26. curl_setopt($ch, CURLOPT_TIMEOUT, 10);
  27. /* 设置通信方式 */
  28. curl_setopt($ch, CURLOPT_POST, 1);
  29. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  30. return $ch;
  31. }
  32. public static function sendMsg($phone,$type,$order_id = null, $send_date = null){
  33. $tpl = self::$order_tpl;
  34. $tpl_id = $tpl[$type];
  35. $ch=self::init();
  36. //$data=array('tpl_id' => $tpl_id,'text'=>$text,'apikey'=>YP_SMS_KEY,'mobile'=>$phone);
  37. $data = [
  38. 'apikey' => YP_SMS_KEY,
  39. 'mobile' => $phone,
  40. 'tpl_id' => $tpl_id,
  41. ];
  42. if( in_array($type, [3,5]) ){
  43. $data['tpl_value'] = ('#order_id#').'='.$order_id;
  44. }elseif( $type == 2){
  45. $data['tpl_value'] = ('#order_id#').'='.$order_id.'&'. ('#send_date#').'='.urldecode($send_date);
  46. }
  47. $json_data = self::tpl_send($ch,$data);
  48. //print_r($json_data); ******************************maybe影响验证码发出
  49. $array = json_decode($json_data,true);
  50. // echo '<pre>';print_r($array);
  51. curl_close($ch);
  52. return $array;
  53. }
  54. public static function sendSMS($phone,$text){
  55. $ch=self::init();
  56. // $data = array('tpl_id' => YP_TPL_ID, 'tpl_value' => ('#code#').'='.urlencode($code), 'apikey' => YP_SMS_KEY, 'mobile' => $phone);
  57. // $json_data = self::tpl_send($ch,$data);
  58. // $array = json_decode($json_data,true);
  59. // echo '<pre>';print_r($array);
  60. $data=array('tpl_id' => YP_TPL_ID,'text'=>$text,'apikey'=>YP_SMS_KEY,'mobile'=>$phone);
  61. $json_data = self::send($ch,$data);
  62. //print_r($json_data); ******************************maybe影响验证码发出
  63. $array = json_decode($json_data,true);
  64. // echo '<pre>';print_r($array);
  65. curl_close($ch);
  66. return $array;
  67. }
  68. public static function sendRedSMS($phone,$text,$id){
  69. $ch=self::init();
  70. $data=array('tpl_id' => $id,'text'=>$text,'apikey'=>YP_SMS_YHQ,'mobile'=>$phone);
  71. $json_data = self::send($ch,$data);
  72. curl_close($ch);
  73. return $json_data;
  74. }
  75. public static function sendVoiceCheck($phone,$code){
  76. $ch=self::init();
  77. $data=array('code'=>$code,'apikey'=>YP_SMS_KEY,'mobile'=>$phone);
  78. $json_data =self::voice_send($ch,$data);
  79. // $array = json_decode($json_data,true);
  80. // echo '<pre>';print_r($array);
  81. curl_close($ch);
  82. return $json_data;
  83. }
  84. private static function checkErr($result,$error) {
  85. if($result === false)
  86. {
  87. echo 'Curl error: ' . $error;
  88. }
  89. // else
  90. // {
  91. // echo '操作完成没有任何错误';
  92. // }
  93. }
  94. private static function send($ch,$data){
  95. curl_setopt ($ch, CURLOPT_URL, 'https://sms.yunpian.com/v2/sms/single_send.json');
  96. curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
  97. $result = curl_exec($ch);
  98. $error = curl_error($ch);
  99. self::checkErr($result,$error);
  100. return $result;
  101. }
  102. private static function voice_send($ch,$data){
  103. curl_setopt ($ch, CURLOPT_URL, YP_VOICE_URL);
  104. curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
  105. $result = curl_exec($ch);
  106. $error = curl_error($ch);
  107. self::checkErr($result,$error);
  108. return $result;
  109. }
  110. private static function tpl_send($ch,$data){
  111. curl_setopt ($ch, CURLOPT_URL, YP_TPL_URL);
  112. curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
  113. $result = curl_exec($ch);
  114. $error = curl_error($ch);
  115. self::checkErr($result,$error);
  116. return $result;
  117. }
  118. }
  119. // YPSMS::init();
  120. //$code=100;
  121. //$minutes=3;
  122. // YPSMS::sendSMS('13613665865','【钱多多随手记】您的验证码是' . $code . ',有效期为' . $minutes . '分钟,请尽快验证。');
  123. // YPSMS::sendVoiceCheck('13613665865','123456');