网页即时交流
QQ咨询
咨询热线
020-28998648
网页客服,欢迎咨询
商圈信息
      商圈信息
  • 圈主:SVP管理员
  • 粉丝:1 人
  • 人气:5 关注度
齐博X1:在线支付接口的使用
2022-02-22 16:09:45 156
  • 收藏
  • 管理

    在线付款,有一个专用的函数进行封装好了微信与支付宝两种


    举例子来讲解吧


    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'] 得到用户的余额,进行判断处理, 余额充足,就执行处理,最后扣除相当的余额.



    上一页:微信小程序隐私指引设置参考模板 下一页:齐博X1:支付宝对接收款配置
    全部评论(0)
     
    网页即时交流
    QQ咨询
    咨询热线
    020-28998648