做的是微信H5支付,微信APP支付已经有了,H5支付还没有,需要注意的是:H5支付需要在微信支付商家后台单独开通。
微信H5支付开发流程图:

红色的就是我们服务端需要做的,简单来说的业务流程就是:
在我们自己的系统里下订单
把我们系统的订单号,和一系列参数编辑好,以XML的格式传给微信统一下单接口
得到微信下单回执,在成功的情况下,把mweb_url参数传给前端访问它
在前端用户已付款的情况下,微信访问你之前传的回调参数,在你自己的系统里运行一些业务逻辑(如更改订单状态)
到这里微信H5支付的业务流程基本上算完成了。
具体的代码是:
// 需要的jar等,这里为了方便就把一些工具类的方法写在一起了,需要的jar在这里,没有的在下面具体的类上的注释也有标出来
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.Map;
import org.apache.hc.client5.http.fluent.Request;
import org.apache.hc.core5.http.entity.ContentType;
import org.dom4j.DocumentException;
import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSON;
/*创建微信的H5订单信息*/
@Override
public OrderCreateVO getWechatH5PayOrderInfo(int fee, String callback,
Long uid, String out_trade_no) {
// 请求和响应参数参考:https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=9_20&index=1
HashMap params = new HashMap();
// 公众账号ID:微信分配的公众账号ID(企业号corpid即为此appId)
params.put("appid", WX_APP_ID);
// 商户号:微信支付分配的商户号
params.put("mch_id",WX_MCH_ID);
// 设备号:终端设备号(门店号或收银设备ID),注意:PC网页或公众号内支付请传"WEB"
params.put("device_info", "WEB");
// 随机字符串:随机字符串,不长于32位。推荐随机数生成算法(https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=4_3)
params.put("nonce_str", PayUtil.getRandom

本文介绍了如何使用Java实现微信H5支付的详细步骤,包括在服务端创建订单、调用微信统一下单接口、处理回调等关键流程,并提供了相关代码示例。
最低0.47元/天 解锁文章
325

被折叠的 条评论
为什么被折叠?



