import org.apache.http.HttpResponse;
import org.apache.http.util.EntityUtils;
import java.util.HashMap;
import java.util.Map;

public class Example {
public static void main(String[] args) throws Exception{
String host = "https://open.expauth.com";
String path = "/v2/sms/single/msg/sender";
String method = "POST";
// "{{AppCode}}" 替換成您的 AppCode
String appcode = "{{AppCode}}";
Map headers = new HashMap<>();
headers.put("X-Mce-Signature", "AppCode/" + appcode);
headers.put("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
Map querys = new HashMap<>();
Map bodys = new HashMap<>();
// 填充參數
bodys.put("templateId", "templateId");
bodys.put("signId", "signId");
bodys.put("phoneNumber", "phoneNumber");

try {
/**
* 重要提示如下:
* HttpUtils請從
* https://static.miitang.com/saas/simple/HttpUtils.java 下載
*
* 相應的依賴請參照
* https://static.miitang.com/saas/simple/pom.xml
*/
HttpResponse response = HttpUtils.doPost(host, path, method, headers, querys, bodys);
// 獲取 response 的 body
String resStr = EntityUtils.toString(response.getEntity());
System.out.println(resStr);
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode == 200){
// 請求成功,可根據業務碼(請求體中的code)進行邏輯處理
} else if(statusCode == 610){
// 用戶輸入的參數問題,可直接提示用戶
} else if(statusCode == 611){
// 系統準備的數據問題,如 文件數據下載失敗、數據不存在、數據重復請求等。 LOG it and 提示用戶
} else if(statusCode == 612){
// 用戶操作頻度問題,可提示用戶。 LOG it and 按業務特點做處理
} else if(statusCode >= 500 && statusCode < 600){
// 在運行階段發生的系統穩定性問題,客戶端可以重試,或者聯系我司客服
} else {
// 如賬戶密碼錯誤、IP白名單問題、余額不足等,您應該在對接過程中解決相關問題。
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

在Python中,使用 requests 庫發送 POST 請求到短信推廣接口,根據響應狀態碼進行業務邏輯處理,包括成功、參數問題、數據問題、操作頻度問題和系統穩定性問題等的處理。

import json
import requests
# 重要提示如下:
# mt_utils 請從
# https://static.miitang.com/saas/simple/mt_utils.py 下載
import util.mt_utils as mt_utils

# 安全模式(AppId)
if __name__ == '__main__':
# 這里替換成您的 appId 和 secretKey
app_id = 'app_id'
secret_key = 'secret_key'

# 服務地址
url = "https://open.expauth.com/v2/sms/single/msg/sender"

payload = json.dumps({
"templateId": "templateId",
"signId": "signId",
"phoneNumber": "phoneNumber"
}, sort_keys=True, ensure_ascii=False)

cryptor = mt_utils.AESCrypt(secret_key)
data = cryptor.aes_encrypt(payload)
print(f'加密結果為: {data}')

sign = mt_utils.sign(app_id, secret_key, payload)
headers = {
"Content-Type": "application/json",
"X-Mce-Signature": sign
}

response = requests.request("POST", url, headers=headers, data=data)
status_code = response.status_code
print("headers:", response.headers)
print("http 狀態碼:", str(status_code))
res = ""
if '{' in response.text:
res = response.text
else:
res = cryptor.aes_decrypt(response.text)
print(res)

if status_code == 200:
"請求成功,可根據業務碼(請求體中的code)進行邏輯處理"
elif status_code == 610:
"用戶輸入的參數問題,可直接提示用戶"
elif status_code == 611:
"系統準備的數據問題,如 文件數據下載失敗、數據不存在、數據重復請求等。 LOG it and 提示用戶"
elif status_code == 612:
"用戶操作頻度問題,可提示用戶。 LOG it and 按業務特點做處理"
elif status_code >= 500 & status_code < 600:
"在運行階段發生的系統穩定性問題,客戶端可以重試,或者聯系我司客服"
else:
"如賬戶密碼錯誤、IP白名單問題、余額不足等,您應該在對接過程中解決相關問題。"

在PHP中,使用 cURL 發送 POST 請求到短信推廣服務接口,處理并輸出相應的業務邏輯。它包括設置請求頭、發送請求、處理響應,根據響應狀態碼進行不同的業務邏輯處理,如成功、參數問題、數據問題、操作頻度問題、系統穩定性問題等。

<?php
// 重要提示如下:
// MtUtils.php 請從 https://static.miitang.com/saas/simple/MtUtils_php.zip 下載
require './MtUtils.php';
ini_set('date.timezone','Asia/Shanghai');

$host = "https://open.expauth.com";
$path = "/v2/sms/single/msg/sender";
$method = "POST";

// TODO:帳號設置
$appId = "{{您的AppId}}";
$secretKey = "{{您的App SecretKey}}";

// TODO:業務參數準備
$params = array(
'templateId' => 'templateId',
'signId' => 'signId',
'phoneNumber' => 'phoneNumber'
);

// 30 -- 單位分鐘
$signStr = MtUtils::sign($appId, $secretKey, time(), 3000, $params);
$encryptReqData = MtUtils::encrypt(json_encode($params),$secretKey);

$headers = array();
array_push($headers, "x-mce-signature".":".$signStr);
//根據API的要求,定義相對應的Content-Type
array_push($headers, "Content-Type".":"."application/json;charset=utf-8");

$url = $host . $path;
$result = MtUtils::post($url,$headers,$encryptReqData);

$retMap = json_decode(MtUtils::decrypt($result[1],$secretKey), true);
$httpCode = $result[0];
$code = $retMap["code"];

// echo "rJson=".MtUtils::decrypt($result[1],$secretKey).PHP_EOL; // DEBUG

// TODO:返回值處理
if($httpCode == 200){
// 請求成功,可根據業務碼(請求體中的code)進行邏輯處理
echo $retMap["code"].PHP_EOL;
echo $retMap["message"].PHP_EOL;
echo $retMap["hasFees"].PHP_EOL;
echo $retMap["fees"].PHP_EOL;
if($code == "FP00000"){
// SUCCESS
echo "SUCCESS";
}
else{
// FAILURE
echo "FAILURE";
}
} else {
echo $code.PHP_EOL; // DEBUG

if($httpCode == 610){
// 用戶輸入的參數問題,可直接提示用戶
$errors = $retMap["errors"];
$errorMap = null;
foreach($errors as $key=>$value){
foreach($value as $key2=>$value2){
$errorMap[$key] = $value2;
break;
}
}
// 轉化為 key:tip
echo("idCardNo=".$errorMap["idCardNo"].PHP_EOL);
echo("name=".$errorMap["name"].PHP_EOL);
} else if($httpCode == 611){
// 系統準備的數據問題,如 文件數據下載失敗、數據不存在、數據重復請求等。 LOG it and 提示用戶
echo "修訂數據狀態,不要重復操作。".PHP_EOL;
} else if($httpCode == 612){
// 用戶操作頻度問題,可提示用戶。 LOG it and 按業務特點做處理
echo $retMap["message"].PHP_EOL;
} else if($httpCode >= 500 && $httpCode < 600){
// 在運行階段發生的系統穩定性問題,客戶端可以重試,或者聯系我司客服
// TODO: retry
echo "RETRY".PHP_EOL;
} else {
// 如賬戶密碼錯誤、IP白名單問題、余額不足等,您應該在對接過程中解決相關問題。
var_dump($retMap);
}
}

?>

總結

短信推廣API是一種強大的工具,用于企業進行市場宣傳和推廣活動。其主要特點包括群發功能、個性化內容、鏈接跟蹤等,通過定時發送、實時反饋等機制,提高了信息傳遞的效果。在使用時需要注意合法性驗證、用戶隱私保護、頻率控制等多個方面,以確保短信推廣的合規性和用戶體驗。該API有助于企業提升品牌曝光度、拓展市場份額,為推廣活動的成功執行提供了有力的支持。

了解更多短信相關API

商務短信

雙向短信

短信網關

上一篇:

如何在Java、Python、PHP中使用短信通知API?

下一篇:

如何在Java、Python、PHP中使用人臉實名認證API?
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費