2023.6.23,支付宝异步回调本地测试,配置内网穿透ngrok

L05 Laravel 教程 - 电商实战 ( Laravel 8.x)

7.5. 支付宝服务端回调

这一章需要在虚拟机中测试支付宝异步回调,调用notify接口,由于支付宝不能直接访问到虚拟机的接口,所以需要使用内网穿透。

教程中使用的免费的内网穿透神器ngrok做反向代理,实现支付宝通知内网接口。如果按照原先的步骤,会出现这个界面,这是新版的ngrok对免费的调用进行了限制,如果你在本地访问,只要浏览器打开,点一下visit site的按钮就可以打开

2023-6可用方案,配置ngrok

由于接口请求是支付宝发起的,我们无法让支付宝“点一下visit site”,或者添加ngrok-skip-browser-warning请求头、加User-Agent,而为了开发调试也没必要花10美元升级账户权限。

一种办法是有公网服务器的,可以自己搭内网穿透的服务,这个网上有很多教程,就不细讲了,我这里说的是没有公网服务器的解决办法,减少学习成本。

经过一番尝试,我找到一个国内免费的内网穿透ngrok.cc

使用教程 www.ngrok.cc/_book/

这个是已经搭好的服务器,并且有免费的可以测试使用,只是会限网速,开发的话足够了。

注册之后需要实名认证2块钱,绑定公众号,然后购买一个免费服务器,最后开通隧道,配置自定义域名(可以买那种几块的便宜域名)

2023-6可用方案,配置ngrok

我起初尝试不用自定义域名,直接用送的这个前置域名,结果打开显示nginx 404 not found,经过各种搜索尝试后还是不行,比如server_name添加一个192.168.132.131:81,我在主机浏览器和虚拟机的浏览器都可以访问到,但是用穿透域名还是404,折腾了比较久,换了个思路,所以我又试了试自定义域名的方式

我到阿里云解析了一个二级域名用于测试,然后到nginx中,把这个二级域名添加进去server_name shop.test ngrok.aoding9.top;

这样再访问ngrok.aoding9.top时,就可以访问到虚拟机,同时nginx也正常了。

接下来又有问题,那就是cdn的图片加载失败,f12一看,是403了,需要给app.blade.php顶部添加<meta name="referrer" content="no-referrer" />,再刷新页面,图片也正常加载了

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!