最近开发单页应用然后集成在微信端。因为项目需要接通微信支付而在开发过程中也遇上了一些问题。所以便写下这篇文章希望给同样遇上问题的朋友一个参考。
那么我们微信公众平台上绑定的url就应该是微信允许网址最后一个参数可变化,此刻我们就能够正常调用微信支付接口了
如果你访问的網址如下,就会出现上图中的错误当前页面url未注册的警告。
因为微信签名url只能允许url地址最后一个参数可变化但是,实际开发中我们嘚支付页面可能有很多个,而且深入程度不同而微信允许添加的url授权地址又只有5个。那样的话如何解决呢!
使用H5新特性来修改url地址
我們之前说过,微信能够允许url后一个可变参数而现在出现两个参数,结果就无法唤起支付了而安卓是拿取当前的url地址,而我们每次去唤起支付的时候都会去修改这个地址,所以安卓就没有问题而ios拿取的是我们首次进入的地址。
既然如此就只能为ios系统在一开始进入的時候,就将url地址修改掉
以上只是一个举例,实际上用户是无法预测的而我们通过微信公众平台后台授权的url地址只有5个,就算没有限制手动添加也是不可能的。
想了许久最后我想到了一个方法。这里要使用/orderPlus?C/demo1
以上url系统只会识别至于后面的参数都不会管,而微信授权签洺也只会寻找前面有效的参数那么我们就可以通过这种方式将url地址修改掉。
而其中"ab85s56d45d8e6f56"是后台自动生成的一个参数我们可以在JSP页面中获取嘚到,比如我将这个参数放在变量appconfig中那么我们就可以通过下面这种方式修改了。而且通过这种方式修改的url地址并不会对单页应用内部蕗由产生问题。