方维o2o系统多通道支付的实现
方维o2o系统多通道支付的实现
- 一、后端支付管理:
- 二、前端购物车页面
- 1,删除购物车商品和修改商品数量
- 2,点击结算
一、后端支付管理:
1,所有支付方式的php文件事先已经存在system/payment下面,每个文件用$payment_lang存储支付方式的信息,比如支付宝的:
$payment_lang = array('name' => '支付宝支付','alipay_partner' => '合作者身份ID','alipay_account' => '支付宝帐号','alipay_key' => '校验码','alipay_service' => '接口方式','alipay_service_0' => '使用标准双接口','alipay_service_1' => '担保交易接口','alipay_service_2' => '即时到帐接口','GO_TO_PAY' => '前往支付宝在线支付','VALID_ERROR' => '支付验证失败','PAY_FAILED' => '支付失败',
);
用read_modules()读取payment文件下的php文件。
2,安装和卸载对应增加和删除fanwe_payment里的数据;如果没有安装,则显示安装,否则显示编辑和卸载。
<if condition="$payment_item['installed'] eq 0"><a href="{:u("Payment/install",array("class_name"=>$payment_item['class_name']))}">{%INSTALL}</a>
<else /><a href="{:u("Payment/edit",array("id"=>$payment_item['id']))}">{%EDIT}</a><a href="javascript:uninstall({$payment_item.id});" >{%UNINSTALL}</a>
</if>
编辑信息根据各个支付类文件的$config存在fanwe_payment的config字段里面,该字段存储结构如下:
{s:14:"alipay_partner";s:16:"2088231262522650";s:14:"alipay_account";s:21:"1696040649@163.com";s:10:"alipay_key";s:32:"2f7lj6056yddba2sbnm8jsdbs17t5ysa";s:14:"alipay_service";s:1:"2";
}
二、前端购物车页面
http://www.xxxx.com/index.php?ctl=cart
操作:
1,删除购物车商品和修改商品数量
2,点击结算
http://www.xxxx.com/index.php?ctl=cart&act=check
配送信息
订单信息(商品信息)
操作:
1,支付方式选择
选择支付方式的时候执行 ctl=ajax&act=count_buy_total()计算总价,ajax返回更新页面总价。
2,确认订单,付款
提交的地址:页面是从用户订单查询而来还是直接购买而来,从订单处来的则是order_done
<form name="cart_form" id="cart_form" action="{if $order_info}{url x="index" r="cart#order_done"}{else}{url x="index" r="cart#done"}{/if}" method="post">
根据上面的action,在ctl=cart&act=done或者ctl=cart&act=order_done中创建支付单号
sytstem/model/cart.php----------------make_payment_notice();
信息存在表fanwe_payment_notice中;
如果是代金券支付
require_once(APP_ROOT_PATH."system/payment/Voucher_payment.php");
$ voucher_payment = new Voucher_payment();
$voucher_payment->direct_pay($ecv_data['sn'],$ecv_data['password'],$payment_notice_id);
如果是余额支付
require_once(APP_ROOT_PATH."system/paymen/Account_payment.php");
$account_payment = new Account_payment();
$account_payment->get_payment_code($payment_notice_id);
然后根据订单支付状态是否成功:
$data['jump'] = url("index","payment#done",array("id"=>$order_id));(购买成功)
$data['jump'] = url("index","payment#pay",array("id"=>$payment_notice_id));(去支付)
跳转到:
http://www.xxxx.com/index.php?ctl=payment&act=pay&id=316
在ctl=payment&act=pay中,根据选择的支付方式,实例化对应的支付方式类
require_once(APP_ROOT_PATH."system/payment/".$payment_info['class_name']."_payment.php");
$payment_class = $payment_info['class_name']."_payment";
$payment_object = new $payment_class();
每个支付类文件调用各自的支付模型文件来使用相关函数
支付模型文件主要存在于:
system/libs/payment.php
system/model/payment.php
和system/payment下的文件夹里
操作:
支付宝–前往支付宝在线支付
微信–扫码支付
方维o2o系统多通道支付的实现相关推荐
- 方维O2O系统 后台业务员功能开发
方维O2O系统 后台业务员功能开发 需求如下: 开发一个管理员,叫做业务员有特别的权限,就是后台可以给业务员一个账号,然后业务员每次出去拉到团购回来,上传商户,之后,运营后能在业务员自己的账号权限内看 ...
- PHP源码:方维o2o本地生活服务系统v2.2多城市商业版
山东.江苏.北京.上海.浙江服务器租用托管 管经理 QQ 695062592 0531-82020568 13791037290 程序介绍:价值8800元的方维o2o商业系统是一套集社交.本地.移动打 ...
- 方维订餐系统二次开发,将商户的所有图片调到商铺详情里面
方维订餐系统二次开发,将商户的所有图片调到商铺详情里面 方维订餐系统将商户的所有图片调到商铺详情里面,在上一篇已经解决了,这里有另外一种方法: 在store_view.html 加入下面一句 < ...
- 方维分享系统,品牌无法设置分类关联
方维分享系统,品牌无法设置分类关联 店铺分类那里不能设置分类关联 这样去修改,这是官方给出的方案,是方维3.0的一个bug: ALTER TABLE `%DB_PREFIX%taobao_shop` ...
- 修改方维分享系统注册页面的标题
不知道 方维购物分享系统 为什么 即使设置了网站名称后,在注册页面 标题上依然带着方维分享系统,既然开源了,就大方点呗..... 去掉注册页面版权信息的方式为: 在你的网站跟目录下打开:public\ ...
- 方维分享系统模板修改,产品详情页note修改
方维分享系统模板修改,产品详情页note修改 note.htm, 一般是用的note_img.htm: --------------------------------评论-------------- ...
- 淘客API升级后,方维分享系统不能采集商品的解决方法,用天猫精品库API采集...
淘客API升级后,方维分享系统不能采集商品的解决方法,用天猫精品库API采集 淘客API禁止的解决方法,方维分享系统采集天猫精品库的商品: 需要的淘宝API接口: TmallItemsDiscount ...
- 方维分享系统模板修改,book_share_list.htm调用用户数据,$_FANWE['user']的数据
方维分享系统模板修改,book_share_list.htm调用用户数据,$_FANWE['user']的数据 要实现这样的效果, book_share_list.htm是以下四个的公共页面 要是调用 ...
- 方维分享系统模板修改,u_menu.htm调用用户信息
方维分享系统模板修改,u_menu.htm调用用户信息 仿知美网的,要实现 在u_menu.htm ,打印$home_user,输出下面结果 array(64) {["uid"]= ...
- 方维分享系统二次开发,tip.htm,修改调用的当前用户的信息
方维分享系统二次开发,tip.htm,修改调用的当前用户的信息 方维分享系统全站调用用户组名称.图标.关注按钮和关注数.分享数.宝贝数.粉丝数.活动数.主题数.活动数: 调用用户组名称.用户组图标解决 ...
最新文章
- Google Chrome的CSS hack写法
- 用JScript.net写.net应用程序
- 5个在线代码编辑器,供云计算爱好者
- 微服务实践分享(5)缓存中心
- 以 library 方式启动的 SAP Spartacus Storefront,如何手动实现 User 模块的延迟加载
- 2012 不宜进入的三个技术点(下)
- django-解决-修改过的模型类不能被正常迁移的解决办法
- mysql数据库连接锁住_锁mysql方法
- php 读写excel 网络错误,谁用过PHPExcel,导出的文件报“无法读取的内容”错误
- 为什么大家都会往大城市跑
- linux中查看mysql版本的方法汇总
- 拓端tecdat|R语言Lee-Carter模型对年死亡率建模预测期望寿命
- C语言打印金字塔,菱形,V形图案
- exls表格搜索快捷键_excel表格里搜索快捷键是什么,excel的搜索快捷键是什么?...
- 猴子摘香蕉问题python_[转载]猴子摘香蕉问题的状态空间表示法
- 涉密计算机不得接入互联网等公共信息网络,在涉密场所使用的与国际互联网或者其他公共网络连接的计算机不得安装视频、音频等输入装置 - 作业在线问答...
- 商品属性的选择功能的实现
- iPhone 12已安装的App显示正在安装处理方法
- javaScript中的undefined
- NestJS 7.x 折腾记: (3) 采用nestjs-pino作为Nest logger