mysql - 通过paypal支付用户佣金,更新网站数据库

标签 mysql paypal payment

我有一个网站,用户可以在该网站上为其他用户提供的服务付费,并在周末向用户支付其服务销售值(value)减去我们的佣金。

目前,当我们要向用户付款时,我们会进行手动付款,登录 paypal 并在付款后手动更新我们的数据库。我们遇到的问题是我们每周的交易量超过一千笔,因此手动操作非常麻烦。

我们想出了一个小系统,通过使用来自 paypal 的 Adaptive Payments API,我们只需单击一下即可执行付款和更新我们的数据库。

我的问题如下 - 我们担心会发生一些情况:

  1. 我们向用户付款,但我们的 SQL 数据库出现故障,因此我们不会更新我们的销售记录。因此,系统会在 cron 执行时再次向用户付款。

  2. 我们可以反其道而行之,首先更新我们的 SQL 数据库,如果成功,我们执行 paypal 付款。这样做的问题是,如果 PayPal 方面出现问题,我们最终根本不会向用户付款,因为我们的数据库已更新,就好像我们已经付款一样。

我们的解决方案:

  • 我们更新我们的数据库并跟踪所有更改的记录 -> 继续调用 PayPal API -> 如果 PayPal 调用失败,我们将更改恢复到更新的记录;如果调用成功,我们将保持原样。

  • 我们执行 PayPal 支付,并更新数据库。我们将来自 API 的 ACK 消息存储在数据库中,当我们检查我们的记录以支付用户时,我们验证 ACK 字段是否成功。

我们的解决方案让我们真的很疲倦,也许我们陷入了某种心态。我们担心的是,要么 SQL 失败,要么 PayPal api 调用无法通过。 有没有人对我们的支付系统有任何建议或完全不同的实现方式?

最佳答案

好吧,基本上这是一个交易系统。

看这里:http://dev.mysql.com/doc/refman/5.0/en/commit.html

  1. 开始交易
  2. 更新数据库中的用户条目
  3. 如果更新成功发送付款到paypal
  4. 如果成功则向数据库发送提交。

这将是最省钱的方法,如果提交失败,只需将该错误记录在与数据库无关的地方,然后手动处理(用户友好)

顺便提一下,首先更新用户数据以发送付款,然后在顺利运行后将付款发送到 paypal,这对您来说当然在财务上更安全。

如果您在付款出错后无法回滚用户数据,这不会对您造成损害,但用户肯定会告诉您他没有收到付款....

关于mysql - 通过paypal支付用户佣金,更新网站数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12218577/

相关文章:

mysql选择问题,多表

Paypal Express Checkout Recurring,如何避免ipn延迟?

iphone - 适用于 iOS 的 PayPal API - 允许吗?

php - in_array 找不到元素

php - 如果从数据库中的唯一 ID 查找详细信息,MySQL 语句会是什么?

MySQL:(产品)价格的首选列类型?

php - : fill form, 的流程进行 Paypal 付款,创建帐户

用于获取保存的成员(member)卡的 Android API

java - 付款方式:通过预付卡付款

javascript - 如何在网页上进行paypal嵌入式支付