收起左侧

动态URL方式调用微信支付

0
回复
604
查看
[复制链接]

尚未签到

577

主题

2588

帖子

2593

积分

话唠

Rank: 6Rank: 6

积分
2593
发表于 2019-10-23 10:48:54 | 显示全部楼层 |阅读模式
一、简介

微信支付提供了两种使用方式,一种是配置固定回调响应地址, 一种动态设置回调响应地址。无论哪种方式,都需要提供一个备案审核通过的外网域名,因为扫码支付最终走的是微信客户端,没有通过浏览器跳转到微信页面,所以微信支付的回调之后服务器之间 点对点通信,没有 url 重定向通知
其中动态 URL 的方式开发相对简单,本文档中使用的就是动态 URL 方式
二、微信支付申请

申请请参考官方的申请流程,此处不做说明
三、开发流程

此方式的流程是:
用户提交购买的商品或者是选择要支付的订单,然后传递到服务器
如果是新购买,则生成订单等信息,如果是付款则获取订单信息
将订单信息和商户的信息,如回调地址等作为参数,按照要求排序签名后发送到腾讯服务器
腾讯服务器会返回一个微信支付二维码的短连接,两小时有效
后台将短连接生成图片,跳转到支付页面,让用户扫码
用户扫码支付成功后,微信会在他们后台访问我们指定的回调接口地址,将结果传递过来,不会重定向
在回调服务内,判断支付状态等,更新数据
演示地址:http://ceshi.qfjava.cn/payment
四、微信配置

使用超级管理员账号(注册时候绑定的实名认证联系人的微信),安装证书,设置 API 密钥,下载证书(备用)

                               
登录/注册后可看大图


五、POM中的依赖文件


                               
登录/注册后可看大图



                               
登录/注册后可看大图


六、开发需要内容

1. 微信APP_ID, 可在微信公众平台查看对应微信号的 ID
2. 商户 ID, 可在微信商户平台查看,上图列表中的商户信息中会有
3. API_KEY 上图中设置的 API 密钥
4. 微信统一下单 URL:https://api.mch.weixin.qq.com/pay/unifiedorder 可以在开发者文档中查看
5. 回调 URL, 用于用户支付成功后 微信后台点对点通知支付结果,非重定向,需要一个公网地址
6. 发起支付的 ip, 创建 ip 地址, 可以填写服务器ip
以下代码开发未使用实际商品和数据库,才用虚假数据支付
实际开发中,只需要更改页面 和 Servlet 中的业务逻辑,以及配置文件中的相关信息
其中 ResultServlet 中需要处理的是支付成功和失败后需要做的事情
6.1 index.jsp
此页面用于用户输入一个想要购买的商品的名称,模拟购买,不需要输入价格,服务器后台写死1分钱,实际开发请按照购物流程

                               
登录/注册后可看大图


6.2 TestServlet
用于获取用户输入的商品名称,生成订单

                               
登录/注册后可看大图


6.3 payment.jsp

                               
登录/注册后可看大图


6.4 ImageServlet
用于获取二维码图片显示到页面上面

                               
登录/注册后可看大图


6.5 PayConfigUtil
用于配置上述需要的信息

                               
登录/注册后可看大图


6.6 XMLUtil
用于解析微信返回的 xml 数据

                               
登录/注册后可看大图



                               
登录/注册后可看大图


6.7 MD5Util
用于生成微信需要的校验数据

                               
登录/注册后可看大图



                               
登录/注册后可看大图


6.8 HttpUtil
用于发起网络请求

                               
登录/注册后可看大图



                               
登录/注册后可看大图


6.9 PayCommonUtil
用于校验支付相关的内容, 以及发起微信支付获取支付二维码的字符串

                               
登录/注册后可看大图



                               
登录/注册后可看大图



                               
登录/注册后可看大图



                               
登录/注册后可看大图



                               
登录/注册后可看大图



                               
登录/注册后可看大图


6.10 ZxingUtil
生成二维码的工具类

                               
登录/注册后可看大图



                               
登录/注册后可看大图



                               
登录/注册后可看大图


6.11 ResultServlet
处理支付结果的 Servlet

                               
登录/注册后可看大图



                               
登录/注册后可看大图



                               
登录/注册后可看大图



                               
登录/注册后可看大图



                               
登录/注册后可看大图


七、测试

提交购买

                               
登录/注册后可看大图


支付页面扫码

                               
登录/注册后可看大图


查看支付结果

                               
登录/注册后可看大图




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫描微信二维码

查看官方公众号

了解更多详情

2241998733

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:成都市锦江区通汇街342号
电邮:wxcydz#qq.com(#换成@)
微信:2241998733

无限创意电子仅提供平台服务,如有贷款产品及展示信息均为互联网采集。贷款属于借贷行为,本社区不提供任何代办服务。借款有风险,申请需谨慎,风险自理,责任自担。 © 2018-现在 VIP团队( 蜀ICP备17006511号-1 )