1
mydns 2018-09-11 20:21:17 +08:00
最好查一下每个订单的状态是不是真的支付了 避免他人伪造数据 post 到你的接收地址
|
2
shoaly 2018-09-11 20:33:33 +08:00
不需要, 因为本身是有验签的, 注意核对金额就行了
|
3
hlwjia 2018-09-11 20:36:15 +08:00
微信生成的那个订单应该是不会超时的,你应该要主动去关闭他。
你应该有你系统内的一个 order id,不想影响效率,可以定期检查一个 order id 是否已经支付,支付了的话,就可以把其他的微信订单都关闭了。 |
4
p2pCoder 2018-09-11 20:49:05 +08:00 via Android
金融系统不要相信对接的系统是把幂等完全做好的
|
5
cpdyj0 2018-09-11 22:56:24 +08:00
和钱沾边的系统小心点不为过
|
6
qiayue 2018-09-11 23:08:08 +08:00
自己这边一定要有一个订单表,一个订单生成一条记录
拿微信支付举例 1、用户点击支付时,先判断是否已经调用 [统一下单] 接口生成了预支付标识( prepay_id ),未生成或者超过 2 小时则重新调用 [统一下单] 接口,已生成则下一步 2、传入 prepay_id 等信息,唤起支付 3、用户支付 4、用户支付完成,微信回调你的 [支付通知] 接口,把支付信息告诉你(包含了微信支付订单号 transaction_id 和你自己的订单号 out_trade_no ),你此时可以需要判断用户支付金额是否跟你自己的订单里保存的金额一致,如果一致则认为支付成功,才去进行下一步业务处理 第 4 步为了确保万无一失,也可以传 transaction_id 或 out_trade_no 调用 [查询订单] 接口判断该微信支付订单的状态。 |
7
passerbytiny 2018-09-12 09:15:04 +08:00
不需要。
回调是微信服务器调用你的服务器,只有在你的服务器不正常的时候,回调才会丢。 你必须完全信任微信回调的时候已经支付成功了。如果你不信任微信只会在支付成功后才发起回调,那么你的任何附加措施(本例即查询订单状态)也就都是不可信任的。 你在回调的时候查询订单状态以及商户余额,都没有意义。分布式异步情况下,很有可能:微信确认支付完成后,不等商户余额到账和订单状态改变,就立刻就发起回调,而此时你去查订单状态和商户余额,是查询不到任何东西的。 |
8
rogwan 2018-09-12 09:26:25 +08:00 via Android
你的服务器对回调请求不返回正常状态,回调会重复请求,除非你自己的服务器挂的太久了。
|