返回列表 发帖
查看: 112|回复: 7

[X5开发特性] 在 X5 中拓展自己的支付

70

主题

217

回帖

555

积分

管理员

贡献
12 点
金币
41 个
发表于 2024-10-31 09:34:12 | 查看全部 |阅读模式
一直以来,Discuz! 的站长有一个痛苦,安装了2个支付相关的插件,一个支付一个界面,界面极为不统一。


这种问题在 X5 时代彻底终极了。其实相关接口 X3.5 的时候已经出了,只是没对外公开过文档,很少有人知道。但是在 X5 中不仅拓展了它,还彻底优化加强了。

容我细细道来~~咳咳!

假设我们制作了一个需要用户支付的插件,现在到了支付的地方,你要自己开发支付接口吗?不必哦。你只需要对接 X5 自己的支付接口就行了,如下图,假设我们定好了价格只需调用创建订单的接口,生成一个链接,让用户点击


就会调到统一的系统支付页面

支付完成后会跳回到插件自己的页面中


而这流程你只需要调用一个函数:

  1. $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 脚本中可以直接判断支付完成后的处理过程

另一方面

如果您想对接自己的支付体系,也是可以的,我们支持开发者新增新的支付通道

通过如下代码,创建一个新的通道
  1. payment::channels_add('sample', [
  2.     'id' => 'sample:test',
  3.     'title' => 'sample',
  4.     'logo' => 'static/image/common/logo.svg',
  5.                 ]);
复制代码
删除可以这样
  1. payment::channels_delete('sample');
复制代码
这样支付的时候自然会出现你新增的支付方式

pay/pay_test.php 脚本中我们可以定义此支付体系的具体支付过程
  1. class pay_test extends \pay_base {
  2.       public function pay($order) {
  3.       ......
  4.       }
  5. }
复制代码

在 pay_notify.inc.php 中可以进行支付完成的通知的接收
  1. payment::finish_order('sample:test', $_GET['out_biz_no'], $_GET['trade_no'], time());
复制代码
在 pay/pay_test.php 中完成回调处理
  1. class pay_test extends \pay_base {
  2.       public function callback($data, $order) {
  3.       ......
  4.       }
  5. }
复制代码
同时,我们还为自定义支付通道的插件提供了,直接嵌入后台的入口,添加 admin/payment/payment_test.php 文件接口把你增加的支付方式的设置内嵌在后台和系统的设置项放在一起


  1. class payment_test {
  2.     var $name = 'test支付';
  3.     public function admincp() {
  4.     }
  5. }
复制代码



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

39

主题

2949

回帖

5011

积分

应用开发者

Discuz! 运维

贡献
186 点
金币
667 个
QQ
发表于 2024-10-31 09:38:53 | 查看全部
沙发位已占
回复

使用道具 举报

1

主题

96

回帖

129

积分

应用开发者

贡献
0 点
金币
27 个
发表于 2024-10-31 09:39:02 | 查看全部
沙發占了
回复

使用道具 举报

10

主题

281

回帖

548

积分

应用开发者

贡献
5 点
金币
168 个
QQ
发表于 2024-10-31 09:40:20 | 查看全部
回复

使用道具 举报

23

主题

5254

回帖

9385

积分

应用开发者

贡献
498 点
金币
1416 个
QQ
发表于 2024-10-31 11:59:46 | 查看全部
前排占位,其实支付这部分的对接,X3.5就支持,大家在X3.5就可以这么做了
回复

使用道具 举报

39

主题

2949

回帖

5011

积分

应用开发者

Discuz! 运维

贡献
186 点
金币
667 个
QQ
发表于 2024-11-1 10:27:17 | 查看全部
湖中沉 发表于 2024-10-31 11:59
前排占位,其实支付这部分的对接,X3.5就支持,大家在X3.5就可以这么做了

稍微有点点差别
回复

使用道具 举报

23

主题

5254

回帖

9385

积分

应用开发者

贡献
498 点
金币
1416 个
QQ
发表于 2024-11-1 14:06:42 | 查看全部

基本一致,创建订单,回调,这些基础该有的都有
回复

使用道具 举报

70

主题

217

回帖

555

积分

管理员

贡献
12 点
金币
41 个
 楼主| 发表于 2024-11-1 14:40:53 | 查看全部
湖中沉 发表于 2024-11-1 14:06
基本一致,创建订单,回调,这些基础该有的都有

本不想改的,但发现不改别扭,不统一。何况想加点东西
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 关注公众号
  • 有偿服务微信
  • 有偿服务QQ

手机版|小黑屋|Discuz! 官方交流社区 ( 皖ICP备16010102号 |皖公网安备34010302002376号 )|网站地图|star

GMT+8, 2025-4-30 14:08 , Processed in 0.061563 second(s), 11 queries , Redis On.

Powered by Discuz! W1.0 Licensed

Cpoyright © 2001-2025 Discuz! Team.

关灯 在本版发帖
有偿服务QQ
有偿服务微信
返回顶部
快速回复 返回顶部 返回列表