微信H5支付 遇到坑的一些解决方法

解决办法php

1. 商家参数格式有误,请联系商家解决

a.对于先后端分离的开发模式 前端发起请求 服务端请求微信h5支付统一下单接口 返回参数mweb_url 给前端 而后前端调起微信h5支付

b.注意的是 微信商户平台 开发配置 H5支付受权域名是一级域名 例:一级域名 mark.com

c. 前端的二级域名:web.mark.com 确保前端调用mweb_url时的 前端url地址 和 H5支付受权域名是同一个域名地址下的

d. 哈哈哈 微信h5文档说的是缺乏referer 找了很久 这个家伙 原来是调起支付的二级域名错了 前端应该有个二级域名去调支付才行 后台是提供接口的 只有M层和C层 V层的家伙仍是要前端去搞吧

微信h5支付新版详细的介绍能够看: https://www.cnblogs.com/txw1958/p/wxpayv3_h5.html

扩展 refer的解释: https://www.sojson.com/blog/58.html


2.微信支付回调地址的控制器打印数据为空的话 就应该是打印数据的位置不对 通常应该在NotifyProcess这个方法里打印$data数据 这样就有数据了


3.微信支付返回

a.这个时候 打印下 mweb_url 看看是不 prepay_id 为空值

b. 而后咱们看微信H5支付文档 https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=9_20&index=1

c. 预支付交易会话标识 prepay_id 的解释:

微信生成的预支付回话标识,用于后续接口调用中使用,该值有效期为2小时,针对H5支付此参数无特殊用途html

d.解决办法

1.这个prepay_id 说的是第一次生成 而后两小时以内有效 能够在两个小时内生成 这个 prepay_id 两小时以后 这个订单号没法生成prepay_id的值 再调用 就会出现 支付失效请从新下单
2.操做场景通常是 用户调起微信支付 就已经生成一个prepay_id 可是没有支付的话 两个小时以后 这个订单号 就会失效
3.业务处理的话 建一个伪订单表 和 本身的真订单号的 id 绑定 若是连接的prepay_id为空的话 就给伪订单表里 加一条数据 而后经过伪订单号 进行调起订单 回调的时候 先判断有没有在伪订单表里 有的话 就去取真订单表的订单号 而后完成状态更改前端

相关文章
相关标签/搜索