对接微信H5支付(Java)

微信H5支付是让用户在非微信浏览器中使用的一种支付方式;

项目中对接微信支付是   微信公众号关联商户号的账号;

先上微信支付对接文档 微信支付文档地址,有需要的童鞋可以先自行了解一下;

从微信公众号后台获取基本数据,哪里获取自行登录微信公众号登录

1.appid :公众号ID

2.mchid:商户号

3.key:商户号密钥

微信支付下单接口是统一的地址:https://api.mch.weixin.qq.com/pay/unifiedorder

微信加密规则自行了解微信加密规则

添加一个微信的工具类方便操作,maven地址

<dependency>

<groupId>com.github.wxpay</groupId>

<artifactId>wxpay-sdk</artifactId>

<version>0.0.3</version>

</dependency>

后端对接微信就一步操作,调用微信统一下单接口获取支付链接返回给前端就好了 微信H5下单文档

具体代码如下图,图中xml转实体,map转xml,以及加密参数 ,可引用上方maven中, WXPayUtil 中有对应方法

前端跳转链接唤醒微信,当用户支付成功后微信会通过第一步中 notify_url(异步通知地址)回调到服务器,通知该订单支付状态

回调自己处理对应业务逻辑后需要返回给微信一个处理成功的通知,否则微信回在一段时间不间断通知你的服务器,以下就是返回内容,直接response.write(resXml ) 就可以了;

String resXml = "<xml>" +

"<return_code><![CDATA[SUCCESS]]></return_code>"

+ "<return_msg><![CDATA[OK]]></return_msg>"

+ "</xml> ";


//获取request中的回调参数 并转成map

InputStream inStream = request.getInputStream();

ByteArrayOutputStream outSteam = new ByteArrayOutputStream();

byte[] buffer = new byte[1024];

int len = 0;

while ((len = inStream.read(buffer)) != -1) {

outSteam.write(buffer, 0, len);

}

String resultxml = new String(outSteam.toByteArray(), "utf-8");

outSteam.close();

inStream.close();

Map<String, String> paramMap = WXPayUtil.xmlToMap(resultxml);

                                                                                        至此整个支付流程已经对接完毕

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 项目中需要对接微信支付记录下; 项目中对接微信支付是 微信公众号关联商户号的账号; 先上微信支付对接文档微信支付文...
    L丶牛奶煮萝莉阅读 2,972评论 0 1
  • 引言 秋高气爽,天气转凉,正是学习工作做的好时候。(~ ̄▽ ̄)~~(~ ̄▽ ̄)~ 我是个phper最近在写微信支付...
    恩就是这个名阅读 12,461评论 2 15
  • 1、开启公众号开发者模式 公众平台的技术文档目的为了简明扼要的交代接口的使用,语句难免苦涩难懂,甚至对于不同的读者...
    good7758阅读 5,451评论 0 1
  • 在做微信支付时,虽然网上已经有了很多的文档和介绍,但是自己做了一遍还是遇到了很多坑,现在记录下来。 首先说一下大概...
    T_涛_T阅读 4,306评论 0 0
  • 9af0e05c6c75阅读 2,910评论 0 0