一个打赏系统,被打赏者有openid和 ID(1-999999)用户点击付款后的notify中获取到out_trade_no,
我想把谁给谁打赏的信息写到数据库,那么openid(28位) + 随机4位 正好占满 32位的长度。但是随机4位串很容易造成订单号重复的情况,所以一般会用年月日+随几串,但是如果用ID的话,一旦ID发生改变,或者因为其他原因导致变动,会造成支付数据无法对应。
还有一个方式是生成支付信息的时候,把所有需要的信息insert到数据库,成功后来通知的时候再update这条记录,但是这又造成服务器资源的浪费。
还有一种办法,就是用ID(6) + 对方的openid.substring(0,14)+年月日(180910)+随机(6)
6+14+6+6=32 ,但是如果一天中支付信息多的话,仍然可能有重复现象。
请问各位高手一般怎么做?参与者本人愿小小打赏。:)
你以为微信为啥要你提供一个商户订单号呀?
openid 对应单个服务主体。or 你既然提到了是「打赏性质」就至少来说 不会产生过多的数据。支付宝的订单号也才40位?!?