微信支付现在的应用场景以及越来越多了,微信的支付有公众号支付、H5支付,扫码支付等

今天要说的是其中的h5支付(原生浏览器及app)的支付方式。大致说一下流程和采过的坑。

H5支付主要是在微信外部,浏览器及其他APP所采用的一种方式;

首先需要在微信注册账号,申请改功能;申请入口:登录商户平台-->产品中心-->我的产品-->支付产品-->H5支付

支付流程

流程解析(摘自微信开发文档):

1、用户在商户侧完成下单,使用微信支付进行支付

2、由商户后台向微信支付发起下单请求(调用统一下单接口)注:交易类型trade_type=MWEB

3、统一下单接口返回支付相关参数给商户后台,如支付跳转url(参数名“mweb_url”),商户通过mweb_url调起微信支付中间页

4、中间页进行H5权限的校验,安全性检查(此处常见错误请见下文)

5、如支付成功,商户后台会接收到微信侧的异步通知

6、用户在微信支付收银台完成支付或取消支付,返回商户页面(默认为返回支付发起页面)

7、商户在展示页面,引导用户主动发起支付结果的查询

8,9、商户后台判断是否接到收微信侧的支付结果通知,如没有,后台调用我们的订单查询接口确认订单状态

10、展示最终的订单支付结果给用户

主要意思就是:在下单的时候向后台发起请求,后台通过拿到的参数请求微信后台去生成一个订单,并返给你一个路径mweb_url,这个路径就是用来调起微信应用发起支付操作的。而我们拿到这个路径就可以跳转唤起微信支付了。

一定要注意的是

H5是获取不了微信的支付结果的,所以最好有一个中间页,或者蒙层来向后台查询这个支付的结果,否则,有时,你的用户手速太快,支付成功后返回回来,而你去请求查询支付结果,还没有处理到结果,返回未支付状态的时候,你的用户会懵逼,你的boss会打死你(别问了,问就是泪),所以 这个回调查询支付不能是自动查询,可以是过渡页,或者loading页,(最好是5s)

回调页面

正常流程用户支付完成后会返回至发起支付的页面,如需返回至指定页面,则可以在MWEB_URL后拼接上redirect_url参数,来指定回调页面。

如,您希望用户支付完成后跳转至https://www.alaal(拼接参数之类的),则可以做如下处理:

假设您通过统一下单接口获到的 MWEB_URL= https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx20161110163838f231619da20804912345&package=1037687096

则拼接后的地址为 MWEB_URL= https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx20161110163838f231619da20804912345&package=1037687096&redirect_url=https://www.alaal

需要注意的是

1.需对redirect_url进行urlencode处理(必须的)

2.由于设置redirect_url后,回跳指定页面的操作可能发生在:

(1)微信支付中间页调起微信收银台后超过5秒

(2)用户点击“取消支付“或支付完成后点“完成”按钮。

因此无法保证页面回跳时,支付流程已结束,所以商户设置的redirect_url地址不能自动执行查单操作,应让用户去点击按钮触发查单操作。(你的用户不会打死你的最好操作)回跳页面展示效果可参考下图

3.请确保实际支付时的请求目录与后台配置的目录一致,否则将无法成功唤起微信支付。

支付查询

H5支付在微信是用不了的,在微信内部可以参看 JSAPI支付;

微信官方体验链接:https://wxpay.wxutil.com/mch/pay/h5.v2.php,请在微信外浏览器打开。

如果此页面需要在微信内部进行支付,可以参见下一章H5微信内部支付

php微信支付 mweb,前端H5调用微信支付相关推荐

  1. vue支付宝html,vue 解决在微信内置浏览器中调用支付宝支付的情况

    我的思路大概是这样的 1. 验证是否是在微信内置浏览器中调用支付宝 2.给支付页面的url加上调用接口所需的参数(因为在微信里是不能直接调用支付宝的需要调用外部浏览器) 3.在外部浏览器中完成支付跳转 ...

  2. h5调用微信sdk步骤

    h5调用微信sdk步骤 步骤一:绑定域名 先登录微信公众平台进入"公众号设置"的"功能设置"里填写"JS接口安全域名". 备注:登录后可在& ...

  3. vue如何通过NodeJs本地获取微信access_token及签名,并调用微信接口

    一直都想搞一下微信公众号网页开发,公司忙没有时间自己也没开发过所以也没有头绪,前两天通过自己的摸索以及自行查找的资料,终于通过nodejs在本地成功的获取到了微信的access_token及签名,以及 ...

  4. 微信H5调用支付宝支付详细(一)!!!

    微信公众号H5页面使用支付包手机网站支付!!! 这两天根据公司的需求写了一个从微信公众号的H5(公众号中的网站)页面跳转支付宝支付,大家应该都知道微信和支付宝这两家 谁也不让这谁.想在微信中用支付宝那 ...

  5. iOS H5 调用微信、支付宝支付无法返回app 解决方案

    最新项目中遇到H5页面中调用微信.支付宝客户端支付的需求,虽然这并不是推荐的做法,但是需求确实存在...加载h5页面点击支付调起需要支付的客户端(微信或者支付宝). 微信支付解决方案: 1.首先要设置 ...

  6. android kotlin webview内H5调用微信支付问题

    问题 商家参数格式有误,请联系商家解决 微信文档描述 https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_4 解决方法 文档说明白了,要在 ...

  7. uniapp——开发微信H5调用jweixin微信js-sdk(uniapp开发H5使用微信扫一扫功能)

    小伙伴们,大家有没有开发过网页或者H5等等web页面时候遇到需要调用微信的jweixin.js的呢? 小编在开发过程中遇到了一个问题,因为我的项目是微信小程序内链的H5页面,所以当时我就使用uniap ...

  8. h5 微信支付 php,用h5做出微信的支付过程的实现步骤

    这次给大家实现的案例是用户在微信里打开网页的时候,也可以调用微信支付来完成下单功能.当然,微信官网的,开发文档也有很详细的介绍,但是今天我们来教大家怎样手动做出支付接口的开发. 以提交问题流程为例描述 ...

  9. 前端H5实现微信授权

    背景: 前段时间做了一个H5项目,H5项目需要放在微信公众号里面,并且需要通过微信授权拿到openId,所以就需要实现h5授权微信这个功能了. 原理: 其实原理就是前端在本项目首页去请求微信端提供的一 ...

  10. android微信条码支付接口,Android中调用微信支付接口

    在我的项目中还没有接入这个功能的时候就听说微信支付的接口很坑爹,用完之后发现别人说的一点也没有错,蛋疼归蛋疼,该用还是要用.在这里把遇到的问题记录一下以免以后需要再次接入的话碰到问题浪费时间. 微信支 ...

最新文章

  1. linux 定时任务crond
  2. oracle列名无效字符,案例学习Oracle错误:ORA-00904 invalid column name
  3. 安卓安装完应用后,如何获取包的meta-inf目录下的文件?
  4. 在.NET开发面向Oracle数据库的应用程序
  5. 【机器学习】 LightGBM——优于XGBoost提升的集成算法(安装+对比XGBoost改进+参数说明+python代码实例)
  6. 博士读了12年,一篇文章没有
  7. ElasticSearch实践(三)Rest API简介
  8. 关于java网络编程的实例代码
  9. Command对象应用--增加问卷调查
  10. ios的延迟执行方法
  11. 节点类型与功能_WKD3874多功能振动测试系统
  12. Java示例:如何执行进程并读取输出
  13. Qt qss问题总结
  14. 你会如何选型电容?关于电容的ESR?如何理解电容的阻抗-频率曲线?
  15. WORD/OFFICE排版时插入脚注和分栏冲突的解决方法
  16. win10网络适配器不见了_win10网络适配器消失不见的解决方法
  17. 人工智能-语音交互-NLP自然语言(三) 语法-敲黑板
  18. 人工智能 漆桂林_2020年CCF专委活动计划(预通过)
  19. python爬虫项目-优美图库
  20. 10个实用技巧让你的 Vue 代码更优雅

热门文章

  1. html表单填写保存在哪里,网页表单保存在什么位置
  2. 将多个Excel工作簿合并到一个Excel工作簿中
  3. 关于excel表格直接引用和间接引用
  4. Java——自定义图片和居中
  5. python在excel中插入折线图_Python-使用XlsxWriter模块在Excel工作表中绘制折线图
  6. 这是一篇关于如何成为一名AI算法工程师的长文
  7. eterm单人订座流程
  8. win10 wifi图标不见了 修复办法
  9. python3爬取斗鱼主播信息
  10. windows照片查看器无法显示此图片问题