🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
1. 在 **管理后台** > **系统设置** > **接口设置** 栏目里新增一条记录 > 接口版本号:用来区分不同的支付接口方案。例如: v1.0.1 > 控制器名称:支付接口方案对应的控制器类名。例如:Defaultversion 2. 在 /Application/Version/Controller/ 目录下新建一个 DefaultversionController.class.php 文件,继承于 VersionController 父类 ~~~ namespace Version\Controller; use Think\Controller; class DefaultversionController extends VersionController{ } ~~~ 3. 定义两个全局变里 | 参数名 | 数据类型 | 说明 | | --- | --- | --- | | parameterarray | 数组 | 提交时必填参数 | | encryptedFields | 数组 | 参与加密验名的参数 | ~~~ protected $parameterarray = ['version','memberid', 'orderid', 'amount', 'orderdatetime', 'notifyurl', 'paytype', 'signmethod', 'sign']; //用户自己选择的参数,必填 protected $encryptedFields = ['version','memberid', 'orderid', 'amount', 'orderdatetime', 'notifyurl', 'paytype', 'signmethod']; //签名需要的字段 ~~~ 4. 需要在 DefaultversionController.class.php 里实现如下几个方法: | 方法名 | 说明 | 参数 | 说明 | 返回值 | | --- | --- | --- | --- |--- | | CheckParameterCorrect | 检查收到的参数是否合法 | $parameter | 用户提交的所有参数 | 如果所有参数都合法返回TRUE, 如果有不合法的返回FALSE,并将错误信息复制给 $this->returnJson["msg"] | | GetUserId | 通道用户提交过来的商户编号获取系统内的用户ID | $parameter | 用户提交的所有参数 | 返回获取到的系统内的用户ID | | GetSecretKey | 通道用户ID获取用户的密钥数据 | $userid | 用户ID | 返回用户的密钥数据 | | DecryptData | 解密用户提交过来的加密参数 | $parameter, $secretkey | 用户提交的所有参数,用户的密钥数据 | 返回解密后的所有用户提交参数 | | CheckSign | 验证数据签名 | $parameter, $signdata, $secretkey | 用户提交的所有参数,解密后的所有参数,用户的密钥数据 | 如果签名验证合法返回TRUE, 如果有不合法的返回FALSE,并将错误信息复制给 $this->returnJson["msg"] | 5. 通过实现方法 FormatData 把自定义接口参数转换成系统标准参数 | 方法名 | 说明 | 参数 | 说明 | 返回值 | | --- | --- | --- | --- | --- | | FormatData | 把自定义接口参数转换成系统标准参数 | $parameter | 用户提交的所有参数 | 返回系统标准参数数组 | 6. 交易请求系统标准参数说明: | 参数名 | 说明 | | --- | --- | | userid | 用户ID | | amount | 交易金额,单位:元 | | orderid | 用户提交的交易订单号 | | callbackurl | 页面跳转回调地址 | | notifyurl | 异步回调地址 | | orderdatetime| 交易订单提交时间 | | tongdao | 通道分类编码 | | bankcode| 银行编码 | | version | 自定义支付接口版本号 | | extend | 扩展字段 | | other | 回调时原样返回的数据,数据类型为 数组 | 7. 回调时首先通过实现 ReturnData 方法 ,把系统返回的标准参数转换成自定义支付接口的自定义参数: | 方法名 | 说明 | 参数 | 说明 | 返回值 | | --- | --- | --- | --- | --- | | ReturnData | 把成系统标准参数转换成自定支付接口的自定义参数 | $parameter | 系统返回的标准参数 | 返回自定支付接口的自定义参数 | 8. 回调系统标准参数说明: | 参数名 | 说明 | | --- | --- | | userid | 用户ID | | amount | 交易金额,单位:元 | | orderid | 用户提交的交易订单号 | | amount_trade| 交易手续费 | | datetime | 交易时间 | | tongdao | 通道分类编码 | | version | 自定义支付接口版本号 | | other | 回调时原样返回的数据,数据类型为 数组 | 9. 实现 callbackurl 方法,实现自定义的页面跳转回调业务逻辑 10. 实现 notifyurl 方法,实现自定义的异步回调的业务逻辑,并返回收到的响应数据