V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lelouchyang
V2EX  ›  PHP

微信支付出现问题 急急

  •  
  •   lelouchyang · 2017-10-23 16:18:04 +08:00 · 3990 次点击
    这是一个创建于 2588 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司线上的商城 半个月 4000 笔订单 有接近 50 笔 客户付款了但是未显示付款成功 微信商户号确实有钱进去。回调业务逻辑很简单啊。

    20 条回复    2017-10-25 16:11:22 +08:00
    lelouchyang
        1
    lelouchyang  
    OP
       2017-10-23 16:18:43 +08:00
    虽然写 cron 可以把所有未支付订单 手动改了 但是 这不是解决问题方案啊
    cloudzhou
        2
    cloudzhou  
       2017-10-23 16:21:33 +08:00
    调用微信同步接口,确认订单是否支付,更改状态
    Light3
        3
    Light3  
       2017-10-23 16:21:41 +08:00
    = = 你没有日志嘛 就是走接口的时候 把参数记录一下 写个日志 方便排查 具体原因..
    如果没有 现在写 然后自己搞个测试商品 试试不就完了吗
    lelouchyang
        4
    lelouchyang  
    OP
       2017-10-23 16:23:27 +08:00
    @cloudzhou 不是同步不同步的问题是 问题可以各种姿势解决 但是 不走回调 确实很蛋疼
    lelouchyang
        5
    lelouchyang  
    OP
       2017-10-23 16:24:25 +08:00
    @Light3 测试了 n 次 都暴力测试过 回调都没问题。但是线下 1000 人同时付款 就出现这种问题 服务器是 16 核 32g 内存 带宽 50m
    shmilyin
        6
    shmilyin  
       2017-10-23 16:25:04 +08:00
    不走回调肯定是你这边的问题,写日志 调试回调的逻辑
    lelouchyang
        7
    lelouchyang  
    OP
       2017-10-23 16:25:45 +08:00
    目前使用微信的查询接口 解决了这个 bug 但是 以前用的飞起的微信回调 notify 怎么会出现这种问题。
    lelouchyang
        8
    lelouchyang  
    OP
       2017-10-23 16:26:26 +08:00
    @shmilyin 不是不走回调。是 100 笔订单有一笔不走回调 ,我自己测试的时候 连续下了 20 笔订单 都能回调成功
    m2276699
        9
    m2276699  
       2017-10-23 16:27:05 +08:00
    回调接口压测还原问题
    lelouchyang
        10
    lelouchyang  
    OP
       2017-10-23 16:27:57 +08:00
    @m2276699 服务器很给力啊。。。
    ma125125t
        11
    ma125125t  
       2017-10-23 16:31:36 +08:00
    微信有主动查询接口啊。
    flyingfz
        12
    flyingfz  
       2017-10-23 16:32:58 +08:00
    在 获取预支付 id 时, notifyUrl 的值 , 类似: https://some_domain/pay_notify/your_order_id
    然后你的这个 回调接口 , 被微信调用时, 会有日志(nginx 等), 根据这个日志, 看看 回调请求, 是否真的到了你的服务器.
    lelouchyang
        13
    lelouchyang  
    OP
       2017-10-23 16:33:21 +08:00
    @ma125125t 我知道啊 但是为什么 异步回调 会 1%概率失败呢
    lizon
        14
    lizon  
       2017-10-23 16:34:09 +08:00
    线上日志,回调的时候打印订单号
    你先把问题定位,到底是回调的问题还是你本身业务系统的问题
    m2276699
        15
    m2276699  
       2017-10-23 16:42:55 +08:00
    @lelouchyang 压测不限于检测服务器性能,并发问题、数据库是不是有问题,好多可能啊。我相信微信是会把请求发出去的,甚至发了多次,那么问题就是你的代码没有处理甚至没有进入你的代码。所以我觉得压测可以还原一下问题
    2ME
        16
    2ME  
       2017-10-23 16:59:59 +08:00
    应该是你回调的方法里和 redis 或者数据库交互有问题吧 比如事务并发过多丢失修改之类的?

    以上是不负责任的猜测 .. 回调方法里写日志看看吧
    6IbA2bj5ip3tK49j
        17
    6IbA2bj5ip3tK49j  
       2017-10-23 17:15:22 +08:00
    微信支付验收案例里就有『支付成功,但没有回调』,
    所以说没有收到回调在开发的时候就应该考虑进去。
    lukunlin
        18
    lukunlin  
       2017-10-23 20:24:53 +08:00
    回调处理再做看看吧~
    webfrogs
        19
    webfrogs  
       2017-10-24 11:18:56 +08:00
    不能完全信任回调。主动查询状态作为兜底方案是肯定要有的,尤其是做支付功能,更应该谨慎。
    lelouchyang
        20
    lelouchyang  
    OP
       2017-10-25 16:11:22 +08:00
    各位老哥 问题找到了 我之前的订单生产逻辑是 年月日加上用户 id 加上随机数 正好几个人的随机数加上用户 id 而且还是统一时间注册的。。导致重复了订单。丢人了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2712 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 03:42 · PVG 11:42 · LAX 19:42 · JFK 22:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.