所以我注意到在检查付款状态时
GET /v1/payments/payment/<Payment-Id>
Run Code Online (Sandbox Code Playgroud)
即使在PayPal用户购买该商品后,PayPal 响应的"状态"也不会从"已创建"更改.直到我执行付款,状态才会变为"已批准".
这使得很难区分实际已被客户批准的付款与仍在进行中的付款之间的差异,因为它们都处于"已创建"状态.json响应的唯一区别是,一旦付款实际获得批准,它似乎包含shipping_address.我不确定这是表示差异的标准方法.
在使用上述REST API调用时,判断客户端是否实际批准了PayPal事务的标准方法是什么?
注意:我已经设置并运行了PHP回调脚本.我正在开发一个故障安全系统,它不断检查数据库条目,以确保执行批准的付款(如果系统出现故障).
我以为我可以使用我设置的IPN回调脚本,CLASSIC API但似乎REST API并且CLASSIC API不兼容,因为IPN回调不包含事务ID或任何必要的有用信息.
似乎在使用REST API时,如果您错过了对您的Web服务器的重定向调用,那么该事务将永远丢失.
我在C/linux中有一个套接字服务器.每次我创建一个新套接字时,都会为其分配一个文件描述符.我想将这些FD用作每个客户端的唯一ID.如果保证它们总是按递增顺序分配(我正在运行的Ubuntu就是这种情况)那么我可以将它们用作数组索引.
所以问题是:从linux套接字分配的文件描述符是否始终保持递增顺序?
我在 C/Linux 中有一个使用 TCP 套接字的聊天服务器。使用 libev 时,我能够为套接字创建一次读取事件的 ev_io 观察器。就像是:
ev_io* new_watcher = (ev_io*)malloc(sizeof(ev_io));
//initialize the watcher
ev_init(new_watcher, read_cb);
//set the fd and event to fire on write
ev_io_set(new_watcher, watcher->fd, EV_READ);
//start watching
ev_io_start(loop, new_watcher);
Run Code Online (Sandbox Code Playgroud)
这工作正常,因为 read 事件只会在有数据要读取时触发。但是,我必须以不同的方式对待写入事件,因为即使我没有要写入的数据,它们也会不断触发。为了解决这个问题,我让我的 read_callback 为写数据创建一个 ev_io 观察者,只有当有数据准备好被写入时,然后 write_callback 将在发送它的消息后删除观察者。
这意味着每次我需要处理消息时,我都在分配、初始化、设置、监视、取消监视和释放写入监视程序。我担心我可能会错误地和低效地处理这个问题。
在 libev 中处理 write_callback 事件的最佳方法是什么?
提前致谢。
在我的程序中,我有一个包含许多继承类的Base类.我需要存储这些继承对象(或任何容器)的列表.我能想到的唯一方法是使用一个类型枚举的Base类列表,然后向下转换为继承类型.
不得不经常施放我的物体似乎只是试图将我的物体放在某个容器中.
还有其他选择吗?铸造没有看起来那么糟糕吗?
谢谢您的帮助!
我正在为我的数据库中的用户实现朋友列表,其中列表将存储朋友accountID.
我已经在我的数据库中有类似的结构,我有一个单独的表,其中有一对accountID到achievementID,但我对这种方法的关注是效率低,因为如果有100万用户,每个有100个成就,那么此表中有1亿条记录.然后尝试为具有特定accountID的用户获得每项成就将是对该表的线性扫描(我认为).
我正在考虑为我的朋友列表提供逗号分隔的accountID字符串,我意识到将数据作为字符串处理会有多烦人,但至少可以保证用户的log(n)搜索时间使用accountID作为主键,第二列作为列表字符串.
我对这两种不同结构的搜索时间有误吗?