⽹站如何接⼊⽀付功能?⽀付详细教程它来了(建议收藏)2021/9/3/23:23
⽂章⽬录
⼀、⽀付流程分析
下图来源于⽀付官⽅⽂档
根据官⽅的这张时序图可以分析出⽀付流程
1.创建订单接⼝
这个具体怎么做呢?以下图天猫⼿机为例
当⽤户点击⽴即购买时会进⼊⼀个待⽀付页⾯,这个点击⽴即购买就会调⽤创建订单这个接⼝;所以数据库中必须要有⼀张订单表,该表中包含了⼀些⽤户信息和商品信息,当然最核⼼的是要包含订单
号(order_no)字段和是否⽀付(is_pay)字段
1.1、创建订单业务逻辑分析
⾸先订单表(order_no)最少的情况也要包含⼀些⽤户信息字段和商品信息字段,所以这就涉及另外两张表⽤户表(t_user)和商品(t_goods)表;(我以微服务为例进⾏阐述),远程调⽤商品模块和⽤户模块,将需要的字段封装到订单实体类中,进⽽保存数据库即可;其中有个需要注意的点,那就是订单号怎么⽣成呢?其实我们可以利⽤⽇期来编写⼀个⼯具类⽣成即可,这样也就不会造成重复的情况(时间⼀直向前嘛)。
1.2、创建订单业务逻辑核⼼代码
代码中的⼯具类和商品模块已经⽤户模块的代码等等已经省略,因为⽐如JwtUtils⼯具类以及OpenFeign远程调⽤、还有商品和⽤户的CRUD应该是很简单的,最重要的是思路。
@Override
public String createOrder(String goodsId, HttpServletRequest request){
//1.远程调⽤⽤户服务,获取⽤户信息
代码转换String userId = UserIdByToken(request);
UserInfoVO userInfo = UserInfo(userId);
//2.根据courseId查询出课程相关信息
GoodsInfo goodsInfo = GoodsInfo(goodsId);
//3.创建订单
Order order =new Order();
order.OrderNo())
.setGoodsId(goodsId)
.Name())
.Cover())
.setUserId(userId)
.
Nickname())
.Mobile())
.Price())
.setPayType(1)
.setStatus(0);
baseMapper.insert(order);
OrderNo();
2.待⽀付页⾯数据回显接⼝
2.1、待⽀付页⾯数据逻辑分析
以上⽅天猫商品为例,这个待⽀付页⾯包含了⽤户信息和商品信息,所以如果要做到这样的待⽀付页⾯,就需要根据订单号去数据库查询相关的订单信息,订单号?看下⽅⽰例代码
<section class="vn-qwe" v-else>
<a href="javascript:void(0)" title="⽴即购买" @click="createOrder()" class="attr-btn c-btn-3">⽴即购买</a>
</section>
createOrder(){
('user_token')==null){
window.location.href ='localhost:8555/login'
}
.then(response =>{
if(response.data.success){
console.log("==============="+ response.derNo)
this.$router.push({path:'/order/'+ response.derNo})
}
})
},
如上图中的前端代码为例,当点击⽴即购买时,就会跳转到待⽀付页⾯;从跳转的路径来看,路径中包含订单号,这个订单号就是调⽤创建订单接⼝后端返回的
所以这个待⽀付页⾯就可以通过订单号将相关的信息查询出来
2.2、回显数据代码实现
@ApiOperation("根据订单号查询订单")
@GetMapping("/getOrder/{orderNo}")
public ResponseEntity getOrder(@PathVariable String orderNo){
Order order = One(new QueryWrapper<Order>().eq("order_no", orderNo));
return ResponseEntity.ok().data("order", order);
}
3、⽣成⽀付⼆维码接⼝
想来也都明⽩,肯定是扫码⽀付
3.1、⽀付⼆维码逻辑分析
假设当前只能使⽤⽀付,当点击提交订单时,就会出现⼀个⽀付⼆维码;所以这个点击提交按钮就会调⽤后端⽣成⼆维码接⼝
其中需要⼀些核⼼的参数,当然你得认证通过之后(这些参数的意思不再过多阐述,官⽹可以了解)
1.appid 唯⼀标识
4.partnerkey 商户密钥
接⼝思路是什么?
封装这些参数到map集合中,然后远程调⽤接⼝即可;响应回来的包含result_code,code_url等等,这个url就是⽀付⼆维码地址
3.2、⽀付⼆维码核⼼逻辑代码实现
需要的依赖包wxpay-sdk
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论