分享好友 最新动态首页 最新动态分类 切换频道
13-pyg-10/11结算页面及支付模块
2024-12-26 23:18

整合模板(Order控制器create方法 getOrderInfo.html -> create.html

创建Order控制器,继承Base控制器

结算页需要登录才能访问,修改order控制器create方法,判断登录,并设置返回的url

修改Login控制器dologin方法,登录成功之后,先获取返回的url

修改Login控制器qqcallback方法,登录成功之后,先获取返回的url

购物车列表页view/cart/index.html

思路

给“结算”绑定点击事件

判断是否有选中的记录

有则跳转到结算页

数据表pyg_address

 

创建模型

 

收货地址展示

①在Order控制器create方法,查询用户的收货地址信息

:数据表中默认只有几条测试数据,需要根据登录的用户id,修改pyg_address表user_id,用于测试

②在view/order/create.html展示收货地址信息

①修改Order控制器create方法,查询选中的购物记录数据

定义关联模型,并绑定字段

查询数据,统一价格和库存信息

累加总数量和价格

②修改结算页面view/order/create.html 展示结算商品信息

遍历输出每一条购物记录的商品信息

展示总价和数量

展示选中的收货地址

将查询选中的购物记录功能,封装到了OrderLogic类的方法

Order控制器create方法中,查询购物记录代码,可修改如下

订单表pyg_order; 订单商品关联表pyg_order_goods

每次用户提交订单,需要在订单表添加一条记录,在订单商品关联表添加多条记录。

订单数据处理完成,从购物车表将对应记录删掉。

创建前台模型

 
 

订单编号:自动生成(数字、字母组合,不能重复

用户id:读取session

订单金额:计算累加

从结算页需要收集的数据

收货地址address_id

思路

给 “提交订单” 绑定点击事件,发送请求(form表单提交

从页面收集对应参数值(选中的地址id,放到表单中

提交表单

①修改view/order/create.html,给收货地址添加属性address_id

②禁用“提交订单”a标签的href属性

③在页面加一个隐藏的表单,用于点击“提交订单”,发送请求

④绑定事件,获取到用户选择的地址参数,放到表单中,进行提交

向订单表添加一条数据

向订单商品表添加多条记录

从购物车表删除对应的记录

①组装订单表需要的数据,添加一条记录到订单表

将查询选中的购物记录功能,封装到了OrderLogic类的方法

②将订单下的商品信息添加到订单商品表

③删除购物车中对应的记录

④展示选择支付页面

在配置文件中,定义支付方式

创建订单后,查询支付方式

SKU => 库存

①从商品详情页 到 购物车 到结算,都可能需要显示 “有货” “无货”

②创建订单过程中,维护商品的库存

扣减库存

创建订单时:扣减库存(预扣减|冻结库存:设置支付时间,超过时间未支付,释放预扣减库存。

支付时:支付成功扣减库存,支付失败,释放预扣减库存。

问题

只在创建订单时扣减库存:如果下订单后不支付,则无法继续销售。

只在支付成功时扣减库存:容易发生超卖现象,用户付款了,没货。

创建订单时,对每一个商品,都要检测库存是否充足,如果库存不足,则订单创建失败

库存充足,则预扣库存(冻结库存

常见支付方式:微信支付、支付宝支付、银行卡支付。

支付宝支付接口的类型(商家的集成方案

担保交易接口 用户支付的资金先进入担保账户,确认收货后才进入商家的账户

即时到帐接口 用户支付的资金立即进入商家账户

担保交易接口在2016年8月已经停止申请。

支付宝支付流程

支付宝开放平台: https://open.alipay.com

使用自己的支付宝账号登录平台

进入我的开放平台

创建应用

应用创建完毕,要为其设置功能选项

支付宝本身提供的功能很多,需要给当前的应用做选取

签约:需要审核

需要填写 个体工商户信息 ,个人身份无法继续签约。

支付宝开放平台: https://open.alipay.com

使用自己的支付宝账号登录平台

进入我的开放平台

支付宝为没有个体商户资质的开发测试人员提供了一个测试环境,即沙箱应用。

在沙箱环境可以看到appid、测试支付宝网关、密钥信息

APPID:2016091000479921

支付宝网关(gateway:https://openapi.alipaydev.com/gateway.do

秘钥(公钥、私钥:需要自行生成

在沙箱帐号 里边可以看到 商家信息 和 买家信息

进行付款的时候,就使用买家帐号

买家账号:tvvxuf8253@sandbox.com

密码及支付密码:111111

支付宝接口使用时,需要配置密钥。

后续可以通过点击“查看应用公钥” 进行修改

打开以下设置或修改密钥页面,先 查看密钥生成方法

点击下载密钥生成工具

解压之后,打开 RSA签名验签工具.bat

点击生成密钥,得到商户应用私钥 和商户应用公钥

生成好的密钥(公钥和私钥)会在 工具解压目录的RSA密钥目录 下保存为文件格式

回到沙箱应用的应用公钥设置页面,用刚才生成的应用公钥进行设置

修改好之后,可以重新进行查看。除了“应用公钥”,还自动生成了“支付宝公钥”。

保留 应用私钥、应用公钥、支付宝公钥 备用。

SDK(software development kit,软件开发工具包,简单来说就是一些demo示例代码文件。

支付宝提供了一套demo文件,可以通过下载SDK拿到

进入电脑网站支付的文档中心,可以下载SDK&demo

下载后

 

SDK&demo的使用

把解压后的目录移动到项目目录中public/plugins目录下并改名为alipay

在浏览器直接访问该目录(以多级目录的方式直接访问

http://www.pyg.com/plugins/alipay

直接点击付款会跳转到报错页面,需要先配置支付宝参数

设置方式

从沙箱应用页面,获取到APPID, 支付宝网关,支付宝公钥

配置秘钥时生成的商户私钥

配置到public/plugins/alipay/config.php中

设置两个回调地址

说明:notify_url 是用来提供给支付宝服务端调用的,必须是外网可以访问的路径

Return_url是用来页面同步跳转成功页面,是由浏览器跳转,原则上必须是外网可以访问的路径,这里测试可以使用本地的地址,也能跳转成功。

在浏览器重新访问http://www.tpshop.com/plugins/alipay/

点击付款,会跳转到支付宝支付页面如下

点击登录账户付款,使用沙箱账号中的买家账号登录并付款。

支付成功之后,页面会跳转到支付宝成功页面

最后会跳转到商家的网站支付成功页面(之前设置的return_url的地址

同时会携带很多参数在url中。

①选择支付方式后,提交表单

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hpy5bWvG-1677320184486)(img/1564199641040.png)]

控制器中接收表单提交

②跳转到支付宝

在自己网站集成支付接口,可以参考使用SDK中的使用方式alipay/index.php

提交表单到 pagepay/pagepay.php

PRG模式 全称:Post-Redirect-Get

本质:提交form表单

简化之后的表单

 

这个表单还要实现自动提交

 

具体代码实现

①修改home分组order控制器pay方法,在去第三方支付的位置处理

②支付成功页面展示(同步回调地址

修改Order控制器callback方法,接收数据

支付宝传递的参数如下(两个回调地址中的参数基本一样

验签(参数检测, 可参考alipay/return_url.php中的写法

整合支付结果页面,修改view/order/paysuccess.html 和 payfail.html,根据需要展示数据

③异步通知地址 notify里,修改订单状态。(本地地址,支付宝调用不到。

可参考alipay/notify_url.php中的写法

支付宝接口中,返回的参数包含sign 和sign_type 签名参数。用于对所有的原始参数进行验证的(接口安全考虑

验签原理:调用接口时,将原始参数 按照一定顺序排序,使用加密方式进行加密 生成对应sign签名值。发送请求时,将签名值和签名方式,作为附加参数。

接口接收到参数后,将原始参数以相同的规则重新生成签名值,和传递过来的签名值进行比对。

模拟

定义生成签名的方法

定义验证签名的方法

模拟支付宝服务端发送请求

模拟商城异步通知地址,验证签名

最新文章
百八十个密码不用记,试试免费、跨平台的微软密码管理 App
  随着使用网站数量的增多,对于密码管理愈发的重要起来。抛开安全因素不讲,记住这些密码本身就是一个很考验记忆力的事情。面对如此越来越多的密码,不同的人有不同的解决方案。我的同事当中有人用小本子记录自己的密码,也有人用 Excel
英雄联盟技能提示怎么设置?
方法/步骤1/4进入游戏在电脑桌面打开LOL,进入到游戏界面。2/4进入游戏设置进入英雄联盟游戏大厅,点击右上角的进入游戏设置。3/4设置轨迹指示在设置界面选择热键,点击第一个选项,用带指示器的快捷施法替代快捷施法这个选项。4/4取快捷施
百度教育用AI黑科技为高考生家长送“清凉”
今日上午9时,一年一度的高考大戏正式上演。数据显示,今年全国有940万考生参考,北京地区共设92个考点,1791个考场,预计6万余人参加高考。与往年一样,除了直接参与“战斗”的高考考生,“望子成龙心切”的陪考大军也是每个考点周边必不
线上赏樱花5分钟教你用Python:画一棵漂亮的樱花树(附代码)
如果觉得不过瘾,先想自己亲自做樱花效果,那么赶紧来看了,各式各样的樱花效果树,领域IT界樱花盛景,下面就分享一下好看好玩的樱花效果树代码,这些大多都是运用python中的海龟画图来实现出来的效果
【整站源码+每天自动采集】羊毛部落赚客资讯类网站源码/无人值守采集/养站站群专用
【整站源码+每天自动采集】羊毛部落赚客资讯类网站源码/无人值守采集/养站站群专用源码介绍薅羊毛资讯博客自动采集站源码,wordpress后台前后端均为响应式布局方便管理,支持用户注册科投稿。1、内置大量文章,安装后即可运营省时省力;2、
网络推广工具种类有哪些
网络推广工具种类繁多,可以根据推广目标和策略选择适合的工具。以下是一些常见的网络推广工具类别:1. 社交媒体管理工具: - 用于管理和优化社交媒体平台上的内容和广告。例如,Buffer、Hootsuite、Sprout Social。2. 搜索引擎优化工具(S
排列五开奖结果第2021327期 一等奖中出189注
  每天晚上20点30分,一起来和我关注体彩排列五开奖结果。今天是2021年12月07日,中国体育彩票排列三第2021327期开奖号码如下。排列五作为排列三的延伸,堪称排列三的老大哥,只有一个奖级设置,奖金高达10万元,故而深得彩民朋友的热爱
福建网站排名优化费用是如何计算的?
福建网站seo优化百度搜索引擎关键词快速排名推广提升自然流量点击SEO优化师、网站设计师、梦想者您的流量获取专家“创新互联”成立于2013年,是一家注重效果与用户体验的运营公司,创立至今为500多家企业提供了针对于网站的搜索引擎优化方
短网址生成器:提升链接分享与搜索引擎索引效率的利器
在日常生活和工作中,我们经常需要分享和传递链接,无论是在社交媒体上发布内容、发送电子邮件还是在广告宣传中,链接的长度往往是一个挑战,特别是对于一些复杂的、包含多个参数的链接来说。长长的链接不仅不美观,还可能被截断或错误地复
用AI绘画技术生成高清美女写真,轻松成为数字艺术大师!
在数字时代,生成艺术品的方式正在悄然改变。你是否曾梦想拥有自己理想的美女写真?而如今,借助人工智能技术,我们不仅可以实现这样的愿望,还能让生成过程变得轻松而有趣。那么,如何通过AI生成超逼真的美女写真呢?本文将带你探索这场科
相关文章
推荐文章
发表评论
0评