为了账号安全,请及时绑定邮箱和手机立即绑定

廖师兄的微信点餐系统的难点及疑点

标签:
Java

这里说一下我碰到的情况,我把师兄的视频从头到尾看了一遍并且对着敲了一遍之后,感觉懵懵懂懂的,就打算再次看一遍,加深一下印象。顺便把遇到的问题和我的解决方法说一下,下面是我第二遍所碰到的问题以及我自己的理解。

1:virtualbox里的虚拟机和自己主机ping不通

virtualbox里面的虚拟机和自己的主机ping不通。看到这里,可能好多同学都会觉得,我要么用的不是桥接模式,要么就是我连的wifi,那路由器设置了隔离。不过都不是,我100%确定,我的连接模式是桥接模式,并且我连得网没有设置隔离,因为是我手机发出来的WiFi。所以,我这里花了一下午的时间处理,网上的教程可以说是五花八门了,不过都没有多大用,还是ping不通,最后我是怎么解决的呢,我是把虚拟机给删了,然后再去控制面板把virtualbox也给删了,然后重新安装virtualbox,重新导入centos7.3(师兄给的镜像)。这时候进去就可以直接ping通主机了,主机也可以和ping通虚拟机了。(我之前第一次就是可以直接ping通的,所以我才敢这么干。。。)


2:通过postman发出创建一个订单的请求,不会有音乐

你的idea界面或者其他界面挡住了整个浏览器,所以,音乐不会有,但是创建订单之后的那个弹窗还是会有的,解决办法就是,不要让idea界面或者其他界面挡住整个浏览器。


3:

测试支付需要:项目配置文件里要有mpappid(不是测试号id),mchid,mchkey,以及异步通知方法的路径。

微信点餐支付调试;因为我们是和师兄借的账号,所以,支付这一块,前后端是连接不起来的,因为sell.com也就是前端界面需要在微信端打开,需要在手机微信上访问sell.com,因为你后台项目测试支付的时候你配置文件里写的appid是师兄的公众号的appid,而非自己申请的测试公众号(测试号没有支付权限),在授权那一步的时候,在公众号设置里面有个网页授权域名(这里填写的地址就是自己后台项目地址,也就是设置白名单),然而在你测试支付的时候并不是用自己的测试公众号的,所以你之前测试授权的那个白名单在这里是无效的。



所以测试支付只能在PayServiceImplTest里面单元测试create方法(只针对向师兄借用账号的同学而言),然后在微信客户端打开链接格式为:

http://proxy.springboot.cn/pay?openid={自己和师兄借用账号时得到的openid}&orderId={在create方法中写的openid}&returnUrl={随便填写一个自己喜欢的网页,http://....}


链接格式例子:http://proxy.springboot.cn/pay?openid=oTgZpwS9525zDjfgJ4HXBIVOZ0BE&orderId=124579766323651583&returnUrl=http://www.baidu.com

打开自己相应的链接之后会弹出一个微信支付的窗口,支付完成之后,微信客户端会接收到一个微信支付凭证通知http://proxy.springboot.cn/pay?openid=oTgZpwS95v0zDjfgJ4HXBIVOZ0BE&orderId=1554179766323651583&returnUrl=http://www.baidu.com。


4:微信支付调试报商户订单号重复

这个原因是指,你这个订单的订单id已经被微信那边记住了,所以,你再次用这个订单id来做支付测试就会出问题,解决的办法是修改测试的订单id。还有测试的订单id,必须要有订单详情才能够完成支付正常测试。


5:微信退款部分需要配置文件中有,h5.p12证书路径(保证是程序可以访问到的路径),然后在PayServiceImplTest里面单元测试refund方法,注意,退款的订单id,必须和成功支付的订单id保持一致。

成功退款之后微信客户端会接收一个退款到账通知。




6:扫码登录的开放平台

扫码登录配置文件里需要填上:openappid,opensecret.

首先要获得openappid这个公众号的相对应的openid,


二维码页面显示以及获取openid的链接格式

https://open.weixin.qq.com/connect/qrconnect?appid=wx6ad144e54af67d87&redirect_uri=http://sell.springboot.cn/sell/qr/{支付用的openid}&response_type=code&scope=snsapi_login&state={自己项目中的qrUserInfo方法路径}


链接格式示范:

https://open.weixin.qq.com/connect/qrconnect?appid=wx6ad144e54af67d87&redirect_uri=http://sell.springboot.cn/sell/qr/oTgZpwS954512ddgJ4HXBIVOZ0BE&response_type=code&scope=snsapi_login&state=http://dd.natapp1.cc/sell/wechat/qrUserInfo


扫码登录之后,跳转的网页报state not present 报state 参数不存在,因为上面这个地址成功跳转,可以获得code参数,但是qrUserInfo方法有两个参数,所以自己手动在地址栏后面加上state="http://www.baidu.com",加入这个参数之后再回车,这时就会成功跳转至百度页面,地址栏上面会有一个openid参数,记下,这是用做后台管理员登录用的openid.



7:授权

测试号配置后台白名单。


8:模板推送、授权使用自己的测试号

微信支付,退款用和师兄借用的账号

开放平台扫码登录,用师兄的openappid,openappsecret,


友情链接:

redirect_uri域名与后台配置不一致:访问https://www.imooc.com/article/70497

支付,借用师兄的账号:http://www.imooc.com/article/31607

开放平台手册:https://git.imooc.com/coding-117/coding-117/src/develop/doc/open.md

微信秘钥信息:https://git.imooc.com/coding-117/coding-117/src/develop/doc/%E5%BE%AE%E4%BF%A1%E5%AF%86%E9%92%A5%E4%BF%A1%E6%81%AF.md


点击查看更多内容
5人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
16
获赞与收藏
26

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消