Safari iframe方式无法呼起微信app之问题探索

摘要

微信h5支付测试时,发现使用Safari iframe的方式无法呼起微信app进行支付。本文首先讲述了微信支付的流程、随后进行了两个测试与网上的搜索等进行了一系列的探索,得到了可以证实的结论。

零、背景

微信h5支付流程如下图所示:
1、用户在商户侧完成下单,使用微信支付进行支付;
2、由商户后台向微信支付发起下单请求(调用统一下单接口);
3、统一下单接口返回支付相关参数给商户后台,包括:支付跳转url(参数名“mweb_url”);
4. 商户重定向到mweb_url,调起微信支付中间页,客户进行支付,点击支付完成回调到商户的买单页 or 商户指定的redirect_url,至此,客户端流程结束。
5. 其他流程,在此不解释。普通商户微信h5支付官方地址
【过程4解析】:当用户重定向到mweb_url后,微信会返回一个呼起微信app的scheme串,形如如下代码描述:

mweb_url串 : https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx06203454877852b3d995061c1369865961&package=2470898687
scheme串:weixin://wap/pay?prepayid%3Dwx06203454877852b3d995061c1369865961&package=2470898687&noncestr=1533558901&sign=06c9a12b39e341a2dfe9d68e470edbfa

交互的网络请求
微信h5支付(普通商户)流程

一、前序

在做微信的h5支付时,发现在Safari中使用iframe无法呼起微信客户端的问题。
现象A: h5支付,不使用iframe,直接redirect到预下单返回的mweb_url,火狐、chrome、Safari均可以呼起微信支付。
现象B: h5支付,使用iframe,将返回的mweb_url设置到iframe中的src,火狐、chrome均可以呼起微信支付,唯独Safari中无法呼起(ios的其他浏览器也做过尝试,是可以呼起的)。

现象A前端代码:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>spy test h5 pay</title> 
</head>
<body>

<h1>h5 pay test</h1>
<p>测试商品 0.01元</p>
<form id=
  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信是一款非常流行的社交媒体应用程序,它为用户提供了各种功能,包括聊天、发表动态以及分享照片和文件等。 然而,有时候当我们想要在微信中下载文件时,可能会遇到一些问题,例如文件过大或者不支持的文件格式。在这种情况下,我们可以尝试使用Safari浏览器来下载文件。 Safari是苹果公司开发的一款浏览器,适用于iOS设备。它提供了丰富的功能和安全的浏览体验。如果微信无法下载文件,我们可以通过以下步骤在Safari中完成下载: 1. 打开微信并找到需要下载的文件。长按该文件,选择“复制链接”。 2. 切换到Safari浏览器,在地址栏中粘贴刚才复制的链接,并按下回车键。 3. Safari浏览器将打开链接并显示文件的预览页面。在该页面中,可以找到一个“下载”按钮或类似按钮。点击该按钮以开始下载文件。 4. 下载完成后,文件将保存到Safari浏览器的默认下载文件夹中。我们可以在Safari中的“下载”选项卡中找到和管理所有已下载的文件。 需要注意的是,某些文件可能需要特定的应用程序来打开,例如PDF文件需要PDF阅读器或者Office文件需要相关的文档编辑器。如果我们的设备没有安装相应的应用程序,可能需要先安装相应的应用程序,然后再进行文件下载和查看。 这就是当微信无法下载文件时,我们可以尝试使用Safari浏览器来完成下载的步骤。希望这对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值