具体步骤:
首先通过微信支付的api 获得支付用的prepay_id,这里需要用到上面提到的“AppID(应用ID)”,“AppSecret(应用密钥)”,“微信支付分配的商户号”,“商户支付密钥”以及其他的一些参数(具体参照微信开发文档)用MD5加密成签名(第一次签名)获得prepay_id后,用prepay_id和一些其他参数(具体参照微信开发文档)用MD5加密成签名(第二次签名)然后在前端通过微信内置浏览器提供的js API,WeixinJSBridge.invoke来调用微信支付的弹出页面,这里需要用到上面的第二次的签名
注:支付链接和在开发平台配置的链接不匹配,总共需要2次签名,并且所需的参数是不同的,在JS中用到的签名是第二次签名,不要混淆参数传递的不能有错。
1、含义不同。
微信h5支付:是集成在微信客户端的支付功能,用户可以通过手机完成快速的支付流程。
jsapi支付:以绑定银行卡的快捷支付为基础的支付。
2、支付方式不同。
微信h5支付:h5支付是用在公众号内。
jsapi支付:jsapi支付是网页发起的微信支付请求。
3、功能不同。
微信h5支付:可以在手机网站内直接支付,为移动支付方式,简单快捷。
jsapi支付:仅可以在微信浏览器内发起支付,比如公众号内的网页和微信小程序,略微麻烦。
参考资料来源:微信支付-普通商户接入
1、请检查预支付会话标识prepay_id是否已失效,如果已经操作的订单,可能在微信有记录,最好换一条数据测试。2、请求的appid与下单接口的appid是否一致,appid 是H5所在公众号的appId,此处需要注意,后端调用微信返回的是appid,前台需要配置的参数是appId,注意大小写。
3、以下几点都注意核对以下,金额是“分”等等.
原因就是:授权目录配置的不对,请仔细核对,配置好后,一般5分钟内生效。