微信公众号支付,顾名思义就是必须在微信中实现支付,并且需要公众号配合。
教程由于我们使用的是第三方封装好的接口,这里省去了我们自己配置公众号。为什么用第三方?因为个人没有申请权限。
交互细节:
以下是支付场景的交互细节,请认真阅读,设计商户页面的逻辑:
-
用户打开商户网页选购商品,发起支付,在网页通过Javascript调用getBrandWCPayRequest接口,发起微信支付请求,用户进入支付流程。
-
用户成功支付点击完成按钮后,商户的前端会收到Javascript的返回值。商户可直接跳转到支付成功的静态页面进行展示。
-
商户后台收到来自微信开放平台的支付成功回调通知,标志该笔订单支付成功。
前端引入:
后台逻辑,基本上就这三步:
-
获取授权链接
-
根据 code 获取 openId
-
根据 openId 获取支付参数
@GetMapping(value="getOauthUrl")
public void getOauthUrl(HttpServletResponse response) throws IOException {
String url="https://xxx.xxxx.vip/pay/weiXin.html?a=1";
String oauthUrl = WxPay.getWxOauthUrl(null, url);
response.sendRedirect(oauthUrl);
}
@PostMapping(value="getWxOauthInfo")
public Result getWxOauthInfo(String code) {
WxOauthInfo wxOauthInfo = WxPay.getWxOauthInfo(code);
return Result.ok(wxOauthInfo);
}
@PostMapping(value="jsApiPay")
public Result jsApiPay(Product product) {
return wxPayService.jsApiPay(product);
}
前台逻辑:


