通过接口版本与控制器机制,为整个平台或单个客户定制"一套专属于自己"的接口规范。适用于有定制开发能力的服务商团队。
在 管理后台 > 系统设置 > 接口设置 栏目里新增一条记录。
v1.0.1;Defaultversion。在 /Application/Version/Controller/ 目录下新建 DefaultversionController.class.php 文件,继承于 VersionController 父类:
namespace Version\Controller;
use Think\Controller;
class DefaultversionController extends VersionController{
}
| 参数名 | 数据类型 | 说明 |
|---|---|---|
parameterarray | 数组 | 提交时必填参数 |
encryptedFields | 数组 | 参与加密验签的参数 |
protected $parameterarray = ['version','memberid','orderid','amount','orderdatetime','notifyurl','paytype','signmethod','sign']; protected $encryptedFields = ['version','memberid','orderid','amount','orderdatetime','notifyurl','paytype','signmethod'];
| 方法名 | 作用 | 参数 | 返回值 |
|---|---|---|---|
CheckParameterCorrect | 检查收到的参数是否合法 | 用户提交的所有参数 | 合法返回 TRUE;不合法返回 FALSE,并将错误信息写入 $this->returnJson["msg"] |
GetUserId | 通过通道用户提交过来的商户编号获取系统内用户 ID | 用户提交的所有参数 | 系统内的用户 ID |
GetSecretKey | 通过通道用户 ID 获取用户密钥数据 | 用户 ID | 用户的密钥数据 |
DecryptData | 解密用户提交过来的加密参数 | 所有参数、用户密钥数据 | 解密后的所有用户提交参数 |
CheckSign | 验证数据签名 | 所有参数、解密后参数、密钥数据 | 签名合法返回 TRUE;不合法返回 FALSE 并写入错误信息 |
FormatData | 把自定义接口参数转换成系统标准参数 | 用户提交的所有参数 | 系统标准参数数组 |
ReturnData | 把系统返回的标准参数转换成自定义接口的自定义参数 | 系统返回的标准参数 | 自定义支付接口参数 |
callbackurl | 实现自定义的页面跳转回调业务逻辑 | — | — |
notifyurl | 实现自定义的异步回调业务逻辑,并返回收到的响应数据 | — | 收到的响应数据 |
典型处理顺序:CheckParameterCorrect → GetUserId → GetSecretKey → DecryptData → CheckSign → FormatData → 业务受理;回调时经 ReturnData 还原为自定义接口参数,并交付 callbackurl / notifyurl 处理。
| 参数名 | 说明 |
|---|---|
userid | 用户 ID |
amount | 交易金额,单位:元 |
orderid | 用户提交的交易订单号 |
callbackurl | 页面跳转回调地址 |
notifyurl | 异步回调地址 |
orderdatetime | 交易订单提交时间 |
tongdao | 通道分类编码 |
bankcode | 银行编码 |
version | 自定义支付接口版本号 |
extend | 扩展字段 |
other | 回调时原样返回的数据,数据类型为数组 |
| 参数名 | 说明 |
|---|---|
userid | 用户 ID |
amount | 交易金额,单位:元 |
orderid | 用户提交的交易订单号 |
amount_trade | 交易手续费 |
datetime | 交易时间 |
tongdao | 通道分类编码 |
version | 自定义支付接口版本号 |
other | 回调时原样返回的数据,数据类型为数组 |