收藏
回答

云开发已实现支付功能,可是却被notify_url 困扰太久!!

框架类型 问题类型 终端类型 AppID 基础库版本
小程序 需求 客户端 wx553fbf4a5b9c4d73 2.2.5



先交待下背景:没有自己的服务器,我是个自学小程序没多久的小白!纯粹用 云开发 帮开店的姐姐做的小程序,已经上线一段时间了。


可是最近发生了一个bug,让我很是苦恼:


我在小程序的   发起微信支付接口   即  wx.requestPayment(Object object)

的success 中回调  订单信息上传、小票打印等  函数


而这个 success 回调吧,是在用户付款完成 点击下图中 完成 才会触发!!!


也就是说,如果用户付款完成后,直接不点击此[完成] 按钮,直接关闭小程序。

就不会执行 success 中回调的函数  !!

就是我收到了钱!!~~却不知道用户买了啥。。。。。




就这个问题,我的理解哈:


在付款前就应该上传订单订单信息,  此时订单状态为  待支付

然后支付成功后,利用微信支付  统一下单API  中预留的 notify_url (下图)


去更新我的订单状态,并且打印小票。


可是问题就在于,我没有自己的服务器!!没有可以通知的地址。


可是看文档的时候哈,看到了 云开发现在开放了 小程序外访问 HTTP API



于是我就按照文档说明  用 postman 去调用了下 某个云函数



发现一下就调成功了。于是我天真的想把这一大串写在  notify_url  

然后我留意到了下面这个要求~~oh~~no~~ 梦想破碎~~~



所以我是真的没辙了,所以各位看到此贴的大佬,就这个情况,就单纯使用云开发还有的解决吗???

恳求各路大佬的帮忙,不胜感激!

回答关注问题邀请回答
收藏

3 个回答

  • 大树¹³⁷ºººº⁵⁴⁸¹
    大树¹³⁷ºººº⁵⁴⁸¹
    2019-11-26

    你用的是哪个NPM包啊?求分享code

    2019-11-26
    有用
    回复
  • 老张
    老张
    2019-05-27

    有没有测试一下,在用户不点击“完成”的情况下,fail/complete里有返回吗?返回的结果与不支付的返回fail有什么不同?毕竟我们并不需要在success的具体返回消息,只需要知道是否success,是否不点击“完成”的fail,还是不支付的fail。

    2019-05-27
    有用
    回复 1
    • 阿姆斯壮
      阿姆斯壮
      2019-05-27

      客户端支付调起后:

      1.用户主动取消付款: 会触发 fail 和 complete 中的回调函数

      2.用户付款成功 但未点击[完成] :不会触发任何回调

      3.用户付款成功 点击[完成] 返回小程序 : 触发success 和 complete 回调

      哎,关键点就是 点击[完成] 后才会触发回调,坑就在这了。。


      2019-05-27
      回复
  • ㅤㅤㅤㅤㅤㅤㅤ听ㅤ          ㅤㅤ
    ㅤㅤㅤㅤㅤㅤㅤ听ㅤ ㅤㅤ
    2019-05-27

    https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_7&index=8


    支付完成后,微信会把相关支付结果及用户信息通过数据流的形式发送给商户,商户需要接收处理,并按文档规范返回应答。


    微信已经做了数据,你后台签名认证一下数据信息就可以了


    我也是小白,以前做过网页支付,我记得是这样。


    2019-05-27
    有用
    回复 5
    • 阿姆斯壮
      阿姆斯壮
      2019-05-27

      谢谢。可是我没有可以用来接收的  服务器。。。

      2019-05-27
      回复
    • ㅤㅤㅤㅤㅤㅤㅤ听ㅤ          ㅤㅤ
      ㅤㅤㅤㅤㅤㅤㅤ听ㅤ ㅤㅤ
      2019-05-27回复阿姆斯壮

      那你还是使用

      微信支付的查询订单接口

      来解决吧,毕竟未点完成直接关闭微信的用户也不少很多。


      2019-05-27
      1
      回复
    • 阿姆斯壮
      阿姆斯壮
      2019-05-27回复ㅤㅤㅤㅤㅤㅤㅤ听ㅤ ㅤㅤ

      感谢!好像行的通,我去试试~

      2019-05-27
      回复
    • 老张
      老张
      2019-05-27回复阿姆斯壮

      试试的结果如何?想知道。

      2019-05-27
      回复
    • 阿姆斯壮
      阿姆斯壮
      2019-05-27回复老张

      利用 订单查询接口 去做二次判定,方案行的通。 就是对于那些付款后,不点击完成直接关闭小程序的订单,由于没有服务器,需要人为介入,去核实付款状态,然后打印小票。

      2019-05-27
      回复
登录 后发表内容