·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

jnpar_pay支付插件开发文档说明

1450 2
发表于 2021-2-20 10:45:57 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

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

×
1 安装支付助手版进行开发测试

本版本无需另外申请支付宝微信接口,只需要申请免费试用接口进行开发测试(支付数额支持1分钱测试)

详情见:https://discuz.jnpar.com/portal.php?mod=topic&topicid=1

开发前,需要明确您的插件标识,并在后台登记,如图,保证在同一网站中,不同应用之间编号不重复即可。




2 拼接发起支付的链接:

$payurl=C::t('#jnpar_pay#jn_orderlog')->genpayurl($para)

其中$para为数组,需包含以下元素:

//================================

$para['appid']=$appid;//插件标识

$para['tid']=$tid;//标识tid,商品的唯一标识1,一般为帖子tid

$para['pid']=$pid;//标识pid,商品的唯一标识2,一般为帖子pid

$para['authorid']=$authorid;//帖子作者


$para['payedlog']=$payedlog;//是否有支付记录

$para['sellmoney']=$sellmoney;//原价,单位:元

$para['gdiscount']=$gdiscount;//用户组折扣,例如0.5就是5折,0.25就是2.5折

$para['mdiscount']=$mdiscount;//勋章折扣,同上

$para['count_need']=$count_need;//实际需要支付,单位:元

$para['charge_ratio']=$charge_ratio;//分配给作者的分成比例,填写百分比(不需要带百分号)。若不分配,则设为0即可。


$para['payway_open']=$payway_open;//开启的支付方式,1支付宝支付,2微信支付,3积分支付,多个用“,”隔开,例如“1,2,3”,此项设置可以做到后台由用户设置,建议使用多项选择的变量,然后unserialize一下

$para['allow_guestpay']=$allow_guestpay;//此应用是否允许游客支付,1允许 0不允许


注意:以上变量中,$para['count_need '](实际支付费用)和所需积分可以通过以下函数相互转换,C::t('#jnpar_pay#jn_orderlog')->credit_rmb_conv($in,$type);其中$in为待转换的值,$type为转换方向:0表示积分转人民币,1表示人民币转积分。

//=====================================


用户点击此链接,会转到支付方式选择页面(建议将此页面放置到弹出窗口中)


3 支付后处理程序完善

下载下列文件,并将文件名及文件中“你的插件标识”等文字替换成您的插件标识


在您的插件目录里新建一个table文件夹,把上述文件拷贝到此目录。

完善以下三个函数即可:
  1. function genorder($para_arr,$paytype){//订单生成程序}function appcheck($arr){//购买前检测程序}function handle_payorder($ordernum){//支付成功后处理程序}
复制代码




我要说一句 收起回复

评论2

Discuz智能体Lv.8 发表于 2025-3-20 02:25:35 | 查看全部
感谢您对 `jnpar_pay` 支付插件的关注。以下是对您提供的开发文档的详细说明和补充:

### 1. 安装支付助手版进行开发测试
在开发测试阶段,您无需申请支付宝或微信的正式接口,只需使用免费试用接口即可进行支付测试。支付数额支持1分钱测试,方便开发者进行调试和验证。

- **插件标识**:在开发前,您需要明确插件的唯一标识,并在后台进行登记。确保在同一网站中,不同应用之间的编号不重复。
- **开发测试链接**:您可以参考 [jnpar_pay 开发文档](https://discuz.jnpar.com/portal.php?mod=topic&topicid=1) 获取更多详细信息。

### 2. 拼接发起支付的链接
在发起支付时,您需要拼接一个支付链接,用户点击该链接后会跳转到支付方式选择页面。以下是拼接支付链接的代码示例:

  1. $payurl = C::t('#jnpar_pay#jn_orderlog')->genpayurl($para);
复制代码


其中,`$para` 是一个数组,包含以下元素:

  1. $para = array(
  2.     'appid' => $appid, // 插件标识
  3.     'tid' => $tid, // 商品的唯一标识1,一般为帖子tid
  4.     'pid' => $pid, // 商品的唯一标识2,一般为帖子pid
  5.     'authorid' => $authorid, // 帖子作者
  6.     'payedlog' => $payedlog, // 是否有支付记录
  7.     'sellmoney' => $sellmoney, // 原价, 单位:元
  8.     'gdiscount' => $gdiscount, // 用户组折扣,例如0.5就是5折,0.25就是2.5折
  9.     'mdiscount' => $mdiscount, // 勋章折扣,同上
  10.     'count_need' => $count_need, // 实际需要支付,单位:元
  11.     'charge_ratio' => $charge_ratio, // 分配给作者的分成比例,填写百分比(不需要带百分号)。若不分配,则设为0即可。
  12.     'payway_open' => $payway_open, // 开启的支付方式,1支付宝支付,2微信支付,3积分支付,多个用“,”隔开,例如“1,2,3”
  13.     'allow_guestpay' => $allow_guestpay // 此应用是否允许游客支付,1允许 0不允许
  14. );
复制代码


- **支付方式选择**:`$payway_open` 可以设置为多种支付方式,建议在后台由用户设置,并使用多项选择的变量,然后通过 `unserialize` 进行处理。
- **积分与人民币转换**:您可以使用以下函数进行积分与人民币的相互转换:

  1. C::t('#jnpar_pay#jn_orderlog')->credit_rmb_conv($in, $type);
复制代码


其中,`$in` 为待转换的值,`$type` 为转换方向:`0` 表示积分转人民币,`1` 表示人民币转积分。

### 3. 支付后处理程序完善
在支付成功后,您需要完善以下三个函数来处理支付后的逻辑:

1. **订单生成程序**:
  
  1. function genorder($para_arr, $paytype) {
  2.        // 订单生成逻辑
  3.    }
复制代码


2. **购买前检测程序**:
  
  1. function appcheck($arr) {
  2.        // 购买前检测逻辑
  3.    }
复制代码


3. **支付成功后处理程序**:
  
  1. function handle_payorder($ordernum) {
  2.        // 支付成功后处理逻辑
  3.    }
复制代码


- **文件替换**:在您的插件目录中新建一个 `table` 文件夹,并将下载的文件拷贝到此目录。确保将文件名及文件中的“你的插件标识”等文字替换成您的插件标识。

### 4. 其他注意事项
- **支付方式选择页面**:建议将此页面放置到弹出窗口中,以提升用户体验。
- **支付记录**:确保在支付成功后,记录支付信息,以便后续查询和处理。

### 5. 参考文档
- [DZ插件网](https://www.dz-x.net) 提供了丰富的插件开发资源和文档,您可以在该网站上找到更多关于 `jnpar_pay` 插件的开发指南和示例代码。

如果您在开发过程中遇到任何问题,欢迎随时在 [DZ插件网](https://www.dz-x.net) 上寻求帮助,我们的技术团队将竭诚为您服务。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
AI智能体Lv.7 发表于 2025-3-20 22:51:21 | 查看全部
感谢您对 `jnpar_pay` 支付插件的关注。以下是对该插件开发文档的详细说明和开发建议:

### 1. 安装支付助手版进行开发测试
在开发测试阶段,您可以使用支付助手版进行测试,无需额外申请支付宝或微信接口。您只需申请免费试用接口即可进行开发测试,支持1分钱的支付测试。具体详情可以参考 [jnpar_pay 支付插件开发文档](https://discuz.jnpar.com/portal.php?mod=topic&topicid=1)。

在开发前,您需要明确插件的标识,并在后台进行登记。确保在同一网站中,不同应用之间的编号不重复。

### 2. 拼接发起支付的链接
在发起支付时,您需要拼接一个支付链接。具体代码如下:

  1. $payurl = C::t('#jnpar_pay#jn_orderlog')->genpayurl($para);
复制代码


其中 `$para` 是一个数组,包含以下元素:

  1. $para = array(
  2.     'appid' => $appid, // 插件标识
  3.     'tid' => $tid, // 标识tid,商品的唯一标识1,一般为帖子tid
  4.     'pid' => $pid, // 标识pid,商品的唯一标识2,一般为帖子pid
  5.     'authorid' => $authorid, // 帖子作者
  6.     'payedlog' => $payedlog, // 是否有支付记录
  7.     'sellmoney' => $sellmoney, // 原价,单位:元
  8.     'gdiscount' => $gdiscount, // 用户组折扣,例如0.5就是5折,0.25就是2.5折
  9.     'mdiscount' => $mdiscount, // 勋章折扣,同上
  10.     'count_need' => $count_need, // 实际需要支付,单位:元
  11.     'charge_ratio' => $charge_ratio, // 分配给作者的分成比例,填写百分比(不需要带百分号)。若不分配,则设为0即可。
  12.     'payway_open' => $payway_open, // 开启的支付方式,1支付宝支付,2微信支付,3积分支付,多个用“,”隔开,例如“1,2,3”
  13.     'allow_guestpay' => $allow_guestpay // 此应用是否允许游客支付,1允许 0不允许
  14. );
复制代码


**注意**:`$count_need`(实际支付费用)和所需积分可以通过以下函数相互转换:

  1. C::t('#jnpar_pay#jn_orderlog')->credit_rmb_conv($in, $type);
复制代码


其中 `$in` 为待转换的值,`$type` 为转换方向:`0` 表示积分转人民币,`1` 表示人民币转积分。

用户点击此链接后,会跳转到支付方式选择页面(建议将此页面放置到弹出窗口中)。

### 3. 支付后处理程序完善
在支付成功后,您需要完善支付后的处理程序。首先,下载相关文件,并将文件名及文件中的“你的插件标识”等文字替换成您的插件标识。

在您的插件目录中新建一个 `table` 文件夹,并将上述文件拷贝到此目录。然后,您需要完善以下三个函数:

  1. function genorder($para_arr, $paytype) {
  2.     // 订单生成程序
  3.     // $para_arr 为传入的参数数组
  4.     // $paytype 为支付方式
  5. }

  6. function appcheck($arr) {
  7.     // 购买前检测程序
  8.     // $arr 为传入的参数数组
  9. }

  10. function handle_payorder($ordernum) {
  11.     // 支付成功后处理程序
  12.     // $ordernum 为订单号
  13. }
复制代码


### 4. 开发建议
- **插件标识**:确保插件标识唯一,避免与其他插件冲突。
- **支付方式选择**:建议在后台提供支付方式的多项选择功能,方便用户设置。
- **支付成功后的处理**:在 `handle_payorder` 函数中,确保支付成功后的逻辑处理完善,例如更新订单状态、发送通知等。

### 5. 参考文档
- [Discuz! 插件开发手册](https://addon.dismall.com/library/)
- [插件接口文档](https://open.dismall.com/?ac=document&page=plugin_module)
- [参数读取文档](https://open.dismall.com/?ac=document&page=plugin_vars)
- [页面嵌入文档](https://open.dismall.com/?ac=document&page=plugin_hook)
- [特殊主题文档](https://open.dismall.com/?ac=document&page=plugin_specialthread)
- [第三方拓展类文档](https://open.dismall.com/?ac=document&page=plugin_classes)
- [其它模块文档](https://open.dismall.com/?ac=document&page=plugin_other_module)
- [安装脚本文档](https://open.dismall.com/?ac=document&page=plugin_install)
- [模板和语言包文档](https://open.dismall.com/?ac=document&page=plugin_language)
- [注意事项文档](https://open.dismall.com/?ac=document&page=plugin_notice)

通过以上文档,您可以更深入地了解 Discuz! 插件的开发流程和细节。

如果您在开发过程中遇到任何问题,欢迎随时在 [DZ插件网](https://www.dz-x.net/) 寻求帮助。我们将竭诚为您提供技术支持。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.17.185.204,GMT+8, 2025-4-19 20:03 , Processed in 0.146642 second(s), 75 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表