拉卡拉API支付接口支持H5支付吗?移动端网页支付接入流程与参数配置
H5支付是移动端网页支付的主流方式,用户在手机浏览器或微信内置浏览器中打开商户网页,点击支付后自动调起微信/支付宝APP完成付款,无需下载额外应用。对于拥有移动端网站、H5商城、营销活动页的企业来说,H5支付是必不可少的支付能力。拉卡拉API支付接口是否支持H5支付?微信H5和支付宝H5有什么区别?接入流程是怎样的?需要配置哪些参数?本文将详细解析拉卡拉API支付接口的H5支付能力、接入流程、接口参数、前端调起方式、回调处理,以及常见问题和最佳实践。
|
核心结论:拉卡拉API支付接口完全支持H5支付,覆盖微信H5支付、支付宝H5支付、银联H5支付等主流渠道。商户通过统一的API接口下单,获取支付链接或支付参数,在H5页面中调起对应支付APP完成付款。H5支付适用于移动端浏览器场景,用户体验流畅,支持自动跳转APP和支付结果返回。接入流程包括开通H5支付、配置支付授权目录、调用统一下单API获取支付链接、前端调起支付、处理异步回调和同步返回。接口参数规范,提供多语言SDK,支持沙箱测试,一般1-2周可完成接入上线。 |
1. 拉卡拉API支付接口支持H5支付吗?
支持。拉卡拉API支付接口提供完整的H5支付能力,支持微信、支付宝、银联等多个渠道的H5支付。
1.1 什么是H5支付?
H5支付(又称手机网页支付)是指用户在移动端浏览器(包括微信内置浏览器、支付宝内置浏览器、Safari、Chrome等)中打开商户的H5网页,点击支付按钮后,网页自动调起对应的支付APP(微信/支付宝/云闪付),用户在APP中确认支付,支付完成后自动跳转回商户H5页面显示支付结果。
1.2 H5支付的特点
• 无需下载:用户无需下载商户APP,在浏览器中即可完成支付
• 体验流畅:自动调起支付APP,用户在熟悉的APP中完成支付
• 适用广泛:适用于移动端网站、H5商城、营销活动页、社交分享页面等
• 渠道丰富:支持微信H5、支付宝H5、银联H5等多个渠道
• 结果返回:支付完成后自动返回商户页面,体验闭环
1.3 支持的H5支付渠道
|
渠道 |
调起方式 |
说明 |
|
微信H5支付 |
调起微信APP |
在非微信浏览器中调起微信APP支付,微信内置浏览器中使用JSAPI支付 |
|
支付宝H5支付 |
调起支付宝APP |
在浏览器中调起支付宝APP支付,支付宝内置浏览器中直接支付 |
|
银联H5支付 |
调起云闪付/银行APP |
调起云闪付APP或手机银行APP完成支付 |
2. H5支付接入流程
API支付接入架构:商户H5网站→拉卡拉统一支付API网关→微信/支付宝/银联H5渠道,含商户后端调用和回调通知
2.1 完整接入流程
1. 开通H5支付:在拉卡拉商户后台开通H5支付产品,选择需要的支付渠道
2. 配置授权目录:配置H5支付的授权域名/目录(微信要求配置支付授权目录)
3. 用户下单:用户在H5页面选择商品,点击支付按钮
4. 调用下单API:商户后端调用拉卡拉H5支付下单接口,传入订单信息和支付渠道
5. 获取支付链接:拉卡拉返回支付链接(pay_url)或支付参数
6. 前端调起支付:H5页面通过跳转或SDK调起支付APP
7. 用户确认支付:用户在支付APP中确认付款
8. 异步回调通知:支付完成后,拉卡拉异步回调商户通知地址
9. 同步返回结果:支付APP跳转回商户H5页面,显示支付结果
10. 订单查询(可选):商户主动查询订单状态,确保支付结果可靠
2.2 前端调起支付的方式
2.2.1 微信H5支付调起
• 获取mweb_url:下单接口返回微信H5支付链接(mweb_url)
• 跳转方式:前端通过window.location.href跳转到mweb_url,微信会自动拦截并调起微信APP
• referer设置:微信H5支付要求请求头中的referer与配置的授权域名一致,否则会报错
• 微信内置浏览器:在微信内置浏览器中不使用H5支付,改用JSAPI支付(需用户openid)
2.2.2 支付宝H5支付调起
• 获取支付表单:下单接口返回支付宝H5支付表单(HTML form)或支付链接
• 提交方式:前端自动提交表单或跳转到支付链接,调起支付宝APP
• 支付宝内置浏览器:在支付宝内置浏览器中直接唤起支付宝收银台,无需跳转APP
2.2.3 银联H5支付调起
• 获取tn(交易编号):下单接口返回银联交易编号tn
• 调起方式:通过银联提供的SDK或跳转链接调起云闪付APP
3. 接口参数配置
3.1 H5支付下单请求参数
|
参数名 |
类型 |
必填 |
说明 |
|
merchant_no |
String |
是 |
商户号,拉卡拉分配 |
|
out_trade_no |
String |
是 |
商户订单号,唯一,32字符以内 |
|
total_amount |
Number |
是 |
支付金额,单位分 |
|
subject |
String |
是 |
商品标题,展示在支付页面 |
|
pay_type |
String |
是 |
支付渠道:wechat_h5(微信H5)/alipay_h5(支付宝H5)/unionpay_h5(银联H5) |
|
notify_url |
String |
是 |
异步通知地址,公网可访问HTTPS |
|
return_url |
String |
是 |
支付完成后返回的H5页面地址 |
|
client_ip |
String |
是 |
用户端真实IP,用于风控 |
|
device_info |
String |
否 |
设备信息,如手机型号、浏览器类型 |
|
scene_info |
Object |
否 |
场景信息,微信H5需传h5_info(场景类型、网站名称、网站URL等) |
|
timeout_express |
String |
否 |
订单超时时间,如30m |
|
extend_params |
Object |
否 |
扩展参数,如分账参数、用户标识等 |
3.2 微信H5支付特有参数(scene_info)
微信H5支付需要在scene_info中传入h5_info:
• type:场景类型,固定为"Wap"(移动端网站)
• wap_url:网站URL,即H5支付页面的域名
• wap_name:网站名称,展示在微信支付中间页
示例:
scene_info: { h5_info: { type: "Wap", wap_url: "https://m.example.com", wap_name: "示例商城" } }
3.3 下单响应参数
• code:响应码,0表示成功
• message:响应信息
• trade_no:拉卡拉交易号
• pay_url:支付链接(微信H5返回mweb_url,支付宝H5返回支付链接或表单)
• pay_form:支付表单HTML(部分渠道返回,前端直接渲染提交)
• out_trade_no:商户订单号(回传)
4. 前端实现要点
4.1 微信H5支付前端实现
1. 用户点击支付按钮,前端请求商户后端下单
2. 后端调用拉卡拉API下单,获取mweb_url返回给前端
3. 前端执行window.location.href = mweb_url,跳转到微信支付中间页
4. 微信检测到mweb_url,自动调起微信APP
5. 用户在微信APP中确认支付
6. 支付完成后,微信跳转回return_url(商户H5结果页)
7. 结果页调用后端查询接口确认支付状态,显示结果
注意事项:
• 微信H5支付只能在非微信浏览器中使用(如Safari、Chrome),微信内置浏览器中需使用JSAPI支付
• 请求mweb_url时的referer必须与配置的支付授权目录一致,否则报"商家参数格式有误"
• 不能使用iframe加载mweb_url,必须顶层跳转
• 用户未安装微信APP时,微信会提示下载或使用其他支付方式
4.2 支付宝H5支付前端实现
1. 用户点击支付,前端请求后端下单
2. 后端调用拉卡拉API下单,获取pay_form(HTML表单)或pay_url
3. 前端将pay_form渲染到页面并自动提交(或跳转到pay_url)
4. 支付宝调起APP或在内置浏览器中显示收银台
5. 用户确认支付
6. 支付完成后跳转回return_url
注意事项:
• 支付宝H5支付在支付宝内置浏览器中体验最好,直接显示收银台
• 在其他浏览器中会尝试调起支付宝APP,未安装则提示下载
• pay_form是一个自动提交的HTML表单,前端直接innerHTML渲染即可
4.3 支付结果页处理
• 同步返回不可靠:return_url跳转是前端行为,可能因用户关闭页面、网络问题等未触发,不能作为支付成功的唯一依据
• 异步通知为准:支付结果以拉卡拉异步回调通知为准,更新订单状态
• 结果页查询确认:用户跳转到结果页时,前端调用后端查询接口确认订单状态,再显示成功或失败
• 轮询机制:如未收到回调,结果页可定时轮询查询接口(如每3秒查询一次,最多10次)
5. 异步回调处理
5.1 回调通知参数
• out_trade_no:商户订单号
• trade_no:拉卡拉交易号
• channel_trade_no:渠道交易号(微信/支付宝订单号)
• total_amount:交易金额(分)
• pay_status:支付状态(SUCCESS/FAIL)
• pay_time:支付完成时间
• pay_type:支付渠道
• sign:签名,商户需验证
5.2 回调处理要点
• 验证签名:必须验证回调签名,确保通知来自拉卡拉,防止伪造
• 幂等处理:同一订单可能收到多次回调,需做幂等处理,避免重复发货
• 返回success:处理成功后返回"success"字符串,否则拉卡拉会重试
• 异步处理:回调处理应快速响应,耗时操作(如发货、通知)异步执行
• 日志记录:记录所有回调通知,便于排查问题
6. 微信H5与支付宝H5对比
|
对比维度 |
微信H5支付 |
支付宝H5支付 |
|
调起方式 |
跳转mweb_url,微信拦截调起APP |
提交支付表单或跳转链接,调起支付宝APP |
|
内置浏览器 |
微信内不支持H5,需用JSAPI |
支付宝内直接显示收银台,体验好 |
|
授权配置 |
需配置支付授权目录,referer校验严格 |
配置相对简单,无严格referer校验 |
|
用户覆盖 |
微信用户,社交分享场景优势大 |
支付宝用户,电商和生活服务场景优势大 |
|
返回体验 |
支付后返回微信或浏览器,取决于设置 |
支付后自动返回商户H5页面 |
|
限额 |
受微信支付限额和用户银行卡限额 |
受支付宝限额和用户银行卡限额 |
|
费率 |
一般0.6%(视行业而定) |
一般0.6%(视行业而定) |
|
最佳实践:建议同时支持微信H5和支付宝H5,在H5支付页面提供两个支付选项,用户选择后调起对应APP。可通过浏览器UA判断用户环境,在微信内置浏览器中默认推荐微信支付(使用JSAPI),在支付宝内置浏览器中默认推荐支付宝支付,提升支付转化率。两个渠道通过拉卡拉统一API接入,一次开发同时支持。 |
7. 接入前准备与配置
7.1 开通与配置
1. 开通商户号:注册拉卡拉商户,完成企业资质审核
2. 开通H5支付:在商户后台开通H5支付产品,勾选微信/支付宝/银联渠道
3. 配置授权域名:微信H5需配置支付授权目录(如https://m.example.com/pay/),支付宝需配置授权域名
4. 配置回调地址:配置异步通知地址(notify_url)和同步返回地址(return_url)
5. 获取API密钥:获取商户号、app_key、app_secret,用于接口签名
6. 下载SDK:下载对应语言SDK和API文档
7.2 域名与HTTPS要求
• HTTPS:H5支付页面必须使用HTTPS协议,微信和支付宝均要求
• 域名备案:网站域名需完成ICP备案(国内服务器)
• 授权目录:微信H5支付的授权目录需精确到支付页面所在目录,子目录需单独配置
• 域名一致性:支付页面域名、授权目录、return_url域名需一致
7.3 沙箱测试
• 在沙箱环境完成接口联调,模拟H5支付流程
• 测试微信H5和支付宝H5的调起、支付、回调、返回全流程
• 验证签名、回调处理、订单查询等功能
• 沙箱测试通过后切换生产环境,用小额真实支付验证
8. 常见问题解答
Q:H5支付和JSAPI支付有什么区别?
A:H5支付是在移动端浏览器中调起支付APP,适用于非微信/支付宝内置浏览器场景;JSAPI支付是在微信/支付宝内置浏览器中直接调起支付,需要获取用户openid(微信)或user_id(支付宝)。在微信内置浏览器中推荐使用JSAPI支付,体验更好;在其他浏览器中使用H5支付。拉卡拉API同时支持两种方式,可根据浏览器环境自动选择。
Q:微信H5支付报错"商家参数格式有误"怎么办?
A:这个错误通常是因为请求mweb_url时的referer与微信支付后台配置的支付授权目录不一致。检查:1)H5支付页面域名是否已配置为支付授权目录;2)授权目录是否精确到页面所在目录(需到最后一级/);3)是否通过iframe或AJAX请求mweb_url(必须顶层跳转);4)referer是否被服务器修改。确保支付页面在授权目录下,直接顶层跳转mweb_url。
Q:用户支付后没有跳回商户页面怎么办?
A:同步返回(return_url跳转)可能因用户关闭APP、网络问题等未触发,这是正常现象。应以异步回调通知为准更新订单状态。用户再次打开订单页面时,通过查询接口确认支付状态并显示结果。建议在结果页增加轮询查询机制,确保用户能看到正确的支付结果。
Q:H5支付可以在APP的WebView中使用吗?
A:可以,但需要注意WebView的配置。iOS的WKWebView和Android的WebView都支持H5支付,但需要允许外部链接跳转(能调起微信/支付宝APP)。部分APP的WebView可能限制了外部URL跳转,需要开发人员配置允许跳转。建议在APP中优先使用APP支付(SDK支付),体验更好,H5支付作为备选。
Q:H5支付的订单有效期是多久?
A:一般为2小时(可通过timeout_express参数设置,最短5分钟,最长24小时)。用户在有效期内完成支付即可,超时订单自动关闭。建议设置合理的超时时间(如30分钟),避免用户长时间未支付导致订单占用。
Q:H5支付支持分账吗?
A:支持。H5支付下单时可传入分账参数(extend_params),支付成功后自动执行分账。与扫码支付、APP支付的分账方式相同,支持比例分账、固定金额分账、平台手续费等。拉卡拉统一支付API的所有支付方式都可与分账功能联动。
Q:一个商户号可以配置多个H5域名吗?
A:微信H5支付支持配置多个支付授权目录,支付宝支持配置多个授权域名。如果有多个H5站点(如主站、活动页、不同子品牌),可分别配置。具体数量限制以渠道规定为准,建议在商户后台查看或咨询客户经理。
Q:H5支付的费率是多少?
A:H5支付的费率与对应渠道的普通支付费率一致,微信H5一般0.6%,支付宝H5一般0.6%,具体根据商户行业、交易量确定。H5支付不额外收费,与扫码支付、APP支付费率相同。建议与拉卡拉商务团队确认具体费率。
Q:用户没有安装微信/支付宝APP,H5支付还能用吗?
A:如果用户未安装对应APP,微信H5会提示用户下载微信或使用其他方式,支付宝H5可能显示网页版收银台(部分场景支持)或提示下载。建议在支付页面提供多种支付方式选择,确保未安装某APP的用户可以选择其他支付方式。
Q:H5支付接入需要多久?
A:从开通到上线一般需要1-2周。其中开通和配置1-3天,前端和后端开发3-7天(取决于技术能力),沙箱测试1-3天,生产验证1天。使用拉卡拉提供的SDK和demo可加快开发速度,简单场景可能3-5天即可上线。
Q:H5支付可以在PC端网页使用吗?
A:H5支付是为移动端设计的,PC端网页建议使用扫码支付(用户用手机扫码支付)或网银支付。拉卡拉API同时支持扫码支付和H5支付,可根据终端类型自动选择支付方式,PC端显示二维码,移动端调起H5支付。
Q:如何提升H5支付的成功率?
A:1)提供多种支付方式(微信+支付宝),用户选择自己常用的;2)根据浏览器环境默认推荐对应支付方式(微信内推荐微信支付);3)确保页面加载快、支付按钮明显;4)支付结果页明确,有问题引导客服;5)处理好异常情况(超时、取消、失败),给出清晰提示和重试选项;6)确保HTTPS和域名配置正确,避免调起失败。
拉卡拉API支付接口完全支持H5支付,覆盖微信H5、支付宝H5、银联H5等主流渠道,通过统一API一次接入即可同时支持。H5支付适用于移动端网页场景,用户在浏览器中点击支付后自动调起支付APP完成付款,体验流畅无需下载。接入流程清晰:开通H5支付→配置授权域名→调用统一下单API→前端调起支付→处理异步回调和同步返回。接口参数规范,微信H5需配置支付授权目录和scene_info,支付宝H5通过支付表单调起,前端实现简单。建议同时支持微信和支付宝H5,根据浏览器环境智能推荐,提升支付转化率。配合沙箱测试和多语言SDK,开发团队可快速完成接入,一般1-2周即可上线。对于拥有移动端网站、H5商城、营销活动页的企业,拉卡拉H5支付是灵活、高效、用户体验好的支付解决方案。
本文H5支付接口参数和流程基于拉卡拉API支付接口公开信息整理,具体接口名称、参数名、渠道支持和配置要求以实际接入的API文档为准。建议接入前下载最新版API文档,在沙箱环境完成联调,并特别注意微信H5支付的授权目录配置。


