dq13733519262 2016-05-06 16:11 采纳率: 0%
浏览 38
已采纳

永远不要重复整数PHP

I am integrating a third party web service which requires a unique integer for each call and once that integer is consumed, it does not accept that integer ever again. It will be a real-time integration, i-e there can be multiple calls to that web services from multiple users on the website this means that there can also be simultaneous calls if more than one user calls that web-service.

For now I tried PHP's uniqid() method to generate a unique id for each transaction but as it does not guarantee unique integers always.

Also I tried UNIX's Epoch seconds as required integer which works perfectly but I know it will not work with simultaneous calls.

I don't require random numbers, it can be anything which will never repeat. Please suggest possible solutions.

  • 写回答

4条回答 默认 最新

  • dongxing4805 2016-05-06 16:14
    关注

    Create a database table with an auto-incrementing primary key and use that number. Insert a row for each call to the 3rd party service.

    Update:

    Based on your comment in another answer I recommend using a queue so that failures may be re-tried:

    The call to Web-service deals with sending thousands of dollars. If a call will ever fail, that will be a very serious issue...

    Your queue can either be implemented in a simple database table and use the primary key as mentioned above, or you can use a full-blown queue service.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 目详情-五一模拟赛详情页
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line