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


    解决办法

    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支付此参数无特殊用途

    d.解决办法

    1.这个prepay_id 说的是第一次生成 然后两小时之内有效 可以在两个小时内生成 这个 prepay_id 两小时之后 这个订单号无法生成prepay_id的值 再调用 就会出现 支付失效请重新下单
    2.操作场景一般是 用户调起微信支付 就已经生成一个prepay_id 但是没有支付的话 两个小时之后 这个订单号 就会失效
    3.业务处理的话 建一个伪订单表 和 自己的真订单号的 id 绑定 如果链接的prepay_id为空的话 就给伪订单表里 加一条数据 然后通过伪订单号 进行调起订单 回调的时候 先判断有没有在伪订单表里 有的话 就去取真订单表的订单号 然后完成状态更改

  • 相关阅读:
    fiddler教程--拦截并篡改
    string
    希尔排序(缩小增量排序)
    k-选取问题
    完善版本散列表
    c++ BST继承自二叉树
    DEDECMS与DZ论坛如何整合,DEDE网站调用DZ内容
    DEDECMS如何实现定时发布文章
    DEDECMS如何设置图片上传加水印
    DEDE如何制作不同背景的列表
  • 原文地址:https://www.cnblogs.com/foreversun/p/9068050.html
Copyright © 2020-2023  润新知