优化ctms-api语法、修复已知BUG;

主要修复ctms-api、dacms对PHP新版本的支持问题
This commit is contained in:
2025-07-13 19:37:42 +08:00
parent 65bbd06981
commit 037f274ec5
413 changed files with 107271 additions and 72326 deletions
+151
View File
@@ -0,0 +1,151 @@
<?php
/* @var $this yii\web\View */
use yii\helpers\Url;
global $_FM;
global $_HI;
$username = Yii::$app->user->identity->username;
$cert = fmFunc_cert_exist($username);
$_FM['apiCert'] = $cert ? $cert : array();
$errorCode = 0;
if ($errorCode > 0) {
die (json_encode(array('errorcode' => $errorCode, 'msg' => Yii::t('errorcode', $errorCode))));
}
//错误代码集合
$errorcodes = require(Yii::getAlias('@common') . '/messages/zh-CN/errorcode.php');
foreach ($errorcodes as $k => $v) {
$_k = substr($k, 0, 6);
if ($_k !== '453004') {
unset($errorcodes[$k]);
}
}
$accessKeyId = isset($_FM['apiCert']['aliDySms']['accessKeyId']) ? $_FM['apiCert']['aliDySms']['accessKeyId'] : '';
$accessKeySecret = isset($_FM['apiCert']['aliDySms']['accessKeySecret']) ? $_FM['apiCert']['aliDySms']['accessKeySecret'] : '';
$sign = isset($_FM['apiCert']['aliDySms']['code']) ? $_FM['apiCert']['aliDySms']['code'] : '';
$postUrl = Url::to(['alimsg/send', 'appid' => $username]);
if (isset($_GET['post']) && $_GET['post'] == 1) {
$postUrl = Url::to(['alimsg/send', 'appid' => $username, 'post' => 1]);
}
?>
<div class='container' style='margin-top:50px;'>
<p>
<h3 style="text-align: center;">阿里大鱼短信【转发】接口演示</h3></p>
<form class="form-horizontal" action="<?php echo $postUrl; ?>" method="post">
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">手机号</label>
<div class="col-sm-10">
<?php if (isset($_GET['post']) && $_GET['post'] == 1) { ?>
<input type="phone" name="phone" class="form-control" id="phone" required="required" value=""
placeholder="请输入手机号"/>
<?php } else { ?>
<textarea type="text" name="phone" class="form-control" id="phone" required="required"
placeholder="请输入手机号,多个手机号时用英文(,)分开;"/></textarea>
<?php } ?>
</div>
</div>
<div class="form-group">
<label for="accessKeyId" class="col-sm-2 control-label">accessKeyId</label>
<div class="col-sm-10">
<input type="text" name="accessKeyId" class="form-control" id="accessKeyId" required="required"
value="<?php echo $accessKeyId; ?>" placeholder="输入在阿里云短信获取的accessKeyId"/>
</div>
</div>
<div class="form-group">
<label for="accessKeySecret" class="col-sm-2 control-label">accessKeySecret</label>
<div class="col-sm-10">
<input type="text" name="accessKeySecret" class="form-control" id="accessKeySecret" required="required"
value="<?php echo $accessKeySecret; ?>" placeholder="输入在阿里云短信获取的accessKeySecret"/>
</div>
</div>
<div class="form-group">
<label for="sign" class="col-sm-2 control-label">短信签名</label>
<div class="col-sm-10">
<input type="text" name="sign" class="form-control" id="sign" required="required"
value="<?php echo $sign; ?>" placeholder="填写所申请的短信签名"/>
</div>
</div>
<div class="form-group">
<label for="tmpl" class="col-sm-2 control-label">短信模板</label>
<div class="col-sm-10">
<input type="text" name="tmpl" class="form-control" id="tmpl" required="required"
placeholder="填写所申请的短信模板"/>
</div>
</div>
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">短信内容</label>
<div class="col-sm-10">
<textarea type="text" name="content" class="form-control" id="content" required="required"
placeholder="输入要发送的内容;格式:短信变量码[code],对应的替换内容;(变量及替换值之前用逗号分隔开,每行一组)"/>code1,替换值1<?php echo "\r\n"; ?>
code2,替换值2</textarea>
<span class="help-block">阿里大鱼”登陆确认验证码“模板(SMS_116695054)的变量为'code'。这里建议您使用该模板,上述文本框中输入 <code>code,1234</code> 即可</span>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-success">发送</button>
<button type="reset" class="btn btn-danger">重新填写</button>
<a class="btn btn-default" href="<?php echo Url::to(['alimsg/index', 'post' => 1]) ?>" target="_self">以POST接口形式测试</a>
<a class="btn btn-default" href="<?php echo Url::toRoute('alimsg/index') ?>"
target="_self">仅本地演示</a>
</div>
</div>
</form>
<hr>
<h1 style="text-align: center;">接口使用简易说明</h1>
<span class="form-control">注:本处主要说明本API的基础规则及一些常用的接口使用方法,更多细节可参考我们的实际使用案例(我们基于<a
href="http://s.we7.cc/index.php?c=home&a=author&do=index&uid=662" target="_blank">微擎</a>开发的嗨旅行应用、小程序管理模块等。)</span>
<p>
<ol>
<li>
<kbd>单发方式</kbd>:支持向一个手机号发送短信,通常用于发送验证码等情景;或向一组手机发送相同短信,通常用于发送通知等情景<br>
<code>准备数据:</code>手机号(数组形式)、短信内容(数组形式,键为短信模板中的code,键值为要code对应的替换内容)、阿里大鱼短信账号对应的accessKeyId与accessKeySecret及短信签名sign、所使用的短信模板tmpl、阿里大鱼接口的额外配置项(如果有)、接口连接TOKEN(登陆本接口系统后返回的accesstoken)<br>
<code>接口地址:</code> <?php echo Url::to(['alimsg/post'], TRUE); ?>
<pre>数据示范————
array('phone'=>array('18608981880'),
'content'=>array('code'=>'123456'),
'config'=>array(
'accessKeyId'=>'XXXXXXXXXXXXXXX',
'accessKeySecret'=>'XXXXXXXXXXX',
'sign'=>'Hiluker'
),
'option'=>array(),
'tmpl'=>'SMS_123456789',
'accesstoken'=>'XXXXXXXXXXXXXXX',
);
</pre>
<code>数据返回:</code> JSON字符串,解码后得到结果数组。根据结果数组中的errorcode来表示短信发送是否成功。转接接口有一定的延时,因此我们会做短信发送记录并根据情况进行记录。<br>
<pre>
$return['errorcode']:结果状态码,正常情况下为0
$return['msg']:返回的消息(接口报错时会使用到,消息中会将阿里大鱼接口的返回提示一并显示)
$return['data']:用户侧应获得的数据(实际上即是接口请求时POST的数据)
$return['timeused']:接口耗时
$return['total']:接口调用统计总记录数
$return['bytes']:本次返回数据的字节长度统计
$return['sms_left']:剩余可用短信条数
</pre>
<br>
</li>
<li>
<kbd>群发方式</kbd>:暂不开放<br>
</li>
<li>
<kbd>错误代码</kbd>:(客户侧可直接将接口站返回的结果打印出来查看,以下仅列出服务侧程序正确运行情况下返回的错误及提示;其他情况可直接打印结果进行查看)<br>
<textarea class="form-control"><?php foreach ($errorcodes as $k => $v) {
echo '"' . $k . '" : ' . $v . ";\r\n";
}
?>
</textarea>
<br>
</li>
</ol>
</p>
</div>