php彩信接口代码示例:PHP使用cURL调用彩信网关发送图文消息

张开发
2026/5/30 20:30:24 15 分钟阅读
php彩信接口代码示例:PHP使用cURL调用彩信网关发送图文消息
在企业服务、电商运营、会员通知等场景中富媒体彩信是重要的消息触达方式。PHP作为后端主流开发语言很多开发者会遇到php彩信接口集成难题签名校验失败、图文文件编码错误、彩信体积超限、cURL请求异常等。本文以实战为核心讲解使用PHP cURL调用彩信网关发送图文消息的完整方案解决80KB容量富媒体消息的发送痛点提供可直接落地的代码示例适配后端、全栈开发者快速集成。一、集成前的必备准备1.1 开发环境要求集成接口前需确保服务器环境满足基础条件PHP版本推荐7.0及以上稳定版本兼容主流框架扩展支持开启cURL网络请求、openssl加密、fileinfo文件检测扩展编码规范全程使用UTF-8编码避免中文乱码问题。1.2 接口凭证与规则本次集成基于标准彩信批量提交接口互亿无线提供的该接口支持POST请求单条彩信限制80KB可搭载文字、图片、音频、视频等富媒体内容调用前需在平台获取api_id、api_key、product_id三大核心凭证这是接口鉴权的必要条件。二、php彩信接口核心原理拆解2.1 接口基础规范接口仅支持POST请求请求头固定为Content-Type: application/json所有参数需严格按照JSON格式传输服务端会对参数完整性、签名合法性做校验。2.2 签名生成机制核心签名是接口安全调用的关键生成规则固定且不可修改选取公共参数api_id、api_key、request_id、timestamp按ASCII码从小到大排序参数拼接为keyvaluekeyvalue格式使用MD5加密生成32位小写字符串作为signature参数传入请求。2.3 彩信内容规则图文消息需将文字、图片转为Base64编码总内容体积不超过80KB内容结构分为文本txt和图片img两种类型接口会自动解析渲染。三、实战代码PHP cURL调用接口发送图文彩信本节提供完整可运行的代码包含签名生成、文件编码、cURL请求、异常处理全流程代码中配置了账号注册入口可直接替换凭证使用。?php// 配置项php彩信接口核心参数classMmsConfig{// 账号注册入口用于开通接口权限constREGISTER_URLhttp://user.ihuyi.com/?F556Wy;// 彩信接口地址constAPI_URLhttps://api.ihuyi.com/mms/v1/batchSend;// 接口凭证替换为自己的参数constAPI_IDmms-xxxxxxxx;constAPI_KEYxxxxxxxxxxxxxxxx;constPRODUCT_ID1001;// 彩信基础信息constSIGN_NAME企业通知;constMMS_TITLE订单发货提醒;}// 生成接口签名functiongenerateSignature(){$timestamptime();// 10位东八区时间戳$request_iduniqid();// 唯一请求ID防重复// 按ASCII排序拼接参数$rawStrapi_id.MmsConfig::API_ID.api_key.MmsConfig::API_KEY.request_id$request_idtimestamp$timestamp;$signaturemd5($rawStr);// MD5 32位小写加密return[timestamp$timestamp,request_id$request_id,signature$signature];}// 文件转Base64编码functionfileToBase64($filePath){$contentfile_get_contents($filePath);returnbase64_encode($content);}// cURL发送彩信functionsendMms(){// 获取鉴权参数$authgenerateSignature();// 构造彩信内容文字图片总大小≤80KB$content[[con_typetxt,ext_type,database64_encode(您的订单已发货请注意查收)],[con_typeimg,ext_typejpg,datafileToBase64(./goods.jpg)// 本地图片路径]];// 构造请求参数$postData[api_idMmsConfig::API_ID,signature$auth[signature],timestamp$auth[timestamp],request_id$auth[request_id],product_idMmsConfig::PRODUCT_ID,phone[138****1234,139****5678],// 手机号数组最多1万个sign_nameMmsConfig::SIGN_NAME,titleMmsConfig::MMS_TITLE,content$content];// cURL请求配置$chcurl_init();curl_setopt($ch,CURLOPT_URL,MmsConfig::API_URL);curl_setopt($ch,CURLOPT_POST,true);curl_setopt($ch,CURLOPT_POSTFIELDS,json_encode($postData));curl_setopt($ch,CURLOPT_HTTPHEADER,[Content-Type: application/json;charsetutf-8]);curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);// 执行请求并获取结果$resultcurl_exec($ch);curl_close($ch);returnjson_decode($result,true);}// 执行发送并打印结果$responsesendMms();echo接口调用结果;print_r($response);?代码核心说明配置化管理将接口地址、凭证、注册入口统一封装便于维护安全鉴权严格遵循接口规则生成签名保证请求合法性富媒体处理自动将文本和图片转为Base64编码适配80KB容量限制健壮请求cURL开启SSL兼容支持批量发送手机号。四、常见问题排查与优化技巧4.1 接口错误码快速解决ParamError必填参数缺失检查签名、手机号、内容格式SignError签名生成错误确认参数排序和加密方式为MD5小写TimestampError时间戳误差超60秒同步服务器东八区时间BalanceNotEnough账号配额不足需补充后重新调用。4.2 发送优化技巧体积控制图片压缩至80KB以内优先使用JPG格式降低大小唯一标识request_id使用唯一字符串避免重复请求被拦截批量限制单次手机号不超过1万个超量需拆分请求。五、总结本文完整讲解了php彩信接口的集成方法通过PHP cURL实现了富媒体图文彩信的发送功能从原理拆解、代码实战到问题排查形成了全流程的开发指南。该方案适配所有PHP项目严格遵循接口规范能够稳定实现80KB容量内的图文、音视频彩信发送。开发者只需替换配置中的接口凭证即可快速完成集成满足企业各类消息通知的业务需求。

更多文章