java微信开发之微信支付

本文详细介绍了使用Java进行微信支付的步骤,包括获取openid、统一下单、生成签名等关键环节,旨在帮助开发者避免常见的坑,实现微信支付功能。
摘要由CSDN通过智能技术生成

**写在前面:
本人一直“奉行授人以鱼不如授人以渔”,本文主要是起一个引导的作用,注意一些很坑的地方。
微信支付,本人菜鸟花了2天时间弄出来,也算是有点成就感,所以特此做个记录
**
分割线—————————————————————————
正文开始:
先来看看微信官方流程图:
这里写图片描述
总结起来就是四个步骤:

  1. 点击支付按钮
  2. 微信拉起支付,输入密码
  3. 完成支付
  4. 通知微信服务器
    下面就是我做测试支付的图:
    点击支付按钮(后台一大堆业务逻辑处理,后面会讲):
    这里写图片描述
    微信拉起支付(这个调用微信自动完成的):
    这里写图片描述
    完成支付,通知微信(这个需要我们自己完成业务逻辑,后面会讲到)
    这里写图片描述

流程就是这样,其实总结出来,我们需要做的就是2步:
流程图中
4:统一下单
5:调用统一下单api
6:生成下单签名
(4 5 6)可以并为一步
11:告知微信通知处理结果

开始编码实现:
查阅文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_3
获取到统一下单接口:
统一下单接口:https://api.mch.weixin.qq.com/pay/unifiedorder
文档中说明,统一下单必须获取openid,各位客官别急,待我带你们一起查阅官方文档:
https://mp.weixin.qq.com/wiki?action=doc&id=mp1421140842&t=0.003036260317902828#1
这里一大堆说的就是获取openid,文档讲的十分清楚。

先放下prepay_id,我们来说说如何获取open_id(因为没有open_id,我们也没法去获取prepay_id)
获取这个分为4步:

  1. 用户同意授权,获取code
    https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE
    我来解释下后面附带参数的意思:
    appid: 用户唯一凭证,就是微信公众号的应用id
    redirect_uri: 这个就是回调url,注意这个url 会附带着 code过去,就是第一步中的code。
    scope: 有两种 snsapi_base 和 snsapi_userinfo 具体请参照文档
    state: 随意填写
    其他参数 照写
  2. 通过code换取网页授权access_token
    请求以下链接获取access_token: https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
    参数说明:
    appid:这个参数使用都是一样的
    secret: 这个参数在位置支付基本配置中可以查看
    code: 第一步获取的code
    grant_type:不变
    请求这个就能返回如下json
{
    "access_token":"ACCESS_TOKEN",    
     "expires_in":7200,    
     "refresh_token":"REFRESH_TOKEN",    
     "openid":"OPENID",    
     "scope":"SCOPE" 
 } 

解析上述json字符就可以获取到openid了。各位客官,可以喝杯茶休息休息啦!

接着来:有了openid,开始获取prepay_id
继续文档:
查阅文档:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值