🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 插件接口类支付成功和退款回调 插件接口可参考本插件下的payment_test.class.php文件 ``` <?php if (!defined('IN_DISCUZ')) { exit('Access Denied'); } class payment_test{ private $pay; public function __construct($out_trade_no = '') { //获取订单 if ($out_trade_no) { if (is_string($out_trade_no)) { $this->pay = C::t('#payment#payment_pay')->fetch($out_trade_no); } else { $this->pay = $out_trade_no; } } //自定义业务逻辑 } public function success() { //支付后的回调 notification_add($this->pay['uid'], 'system', 'system_notice', array('subject' => lang('plugin/payment', 'pay_success'), 'message' => lang('plugin/payment', 'order_paied') . '<br>' . lang('plugin/payment', 'order_no') . $this->pay['out_trade_no'], 'from_id' => 0, 'from_idtype' => 'sendnotice'), 1); return true; } public function refund() { //支付后的回调 notification_add($this->pay['uid'], 'system', 'system_notice', array('subject' => lang('plugin/payment', 'refund_success'), 'message' => lang('plugin/payment', 'order_refunded') . '<br>' . lang('plugin/payment', 'order_no') . $this->pay['out_trade_no'], 'from_id' => 0, 'from_idtype' => 'sendnotice'), 1); return true; } } ?> ``` 插件接口需包含success与refund两个方法 返回true为调用成功,返回其他为调用失败原因 ## 创建订单 引入payment类调用newOrder方法 ### 传入参数 | 参数名 | 类型 | 参数说明 | 必填 | 示例| | --- | --- | ---| --- | ---| | amount| int | 金额,单位分 | 是| 1 | | subject | string | 订单说明 | 是 | 会员充值 | | uid | int | 用户id,0为游客 | 是 | 1 | |api_id | string | 插件接口标识,支付成功后将以此为凭证进行回调通知 | 是 | payment_test| | params | array | 附加参数,可在次存订单的其他信息 | 否 | ['amount'=>100,'credit'=>1] | | expire_time | int | 订单在X秒后过期 | 否 | 3600 | | payment_limit | string | 禁用支付方式,如积分充值时不允许使用积分支付,限制多个支付方式时用,隔开 |否 | credit | | create_ip | string | IP,为空时为当前IP | 否 | 127.0.0.1 | ### 返回值 订单号(string) ## 获取订单的支付链接 引入payment类调用makeUrl方法