一、美团h5订单是什么意思
美团h5订单的意思是:用除了微信支付宝银行卡以外的支付方式支付的订单。H5支付是指商户在移动端网页用第三方支付方式。H5支付也叫WAP支付,或网页支付。
二、开发微信h5支付需要验证域名,域名怎么申请域名具体是什么
域名,就是一个网站的链接
申请,有阿里云,腾讯服务器,等。。
钱不多,稍微麻烦点,备案域名,你要购买一个域名,几十块钱;接着你备案好后在区H5那里绑定一下就可以了
三、微信H5支付流程
1、用户在商户侧完成下单,使用微信支付进行支付
2、由商户后台向微信支付发起下单请求( 调用统一下单接口 )注:交易类型trade_type=MWEB
3、统一下单接口返回支付相关参数给商户后台,如支付跳转url(参数名“mweb_url”),商户通过mweb_url调起微信支付中间页
4、中间页进行H5权限的校验,安全性检查(此处常见错误请见下文)
5、如支付成功,商户后台会接收到微信侧的异步通知
6、用户在微信支付收银台完成支付或取消支付,返回商户页面(默认为返回支付发起页面)
7、商户在展示页面,引导用户主动发起支付结果的查询
8,9、商户后台判断是否接收到微信侧的支付结果通知,如没有,后台调用我们的 订单查询接口 确认订单状态(查单实现可参考: 支付回调和查单实现指引 )
10、展示最终的订单支付结果给用户
常见问题
一、回调页面
正常流程用户支付完成后会返回至发起支付的页面,如需返回至指定页面,则可以在MWEB_URL后拼接上redirect_url参数,来指定回调页面。
如,您希望用户支付完成后跳转至 ,则可以做如下处理:
假设您通过统一下单接口获到的MWEB_URL= ;package=1037687096
则拼接后的地址为MWEB_URL= ;package=1037687096&redirect_url=https%3A%2F%2F
注意:
1.需对redirect_url进行urlencode处理
2.由于设置redirect_url后,回跳指定页面的操作可能发生在:
a、微信支付中间页调起微信收银台后超过5秒
b、用户点击“取消支付”或支付完成后点击“完成”按钮。因此无法保证页面回跳时,支付流程已结束,所以商户设置的redirect_url地址不能自动执行查单操作,应让用户去点击按钮触发查单操作。回跳页面展示效果可参考下图
二、其它常见错误
| 网络环境未能通过安全验证,请稍后再试 | 1. 商户侧统一下单传的终端IP(spbill_create_ip)与用户实际调起支付时微信侧检测到的终端IP不一致导致的,这个问题一般是商户在统一下单时没有传递正确的终端IP到spbill_create_ip导致,详细可参见 客户端ip获取指引
2. 统一下单与调起支付时的网络有变动,如统一下单时是WIFI网络,下单成功后切换成4G网络再调起支付,这样可能会引发我们的正常拦截,请保持网络环境一致的情况下重新发起支付流程
|
| 2 |
| 商家参数格式有误,请联系商家解决 |
1. 当前调起H5支付的referer为空导致,一般是因为直接访问页面调起H5支付,请按正常流程进行页面跳转后发起支付,或自行抓包确认referer值是否为空
2. 如果是APP里调起H5支付,需要在webview中手动设置referer,如(
Map
extraHeaders.put("Referer", "商户申请H5时提交的授权域名");//例如 )
|
| 3 |
| 商家存在未配置的参数,请联系商家解决 | 1,当前调起H5支付的域名(微信侧从referer中获取)与申请H5支付时提交的授权域名不一致,如需添加或修改授权域名,请登录商户号对应的【商户平台->产品中心->开发配置】自行配置
2,如果设置了回跳地址redirect_url,请确认设置的回跳地址的域名与申请H5支付时提交的授权域名是否一致 |
| 4 |
| 支付请求已失效,请重新发起支付 | 统一下单返回的MWEB_URL生成后,有效期为5分钟,如超时请重新生成MWEB_URL后再发起支付 |
| 5 |
| 请在微信外打开订单,进行支付 | H5支付不能直接在微信客户端内调起,请在外部浏览器调起 |
| 6 |
| IOS:签名验证失败
安卓:系统繁忙,请稍后再试 | 1,请确认同一个MWEB_URL只被一个微信号调起,如果不同微信号调起请重新下单生成新的MWEB_URL
2,如MWEB_URL有添加redirect_url,请确认参数拼接格式是否有误,是否有对redirect_url的值做urlencode,可对比以下例子格式:
;package=1037687096&redirect_url=https%3A%2F%2F |
|
|
| 7 |
| 由于商家传入的H5交易参数有误,该笔交易暂时无法完成,请联系商家解决 | 统一下单中 spbill_create_ip 字段必须为客户端IP地址 |
三、QA
Q1:
1、传递redirect_url safari浏览器时支付完成后会新开一个页面;
2、还有就是有些ios手机使用其他浏览器支付完成后默认会回到safari浏览器。
A1:
1、目前逻辑就是这样设计的,防止商户无限循环调用微信客户端
2、对的,返回需要浏览器的schema信息,部分浏览器隐藏了这个信息,在无法拿到schema信息的情况下,就会回到safari浏览器
四、app中使用h5支付
因为苹果爸爸的各种封锁与限制,导致 app 中如果集成支付sdk上架会变得十分困难,总之是想办法去抽成。为了应对这种流氓政策,各小 app 公司纷纷偷梁换柱,通过 h5 支付从而绕开 sdk 支付。
常规的什么申请秘钥,配置回调地址等操作全部忽略了,直接进入核心步骤
支付宝的 h5 支付,返回一个 http 链接,是可以直接在 webview 中使用的,url 会重定向最终指向到支付宝的专属协议上。这里建议直接在 app 上直接通过 new webview 方式实现。
通过微信 h5 支付也是可以生成支付链接的,如果我们直接使用这个 url 的话,一定会抛一个错误“商家参数格式有误,请联系商家解决”, 微信支付的错误解决方案 中已经给出了原因,微信在这里校验了 http 请求中的 referer ,我们直接打开 url 请求头中是没有 referer 字段的,最容易想到的是通过 html 中的 a 标签跳转页面,a 标签会默认携带当前页面的主机地址。
所以就写了一个简单的中转页面,逻辑很简单,在中转链接中添加一个 pay_url 字段,pay_url 就是微信 h5 支付生成的链接,需要进行 encode 编码一下,我们可以在 js 里面重新解码,设置 a 标签的 href 熟悉,执行点击进行跳转。
找个服务器或者 oss 将页面放过去,配置一个域名,因为微信的 h5 支付是绑定了一个主域名,二级域名其实都是可以使用,假如最终配置为 pay.abc.com ,那么我们最终的跳转链接为 。
不管是微信支付还是支付宝支付,其实想从浏览器唤醒支付 app,都是通过特有 schema 唤醒的,支付宝的协议是 alipay://,微信的协议是 weixin://,其实和 http 协议一样,例如: ,浏览器会捕获 http 协议,支付宝和微信都会捕获属于自己的协议,这一点不管在 android 还是 ios 上,也正是利用了这一点,才使我们 app 中唤醒支付宝或者微信成为可能。当然后面很可能也被限制,在将来相当长的一段时间是不会的,正是这些协议使得 h5 和 app 进行交互才使得如今移动操作系统更加繁荣。
五、微信H5支付,提示商家存在未配置的参数,请联系商家解决。这是H5支付域名填写的不对??
后台域名配置的问题。我也碰到过,我添加的是一级域名,用的是二级域名,添加二级域名后解决了,
六、微信h5支付接口如何开通?
H5支付需要到商户号平台申请。
1、登录商户平台,产品中心>支付产品>H5支付,提交资料后申请审核通过大概需要2-3天左右。
2、产品中心>开发配置中,设置H5支付域名,必须是手机站的独立域名。
3、审核通过后获取:公众号APPID、微信支付商户号、API、公钥和私钥,将这些信息添加到小程序后台中。
4、测试H5支付。

