开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot): 生成微信支付二维码接口(1)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/667/detail/11493
生成微信支付二维码接口(1)
目录:
一、支付二维码
二、生成支付二维码过程
一、支付二维码
生成订单并显示信息后,应开始实现点击支付即可跳转到微信二维码页面的功能。
生成一个支付二维码,课程是12元,那么二维码即12元,扫描即可支付。
需要先写接口,在前端整合。这个微信支付二维码,与微信登录二维码是有区别的,登录二维码写地址即可生成,支付二维码不仅需要地址,还需要 wille 的组件,下载二维码才能生成。
二、生成支付二维码过程
先写接口,再写前端。
1、准备工作
需要申请微信开发者资质,申请后的平台可以提供相关的信息,比如id或者其他内容,同样,只支持企业用户,个人目前不支持,而这里面做微信支付需要的内容已经提供了,在源码中的工具类有一个微信支付账号,需要用这个才能支付。
但这个和微信登陆不是同一个事情,是完全不一样的。需要用到微信支付账号
通常用前三个,第一个是做微信支付的 id,第二个是微信支付的商户号,因为是企业用户做微信支付,需要有一个商户号。第三个是商户 key,每个商户的商户号和商户 key 都不一样。后面用这三个做相关支付,生成二维码做操作。
2、微信支付二维码接口
将支付相关接口写到 PayLogController 中,
@RequestMapping(“/eduorder/paylog”)
@CrossOrigin
Public class PayLogController (
@Autowired
private PayLogService payLogService;
在订单显示页面,网址最后是订单号,订单号中要生成二维码需要用到订单号,只需要上传一个订单号参数
//生成微信支付二维码接口
//参数是订单号
@GetMapping(“creatNative/{orderNo}”)
//创建方法
public R createNative(@PathVariable String_orderNo)_{
//返回信息,包含二维码地址,还有其他信息
为了后面取值方便,一般用 mapmap 类型
Map map = payLogService.creatNative(orderNo);
return R.ok(),data(map):
}
}
下面在 service 中做个创建,来到实现类中写最终的方法
首先根据订单号查询信息,建立 map 集合,把支付需要的参数放到 map 集合中,发送一个 httpclient 的请求,请求微信的一个地址,并且把 map 集合传输过去,需要将传输的东西转换成 xml 格式参数,需要用到商户 key,处理后发送请求才能得到数据。
public interface PayLogService extends IService {
//生成微信支付二维码接口
Map createNatvie(String orderNo):
写完后来到实现内容
//生成微信支付二维码接口
@Override
public Map createNatvie(String orderNo){
return null;
}
}