微信外部 H5完成微信支付

香菊网 发表于: 2019-06-28 分类: H5部分  软件soft  前端front  

H5支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前述页面确认使用微信支付时,商户发起本服务呼起微信客户端进行支付。主要用于触屏版的手机浏览器请求微信支付的场景。可以方便的从外部浏览器唤起微信支付。

 

微信支付的坑很多,特别在平台的设置上:

    首先需要APPID,微信支付商户号mch_id,API密钥key,Appsecret(secret),说明在这里

    申请入口:登录商户平台-->产品中心-->我的产品-->支付产品-->H5支付

    然后设置授权域名,在接口设置中就能找到,包括js接口安全域名和网页授权域名:

    网页授权回调域名,用于你支付完毕后回调的域名,将下载的文件放到服务器的根路径,确保可以访问,

    然后设置支付域名,设置路径:商户平台-->产品中心-->开发配置中设置域名,

 

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

 

H5支付满足条件:

    已有H5商城网站,

    已经过ICP备案。

    通过微信H5支付可以实现在非微信浏览器

 

外部微信支付的逻辑 最主要的是在后台

主要流程:

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

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

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

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

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

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

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

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

    9、最终将支付的结果返回给客户

前端主要问题是支付后是否返回原页面还是去往新页面

这取决于redirect_url , 不过 redirect_url 需要进行 urlencode 处理

// 则拼接后的地址为

MWEB_URL= https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx20161110163838f231619da20804912345&package=1037687096&redirect_url=https%3A%2F%2Fwww.wechatpay.com.cn

常见错误:

    1、网络环境未能通过安全验证,请稍后再试(IP改变导致的) 
    2、商家参数格式有误,请联系商家解决(H5支付的referer为空导致) 
    3、商家存在未配置的参数,请联系商家解决(H5支付的域名问题) 
    4、支付请求已失效,请重新发起支付(有效期为5分钟) 

    5、请在微信外打开订单,进行支付(H5支付不能直接在微信客户端内调起)

 

本文主要 前端 部分 如果需要查看 后端 代码 请  点击 :  全文  微信外浏览器支付实现 

标签: H5部分软件soft前端front
Copyright © 2019 幻雨焉缘博客 | 浙ICP备19001843号-1
----------------------------------
种一棵树,最好的培养时间是十年前,其次是现在 加油  (ง •_•)ง。        ──── 前端攻城狮