昨天客户向我提到,微信支付在IOS上成功,但在Android上会报system:access_denied错误。 反复检查代码,没有问题。而且因为IOS上成功支付,让我百思不得其解,为什么Android上不成功。 后来看到一篇文章 http://www.okhjp.com/post/9/wechat-pay-system-access-denied/,反应的问题和我一样,但是没有提到解决方法。 各种调试、各种办法,没有解决。 Android总结如下情况: 从微信公众号界面,直接访问支付页面,成功支付。 从微信公众号界面,跳转到A域名页面,再跳转到B域名页面,再跳转到支付授权目录所在的C域名,不成功,报access_denied错误。 同样的情况,IOS正常。
access_denied错误,通常是微信发现来源请求不是支付授权目录造成的,因此问题应该就是来源目录请求的问题。而微信支付本身是JS方式的Ajax请求,因此它判断来路页面就是支付页面URL,而这个URL就应该是微信浏览器的URL。但是我在支付页面中通过JS调试alter(window.location.href)是正常的,真是晕了!
于是向各路大神求救,最终遇到MT同学,给了一个指点,先在此谢过! 因为之前我最后一步跳转是通过服务端redirect到支付页面,因此微信浏览器可能会无法获得跳转的页面(因为浏览器没有获得HTTP200返回,不知道页面已经跳转,因此URL还是保留老的【至于为什么JS能获得window.location.href是最新的URL,这个要问微信浏览器了!IOS应该是正常得到了!】),而此时向微信支付请求信息时,就会有上面的错误。 于是按照MT同学的建议,在最后一个页面跳转时采用页面层的JS跳转,跳转到支付页面。 改代码,放上去,而后测试,于是天终于晴了!
无奈是微信现在火,只能跟上,但对微信的技术支持实在是......!再次鄙夷微信技术支持,自己的亲身体验,支持服务实在太差,电话打不通,要不没人接,邮件没响应,总之真是不爽到了极点。

更多相关文章

  1. Android studio解决错误:SSL peer shut down incorrectly
  2. 启动错误:emulator-5554 disconnected
  3. Android 登陆、提交数据或者加载数据时提示页面
  4. 解决在sdk manager中更新文件后出现This Android SDK requires A
  5. html页面识别当前系统和语言
  6. 【错误记录】Android 内存泄漏 错误排查记录 ( FinalizerReferen
  7. Android Studio 快速定位错误行
  8. android常见错误之 No resource found that matches the given n
  9. Android listView典型错误分析(经验体会)

随机推荐

  1. Android(安卓)获取随机验证码功能示例
  2. Android(安卓)UI中间凸起的Tab(Raised Cen
  3. Unity3D-如何给AndroidMainifest.xml增加
  4. Android设置变量值之——与或非(&、|、~)
  5. OpenFrameworks + kinect + Android
  6. Android中dp与px互转的方法
  7. android SecurityException:android.permi
  8. How to get interesting data from Conte
  9. android dalvik VM's thread state .
  10. android之让EditText不弹出软键盘