本文介绍的是微信H5支付功能开发,也就是在微信之外的H5页面支付。
首先我们需要先看微信的官方文档https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_1,这里面几乎介绍了全部流程了。等你了解大概流程之后,需要在微信公众平台和微信商户平台拿到或者配置一下参数。
appid:公众平台的appid
商户密钥:key设置路径:微信商户平台(pay.weixin.qq.com)-->账户设置-->API安全-->密钥设置
最后在商户平台后台产品中心-->开发配置 中添加H5支付回调域名,域名必须是通过备案的。(下图借用了某个兄弟的图,我懒得上后台截图了)
花了不少时间去填这些坑,填完了我们就可以吭哧吭哧开工搬砖了!
写完支付别忘了还有订单查询功能需要开发,主要为了查询出哪些王八蛋就只是来看看不买东西还占库存。不给钱的我们需要把库存要回来。
/**
* 保存订单并发起支付请求
* @param request
* @param response
* @throws IOException
*/
@RequestMapping(value = "/save")
public void save(HttpServletRequest request, HttpServletResponse response) throws IOException{
//判断用户是否登录
String mobileNumber = (String)request.getSession().getAttribute("mobileNumber");
if(StringUtils.isEmpty(mobileNumber)){
return;
}
response.setContentType("text/xml;charset=utf-8");
PrintWriter out = response.getWriter();
ResponMsg msg = new ResponMsg();
msg.setSuccess(true);
String content = "提交成功";
try{
//获取用户选择的票务信息,邮寄信息
String ticketId = request.getParameter("ticketId");
String ticketCount = request.getParameter("ticketCount");
String userName = request.getParameter("userName");
String userAddress = request.getParameter("userAddress");
String userMobile = request.getParameter("userMobile");
//参数验证
if(StringUtils.isEmpty(ticketId) || StringUtils.isEmpty(ticketCount) || StringUtils.isEmpty(userAddress)
|| StringUtils.isEmpty(userMobile) || StringUtils.isEmpty(userName)){
content = "请正确且完整填写收货信息!";
msg.setCode(-2);
return;
}
//判断是否有可售票 有则创建订单预留票并发起支付
ActTicket actTicket = showService.queryTi