H5支付开发步骤:/wiki//api.php?=15-4

2024-04-05
来源:网络整理

H5支付开发步骤:

/wiki/doc/api/H5.php?=15_4

常见问题:

1 回调页面判断问题

一般情况下,正常的支付流程完成后,用户会返回到发起支付的页面,如下图。 我们在微信客户端支付成功后,系统会自动切换到浏览器的这个页面。

官方文档建议引导用户手动确认支付结果,也就是下图中的弹窗。 那么这个引导框应该什么时候弹出呢?

我做了测试,发现从微信支付完成到浏览器切换回预付费页面的过程中,并没有明确的事件可以用来定义切换回来。 我们在js中使用监听窗口的 、 、 属性或者 都或多或少存在兼容性问题。 我测试了几种效果,最终选择使用((){},2000)点击确认付款按钮后弹出引导框。 不过后来用浏览器测试的时候,发现从微信返回时页面会刷新清空,所以最终的结论是:最好的效果是使用跳转新页面(交互过程可以学习来自京东微信支付)。

2、商户参数格式不正确。

开发文档中的标记是目前H5支付功能为空。 什么时候会变空呢?

$[''] 完全来自浏览器。 并非所有用户代理(浏览器)都会设置此变量,有些可以手动修改。 因此,$[''] 并不总是正确的。

$[''] 将不起作用:

1.直接输入URL即可访问网页。

2. 打开网址。

3. 重定向 (.) URL。

4. 使用元重定向 URL。

5.使用PHP重定向URL。

6. 中的链接。

7.浏览器没有设置或已被用户修改。

所以一般来说,$['']只对通过超链接href和POST或GET形式访问的页面有效。

另一个需要注意的问题是在支付页面打开唤醒微信客户端链接,尽量避免中间不必要的跳转。 有些手机厂商自带的浏览器会有不同的判断。

您可以在这里学习官方演示

该演示将隐藏在链接中

3 网络环境安全验证失败,请稍后重试。

导致商户发出单笔转账的终端IP()与用户实际发起支付时微信侧检测到的终端IP不一致。

例如:(无代理)

我在局域网中开发,使用代理访问手机上的微信统一点餐接口。 此时后台php得到192.168.32.100,这是局域网IP。 但是,微信服务器验证我的IP时,却使用了我的外网IP。 与LAN IP相比,开发时需要先将其固定为公网IPv4地址,然后再接入统一订购接口。

这里需要强调一个特殊情况:

4G下使用QQ浏览器时,如果预付费接口与微信检测到的接口一致,微信客户端在验证授权时会拒绝该请求,需要按不一致处理。 我不知道为什么(谁知道请给我一些建议)

最后,如果你遇到实在解决不了的问题,可以厚颜无耻的给客服发邮件,回复还是蛮快的。

分享