Python短信营销接口对接示例代码

本示例介绍如何使用Python调用互亿无线短信营销接口,完成短信群发。通过简单的 HTTP POST 请求,开发者即可在业务系统中集成营销短信功能,适用于促销活动通知、会员关怀提醒、节日祝福推送等多类营销场景。

示例将展示接口请求的基本流程、参数配置以及响应解析,帮助开发者快速掌握短信营销接口的调用方式。

import http.client
import urllib.parse
import json

hostname = "api.ihuyi.com"
request_uri = "/sms-yx/v1/batchSend"

#定义请求的数据
values = {
    'api_id':'sms-yx-xxxxxxxx', #APIID(用户中心【文本短信】-【会员营销短信】-【产品总览】查看)
    'signature':'xxxxxxxxx', #请求验证加密签名(非短信签名);签名生成方式:仅公共参数以ASCII码从小到大排序值,key=value,多值以“&”隔开,拼接之后md5 32位小写; 如:md5(api_id=xxxx&api_key=xxxx&request_id=xxxxxxxx&timestamp=xxxxxxx)APIKEY(用户中心【文本短信】-【会员营销短信】-【产品总览】查看)2、动态密码(生成动态密码方式请看该文档末尾的说明)
    'timestamp':1623643787, #东八时区;10位时间戳,时间允许相差±60S
    'request_id':'xxxxxxxxxxxx', #请求方请求ID,建议使用唯一ID,比如使用uuid;我方系统会2小时内去重验证处理,防止网络重复攻击;
    'product_id':1001, #产品ID
    'phone':["18800000000","18800000001"], #手机号数组(最多1万个号码)
    'sign_name':'xxxxxxxx', #短信签名(template_id未填写则必填)
    'content':'尊敬的会员您好:${name},您的订单号是:${order_no},拒收请回复R', #template_id为空时必填;短信内容,如:您的短信群发功能已开通,请在3个工作日之内至平台进行企业认证! 短信内容和模板ID必须传入1个;当短信内容和模板ID都传入时,传入内容生效,模板ID属性失效;
    'template_id':1, #模板ID(内容为空则必填)
    'template_var':{"${name}":"张三","${order_no}":"202009041156181103"}, #选择模板时,且模板是变量模板时,可以传入变量值,需要传入json格式;
    'send_time':'2020-08-26 16:08:14', #定时发送时间
}

#将数据进行编码
params = json.dumps(values).encode(encoding='UTF8')

#定义请求的头部
headers = {
    "Content-type": "application/json",
    "Accept": "text/plain"
}

#初始化一个 http 链接
conn = http.client.HTTPConnection(hostname)
conn.request("POST", request_uri, params, headers)
response = conn.getresponse()

#打印状态
print(response.status, response.reason)

#打印结果
print(response.read().decode("utf-8"))
conn.close()