# 在线支付接口的使用
在线付款,有一个专用的函数进行封装好了微信与支付宝两种
举例子来讲解吧
~~~
post_olpay([
'money'=>10,
'return_url'=>url('endpay',['order_id'=>$orderid]),
'banktype'=>in_weixin() ? 'weixin' : 'alipay' , //在微信端,就用微信支付,否则就用支付宝支付
'numcode'=>'afds43q43dfdsfde',
'callback_class'=>mymd5("app\\shop\\model\\Order@pay@$orderid"),
],true);
~~~
通过上面的函数,就可以实现在线支付.
money 是 支付金额,单位元
return_url 支付成功后,返回到指定的网址
banktype 这一项,可以留空, 也可指定用支付宝或微信支付,上面是判断 在微信端,就用微信支付, 否则就用支付宝付款 . 都不设置,就可以让用户自己选择,留空才可以自由选择余额抵扣.
numcode 订单号,可以为空
callback_class 服务端异步处理,就是说支付成功后,用户即使关闭了当前网页,服务端还可以实现后台异步处理数据. 如果不设置的话,用户关闭了当前网页.就不会进行异步处理数据. 会出现所谓的掉单. 所以推荐设置, 不设置也可以.
post_olpay 函数的第二项设置为true的话,代表立即跳转到支付界面,设置为false的话,就返回支付网址,用户自己做跳转
callback_class 这一项再重点讲解一下
这里设置异步处理执行的类及方法.格式是 完整的 全路径类名比如 app\xxx\xxx\Order分隔符@方法名pay@参数$id
最后还要用mymd5函数进行加密处理,避免用户恶意修改
用户支付成功以后,就会给用户的余额充值, 用户帐户上有余额了, 再执行后续的相关操作. 所有财务操作,都是直接判断与处理用户的余额的. 实际上来说, 在线支付,就是给用户帐户充值, 所以上面的 money 参数 ,用户即使恶意修改,也没意义的. 因为他就对应给余额充值多少. 真正的应用逻辑处理,你要根据用户的余额进行判断处理. 余额不足就要中断. 余额充足的话, 就进行处理, 处理成功,就一定要扣余款 .切记切记!!
所以上面的 return_url 返回地址,也是不需要加密的, 因为最终处理数据的时候,是根据用户的余额做处理的.
return_url 返回支付成功以后,处理的方法,可以跟 callback_class 共用一个类一个方法. 在那里做处理的时候,就跟据用户的余额是否足够进行处理. 处理成功后,必须要给数据库做个标志, 避免反复执行.
最后做个总结,就是在线支付,实际就是对用户的余额进行充值. 支付成功,就是充值成功 ,然后应用那里,就是对用户的余额进行判断,进行处理并扣余额, 最后还要给该订单做个已处理的标志, 避免反复处理.
在线支付实际就是给用户的余额充值, 用户余额充当中介作用. 应用的逻辑判断都是围绕余额进行的. 而余额的充值部分抛给了系统处理.不需要开发者考虑.开发者只须要判断用户余额是否足够展开做相关处理.
在支付成功后,处理的余额的时候, 还必须要用到扣余额的函数
add_rmb
比如
~~~
add_rmb($order_info['uid'],-abs($order_info['pay_money']),0,'购物消费');
~~~
另外还有很关键的一点,就是判断当前用户,不能使用cookie的, 必须要跟上面传的参数id得到用户的uid,比如可以这样得到
通过`$id` 得到 `$uid` 再用函数 `get_user($uid)['rmb']` 得到用户的余额,进行判断处理, 余额充足,就执行处理,最后扣除相当的余额.
点击查看大图
[![](https://box.kancloud.cn/17f55305d6db2bdc2252bb9d4ec3dbdc_1301x712.jpg)](https://box.kancloud.cn/17f55305d6db2bdc2252bb9d4ec3dbdc_1301x712.jpg)
- 序言
- 声明
- 齐博X1基础
- 齐博X1的诞生
- 齐博X1目录结构
- 如何安装齐博X1
- 新手快速入门教程
- 常用文件目录说明
- 齐博X1标签
- 什么是标签
- 当前URL标签
- 图片标签
- 单张图片标签的使用
- 多张组图的标签调用
- 标签进阶之幻灯片制作
- 背景图如何设置标签
- 内容页标签
- 内容页中下一页上一页的标签
- 内容评论标签的风格制作
- 标签实例
- 做模板组图单图无图混排的处理
- 列表页制作及无滚动加载内容
- 调用多个圈子同时调用贴子
- 调用多个圈子同时调用相关会员
- 标签的嵌套用法,调用聚合数据
- 标签如何调用论坛内容
- 标签设置取组图不存在就取内容中的图片
- 标签之无刷新显示更多
- 异步加载标签数据
- 标签动态调用数据
- 文本代码标签的使用
- where 标签动态变量查询
- where 实现条件筛选与数据关联
- 会员中心如何加标签
- 模板中常用的TP标签数据处理
- 同一个标签要更换不同模块的数据
- 万能数据统计之fun函数
- 齐博X1模块
- 什么是模块?模块的组成。
- 如何添加字段
- 栏目名称的调用
- 栏目名称调用详解
- 相关栏目名称的调用
- 辅栏目(专题)的使用说明
- 模块后期要加参数的方法
- 表单自动生成器
- 简单的模块制作说明(随风编写)
- 齐博X1插件
- 插件.七牛云.配置说明
- 齐博X1钩子
- 钩子简单制作-tag加连接解说版(随风编写)
- 齐博X1模板
- 模板目录文件说明
- 几个关键模板文件要熟知
- 新模板要注意问题
- 模板文件调用的优先级
- 2018.8.13模板制作升级调整
- block模板的分块替换
- 模板包含文件使用说明
- 圈子黄页风格制作说明
- 齐博X1配置
- 微信和小程序的配置
- 如何对接公众号
- 对接小程序设置
- 在线支付接口的使用
- 支付宝对接收款配置
- 阿里云短信配置
- 邮箱接口设置
- 邮箱接口设置之QQ普通邮箱
- 邮箱接口设置之163普通邮箱
- 邮箱接口设置之QQ企业邮箱
- QQ登录接口配置
- 齐博X1路由
- URL伪静态设置
- route.php与routemy.php短网址设置
- 齐博X1二次开发
- 二次开发的灵魂fun函数
- 商城判断是否购买过
- 如何调取当前模块ID
- 模块安装文件讲解
- 表单快速启用城市地区功能
- 自定义字段多文件多图的显示处理
- 后台网站参数配置修改与添加
- 频道插件如何对接圈子
- 自定义字段下拉菜单关联其它数据表
- 自定义字段表单默认调用会员资料
- 齐博X1注意事项
- 云市场注意事项
- 如何强制进后台
- 换服务器如何转移网站
- 再强调严禁用记事本改任何文件
- 解决Web部署 svg/woff/woff2字体 404错误
- 齐博X1更新记录
- 关于thinkphp5