前言

在上一篇文章中我们已经做了微信支付退款的实战教程案例,那么接下来我们继续讲一下微信支付的H5支付下单的实战教程案例。注意:本文章是使用微信支付v3版本java对接详细流程


温馨提示:以下是本篇文章正文内容,下面案例仅供参考

一、微信H5支付应用场景

H5支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前述页面确认使用微信支付时,商户发起本服务呼起微信客户端进行支付。
主要用于触屏版的手机浏览器请求微信支付的场景。可以方便的从外部浏览器唤起微信支付。

二、接入H5支付实现

接入流程其他的我就不一一在这里说了,大家可以参照官方H5下单地址

直接上代码(以下为示例):

在这里插入图片描述

1.微信H5支付API

    /**
             *   微信H5支付下单
	 * @param orderId 订单id
	 * @param money 支付金额
	 * @param member 会员id
     */
	@GetMapping("/payment/h5")
    public String paymentH5(Long orderId,BigDecimal money,Long member) {
		try {
			//统一下单请求参数对象
			WxPayUnifiedOrderV3Request orderRequest = new WxPayUnifiedOrderV3Request();
			//根据实际业务生成实际订单数据
			orderRequest.setAttach("orderId_"+orderId);
	        orderRequest.setDescription("会员支付"+money+"元");
	        SceneInfo scen = new SceneInfo();
	        H5Info info = new H5Info();
	        info.setType("Wap");//场景类型:iOS, Android, Wap
			scen.setH5Info(info);
			scen.setPayerClientIp("127.0.0.1");//用户终端IP:注意:用户的客户端IP,支持IPv4和IPv6两种格式的IP地址。
			orderRequest.setSceneInfo(scen);
			//生成流水的规则根据实际业务情况设置
	        long generate = generate("XYKJ"+member+DateUtils.dateTime());
	        String sequence = String.format("%04d", generate);
	        String tradeNo = "XYKJ"+member+DateUtils.dateTimeNow()+sequence;
	        orderRequest.setOutTradeNo(tradeNo);
	        //回调地址
	        orderRequest.setNotifyUrl(wxPayService.getConfig().getNotifyUrl());        
	        WxPayUnifiedOrderV3Request.Amount am = new WxPayUnifiedOrderV3Request.Amount();
	        am.setTotal(money.multiply(new BigDecimal(100)).intValue());
	        am.setCurrency("CNY");
			orderRequest.setAmount(am);
			//TradeTypeEnum 支付方式
	        String url = wxPayService.createOrderV3(TradeTypeEnum.H5,orderRequest);
	        return url;
		} catch (Exception e) {
			log.error("h5支付下单失败",e);
			return e.getMessage();
		}
    }

2.官方H5下单请求参数可参照

在这里插入图片描述


总结

以上案例为博主实际应用的代码案例,如果不懂如何接入微信支付的,可以多看几遍官方文档即可,没有什么难度指数**,注意:在接入微信支付之前要先注册微信支付商户号,不管是APP,JSAPI 或 小程序,NATIVE,H5 都一样方法,
如果要使用该文章,请注明转载处,请勿直接把原创文章发布到其他地方,感谢理解。