微信APP支付Java后台总结

出于兴趣写了一个纯支付的模块,有兴趣的同学可以去看看(戳我

———————————分隔线———————————–

微信APP支付大致的流程和支付宝APP支付有很大不同(想了解支付宝APP支付的同学点这里),其中略坑的一点就是MD5加密的方法需要自己写,好在微信官方给出了测试地址

前置准备

微信的东西比支付宝要复杂一点,要先去注册开发者账号,然后一系列巴拉巴拉……,然后得到下面列出的我们开发需要的参数,下面的参数中TOKEN和CERT_PATH是需要退款和设计到其他功能才需要的,如果只做APP支付功能的同学可以忽略。

  • APP_ID : 服务号的应用ID
  • APP_SECRET : 服务号的应用密钥
  • TOKEN : 服务号的配置token
  • MCH_ID : 商户号
  • API_KEY : API密钥
  • SIGN_TYPE : 签名加密方式
  • CERT_PATH : 微信支付证书名称、

支付流程

具体的流程大概就是后台拿到(或生成)自己的订单号后,拿着一堆参数按ASCII码(即abc…)排序后用MD5加密后调用微信的服务器地址拿到一个prepayId,再将prepayId和当前的参数再次排序和加密(二次加密)生成sign后返回前端进行支付,支付完成后,微信的后台会回调我们的后台接口。

Java代码

maven依赖

`<!-- 微信支付依赖 -->
<dependency>
    <groupId>org.xmlpull</groupId>
    <artifactId>xmlpull</artifactId>
    <version>1.1.3.1 </version>
</dependency>
<dependency>
    <groupId>net.sf.json-lib</groupId>
    <artifactId>json-lib</artifactId>
    <version>2.3</version>
    <classifier>jdk15</classifier>
</dependency>
<!-- https://mvnrepository.com/artifact/com.thoughtworks.xstream/xstream -->
<dependency>
    <groupId>com.thoughtworks.xstream</groupId>
    <artifactId>xstream</artifactId>
    <version>1.4.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.ning/async-http-client -->
<dependency>
    <groupId>com.ning</groupId>
    <artifactId>async-http-client</artifactId>
    <version>1.8.13</version>
</dependency>`

Java代码

@ResponseBody
@RequestMapping(value="/wxpaySign",method=RequestMethod.POST)
public JsonResult getWXPaySign(double totalAmount,String userId,String out_trade_no,String ip) 
            throws JDOMException, IOException{
        //预备参数
        WXPayDTO wxPayDTO = new WXPayDTO();
        String subject = "******";
        String body = "******";
        String nonceStr = setNonceStr();
        long timeStamp = (long)CommonUtil.getSecondTimestamp(new Date());
        String packageStr = "Sign=WXPay";
        String total_fee = String
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值