SPA 中微信支付目录的设置

DEPERCATION WARNING

这篇文章提到的方法可能已经失效了,有关更多 SPA 中微信支付的讨论,请戳这里


首先要感谢下这篇文章,帮我解决了一个很大的疑问。不过该网站暂时503,只能贴个谷歌快照了

戳这里

背景如下:项目使用 AngularJS + UI-Router,未开启 HTML5Mode,静态文件全部直接走 nginx。 原先的微信支付目录设置为 example.com/static/dist/index.html#/。 因为微信的限制,支付目录只能识别到一级目录,所以之前版本中,支付页面的路径设置为了 example.com/static/dist/index.html#/pay/

然而这样的 URL 设计不太符合 RESTful 风格,在 UI-Router 中配置 URL 时也需要使用 ^ 保证是一级路径,一来看着不舒服,二来不够灵活。

所以 Google 了一番之后搜到了文章开头提到的那篇文章,虽然讲的是 backbone 相关的,但是其中提到如果使用静态文件所在路径作为支付目录结尾,并配置页面访问 URL 中带上 ?# 的话, 比如 example.com/static/dist/index.html?#/order/pay, 微信验证支付目录时,井号后面的内容就会被忽略掉。

这样一来支付页面的 URL 就可以随意配置了

最后再感谢一下那篇文章的作者。

以上。