马上注册,免费下载更多dz插件网资源。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
一直以来,Discuz! 的站长有一个痛苦,安装了2个支付相关的插件,一个支付一个界面,界面极为不统一。
这种问题在 X5 时代彻底终极了。其实相关接口 X3.5 的时候已经出了,只是没对外公开过文档,很少有人知道。但是在 X5 中不仅拓展了它,还彻底优化加强了。
容我细细道来~~咳咳!
假设我们制作了一个需要用户支付的插件,现在到了支付的地方,你要自己开发支付接口吗?不必哦。你只需要对接 X5 自己的支付接口就行了,如下图,假设我们定好了价格只需调用创建订单的接口,生成一个链接,让用户点击
就会调到统一的系统支付页面
支付完成后会跳回到插件自己的页面中
而这流程你只需要调用一个函数:
- $ret = payment::create_order('sample:test', 'test title', 'test desc', $price, $_G['siteurl'].'/index.php?app=plugin&id=sample:pay_callback');
复制代码 $ret 为返回的链接,你视情况输出即可
然后在 pay_callback.inc.php 脚本中可以直接判断支付完成后的处理过程
另一方面
如果您想对接自己的支付体系,也是可以的,我们支持开发者新增新的支付通道
通过如下代码,创建一个新的通道- payment::channels_add('sample', [ 'id' => 'sample:test', 'title' => 'sample', 'logo' => 'static/image/common/logo.svg', ]);
复制代码 删除可以这样- payment::channels_delete('sample');
复制代码 这样支付的时候自然会出现你新增的支付方式
pay/pay_test.php 脚本中我们可以定义此支付体系的具体支付过程- class pay_test extends \pay_base { public function pay($order) { ...... }}
复制代码 在 pay_notify.inc.php 中可以进行支付完成的通知的接收- payment::finish_order('sample:test', $_GET['out_biz_no'], $_GET['trade_no'], time());
复制代码 在 pay/pay_test.php 中完成回调处理- class pay_test extends \pay_base { public function callback($data, $order) { ...... }}
复制代码 同时,我们还为自定义支付通道的插件提供了,直接嵌入后台的入口,添加 admin/payment/payment_test.php 文件接口把你增加的支付方式的设置内嵌在后台和系统的设置项放在一起
- class payment_test { var $name = 'test支付'; public function admincp() { }}
复制代码
©DZ插件网所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 本站内容为站长个人技术研究记录或网络,不提供用户交互功能,所有内容版权归原作者所有。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,得到更好的正版服务。 您在本站任何的赞助购买、下载、查阅、回复等行为等均表示接受并同意签订《DZ插件网免责声明协议》。 如有侵权请邮件与我们联系处理: discuzaddons@vip.qq.com 并出示相关证明以便删除。敬请谅解!
|
|