一、H5支付类型
- 微信支付
- 支付宝支付
二、H5支付分以下几种情况
- 微信内部浏览器打开
- 非微信内部浏览器打开
- App 里内嵌 H5
三、支付文档
- 微信支付官方文档
- 支付宝支付官方文档
四、微信支付
- JSAPI支付,使用场景:微信内部浏览器 JSAPI 支付是用户 在微信中 打开商户的 H5 页面,商户在 H5 页面通过调用微信支付提供的 JSAPI 接口调起微信支付模块完成支付。
WeixinJSBridge.invoke(
'getBrandWCPayRequest',
{
"appId":"wx2421b1c4370ec43b", //公众号ID,由商户传入
"timeStamp":"1395712654", //时间戳,自1970年以来的秒数
"nonceStr":"e61463f8efa94090b1f366cccfbbb444", //随机串
"package":"prepay_id=u802345jgfjsdfgsdg888",
"signType":"MD5", //微信签名方式:
"paySign":"70EA570631E4BB79628FBCA90534C63FF7FADD89" //微信签名
},
function(res){
if(res.err_msg == "get_brand_wcpay_request:ok" ){
// 使用以上方式判断前端返回,微信团队郑重提示:
// res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
// 返回成功页面
} else {
// 支付失败
}
}
);
-
H5 支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前述页面确认使用微信支付时,商户发起本服务呼起微信客户端进行支付。主要用于在手机、ipad等移动设备中通过浏览器请求微信支付的场景。可以方便的从外部浏览器唤起微信支付。
-
注意事项:
(1)微信支付成功后,需要拿到订单支付状态,这个状态,微信那边是异步通知到商户的,所以前端页面上可能出现 支付成功,但订单状态仍是待支付 问题,需要前端主动查询订单状态,设置定时器测试 官方支付回调和查单实现指引;
(2)若支付过程中提示 当前页面的URL未注册, 请检查下单接口中使用的商户号是否在商户平台(pay.weixin.qq.com)配置了对应的支付目录(可能没有在微信支付商户平台配置支付,请前往配置,注意配置时的协议[http,https]与调用支付的协议是否一致);
五、支付宝支付
- 微信内置浏览器,引导页,引导用户在外部浏览器打开,页面重定向
1. 微信内置浏览器
微信内置浏览器只支持微信支付,如果想在微信内置浏览器进行支付宝支付,是不现实的,但是可以通过一个引导页,引导用户在外部浏览器打开该页面,在外部浏览器打开后,H5可以做两种方式(一种是在外部浏览器打开该页面后进行重定向,另一种是用户主动点击按钮实现重定向)以唤起支付宝APP进行支付。这里,唤起支付宝APP支付,可以不用支付宝开通商户号,支付宝提供了一个虚拟的商户号供没有商户号的使用(当然能开通商户号尽量开一个),使用如下:
alipays://platformapi/startapp?appId=20000067&url=' + decodeURIComponent(getQueryString('toUrl'))