Home >Backend Development >PHP Problem >How to send text messages in php
Sending method: 1. Real-name authentication and activate SMS API interface service, obtain API request KEY; 2. Apply for SMS template and wait for approval; 3. Call API interface, through "function juheHttpRequest($url,$ params=false,$ispost=0){...}" method to initiate a network request, process the data and return the result; 4. Use "$response=juheHttpRequest(...);" to accept the content and output it.
The operating environment of this tutorial: windows7 system, PHP8.1 version, DELL G3 computer
SMS based on PHP API interface call example
Preliminary preparation
Real-name authentication
According to the requirements of the operator, this interface is currently only open to real-name authenticated enterprise users, so please make sure you are a real-name authenticated enterprise user before using it
Apply for the interface, Obtain the interface calling credential request key
throughhttps://www.juhe.cn/docs/api/id/54?s=cpphpcn
Self-service application to open the interface
You can see the calling certificate request key of this interface in Personal Center ➡️ Data Center ➡️ My API module
Number of requests to purchase data (free and free interfaces with complimentary times can be debugged first )
Apply for SMS template in advance in the personal center of the official website of the aggregation. The interface can only be called after the customer service review is passed
Special Instructions
Please read the Interface Document of the official website carefully. This is an agreement between aggregate data and developers. , it will help you understand the interface business, so as to carry out development work smoothly
The focus of this example is to help developers successfully obtain the response data of the interface. For This article will not discuss the developer's business logic such as data processing.
This example aims to simplify the developer's calling steps to the greatest extent. It does not encapsulate the functional modules into independent tool classes. It is convenient for developers to directly run and debug after copying with one click
Due to limited ability, there are inevitably errors and omissions in the examples. If you find any, please criticize and correct them
Interface Remarks
The operator restricts the content of the same number and the same signature within 1 minute. Receive 1 message, 3 messages in 10 minutes, 4 messages in 1 hour, 20 messages in a day, otherwise it may be blocked by the operator
The SMS API interface itself does not limit the sending frequency, the specific sending frequency Users need to set it by themselves, only domestic mobile phone numbers
Please be sure to add image verification codes and other anti-malicious attack mechanisms to prevent text message bombardment. Add T at the end of the marketing content to unsubscribe, marketing SMS sending time is: 8:30 to 21:30. Marketing content has an anti-phishing mechanism. Please do not send a single message. The minimum number of mobile messages is 20 (cyclic calls). China Unicom and Telecom do not limit
SMS content (including signatures) of less than or equal to 70 characters will be counted. Fee 1. Text messages exceeding 70 characters are considered long messages and will be charged for every 67 characters.
Parameter description
Parameter name | Required | Description |
---|---|---|
true | Mobile phone number | |
true | template id | |
true | Applying request key | |
false | Template variables are determined based on the variables in the template. Can be empty |
##All codes<?php
// 请求的接口URL
$apiUrl = 'http://v.juhe.cn/sms/send?';
// 请求参数
$params = [
// 模板id
'tpl_id' => '模板id',
// 您申请的接口调用Key
'key' => '您申请的接口调用Key',
//发送的手机号
'mobile' => '发送的手机号',
//结合自己的模板中的变量进行设置,如果没有变量,可以删除此参数
'tpl_value' => urlencode('#total#=1000&#used#=100&#balance#=900'),
];
$paramsString = http_build_query($params);
// 发起接口网络请求
$response = null;
try {
$response = juheHttpRequest($apiUrl, $paramsString, 1);
} catch (Exception $e) {
var_dump($e);
//此处根据自己的需求进行自身的异常处理
}
if (!$response) {
echo "请求异常" . PHP_EOL;
}
$result = json_decode($response, true);
if (!$result) {
echo "请求异常" . PHP_EOL;
}
$errorCode = $result['error_code'];
if ($errorCode === 0) {
$data = $result['result'];
echo "请求唯一标示:{$data["sid"]}" . PHP_EOL;
echo "请求消耗次数:{$data["fee"]}" . PHP_EOL;
} else {
// 请求异常
echo "请求异常:{$errorCode}_{$result["reason"]}" . PHP_EOL;
}
/**
* 发起网络请求函数
* @param string $url 请求的URL
* @param bool $params 请求的参数内容
* @param int $ispost 是否POST请求
* @return bool|string 返回内容
*/
function juheHttpRequest($url, $params = false, $ispost = 0)
{
$httpInfo = [];
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36');
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
curl_setopt($ch, CURLOPT_TIMEOUT, 12);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if ($ispost) {
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_URL, $url);
} else {
if ($params) {
curl_setopt($ch, CURLOPT_URL, $url . '?' . $params);
} else {
curl_setopt($ch, CURLOPT_URL, $url);
}
}
$response = curl_exec($ch);
if ($response === FALSE) {
// echo "cURL Error: ".curl_error($ch);
return false;
}
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$httpInfo = array_merge($httpInfo, curl_getinfo($ch));
curl_close($ch);
return $response;
}
Recommended learning: "
The above is the detailed content of How to send text messages in php. For more information, please follow other related articles on the PHP Chinese website!