手机微信上点击“下单界面的支付”后是白屏

来源:8-6 微信异步通知(下)

慕粉1462372119

2017-12-29

账号是借用廖师兄的,抓包截图如下图,没有报红

//img.mukewang.com/szimg/5a45f8300001654209100432.jpg

数据库(order_master表)产生信息如下图

//img.mukewang.com/szimg/5a45f53e0001189f13400029.jpg

后台也没报异常,是不是我的yml文件里的“keyPath”路径写的不对(Windows操作系统)??如下图

//img.mukewang.com/szimg/5a45f5680001f3e502790034.jpg

廖师兄,这个路径有问题吗?


程序也没进入到异步通知(借用账号需要把controller requestmapping里“/pay”和yml里的“/sell”去掉,但是我的yml里配成“notifyUrl: http://ingerma.natapp1.cc/sell/pay/notify
”,路径是不是多了/sell/pay??)


打断点调试如下图:

//img.mukewang.com/szimg/5a4614160001db4616000868.jpg

//img.mukewang.com/szimg/5a46169800017b4f15670533.jpg

后台只打印到“【微信支付】发起支付,response={。。。}”;并没有报错

然后手机就是白屏,显示不出支付界面。是templates目录下的ftl文件路径没配对吗?这个在哪配置?

但我都根据视频一步一步在网页端试过了,可以看到script源码。



写回答

1回答

廖师兄

2017-12-30

同学这问题描述得真详细,让我不得不仔细解答,从你的这个问题可以发现很多有意思的事,我们一起来看看。

  1. 首先,你怀疑是文件路径问题。发起支付的时候不需要密钥文件,退款的时候才涉及到,这里不用管路径。另外,退款时觉得路径有问题,该怎么解决呢,其一是在读取文件的代码地方打断点,看是否能读取到内容,其二,笨办法,这密钥其实就是个文件,java操作文件学过吧,自己写段读取文件的代码测试下即可。

  2. 程序也没进入到异步通知。支付后才会收到异步通知,你这还没支付呢。

  3. 后台只打印到“【微信支付】发起支付,response={。。。}”;并没有报错。说明你的后台代码没有错,至少是和微信打通了,收到了预支付返回的结果了。

原因呢,其实是你的前端代码,js有问题,从微信文档上copy代码不小心就会漏掉一些,可以对比我给的源码,找找问题。

说了这么多,遇到问题,你把可能影响的各个面都想到了,这是优点。但是,还不够,你要熟悉支付的整个过程,才能准确的找到问题并且解决它。希望你从这个问题里得到一些启发,人最宝贵的是学会思考,而不仅仅是学会知识。加油!

1
4
慕粉1462372119
回复
MiJac_Cup
我当时是这个ftl文件内没有对路径进行转码,转码后就好了
2018-03-27
共4条回复

Spring Boot双版本(1.5/2.1) 打造企业级微信点餐系统

从0到1开发中小型企业级Java应用,并学会迭代重构技巧

6410 学习 · 5247 问题

查看课程