1

我开发了一个网站。用户需要为他的项目/任务预付费用。现在我想提供一种用户可以在我的网站上为他的财务账户充值的方法。假设我网站的财务账户是moneybookers账户,用户可以手动向该账户汇款,我该如何开发接口?要知道,很多用户都会向网站的公众号汇款,我如何确定一笔钱的来源?我如何确保我不会只为一次汇款而两次添加他的帐户余额?如果我的问题不清楚,请随时要求澄清。

假设您在我的网站上有一个帐户,它是 yourname@example.com。当您创建帐户时,余额为 0 美元。现在您需要将钱存入 yourname@example.com。您可以手动完成。您只需付给我 200 美元,并注意到您已寄给我 200 美元,因此我会将您的余额更新为 200 美元。

我不使用他们的 API。如果我使用他们的 API,这个过程是由计算机程序自动完成的。我的意思是我想手动完成。

4

2 回答 2

4

我敢肯定,无论您使用什么 Moneybookers/paypal/neteller/什么 API ,只要您坚持使用他们的 API 并且不要尝试重新发明轮子,这对金融机构来说都是一个问题,而不是您。

于 2010-01-14T08:29:29.463 回答
0

据我了解,您有一个接受通过支付网关处理的资金的网站。网关在交易结束时向指定的 url 发送通知,其中包含交易结果。然后,您获取这些结果并使用新的天平更新您的系统。您担心的是客户端可以手动调用指定的 url,通知您的系统两次。

如果是这种情况,这是我的建议:

您的支付网关应该已经通过使用您的帐户详细信息和私钥的交易数据生成的一致密钥来阻止某人手动调用通知 URL。其次,您应该通过更新和存储您自己的事务状态来管理您的数据库。

例如,您有一个 transactions 表,其中 uniqueid 字段作为主键、金额、日期/时间、链接到用户表的外键和链接到状态表的外键。您的状态表将包括“进行中”、“已取消”和“完成”。

将交易发送到支付网关后,立即在 Transactionns 表中创建状态为“inProgress”的交易。当您收到通知返回以更新您的系统时,请运行以下逻辑:

if(returnedStatus == "Completed" && status = "inProgress")
(
  status = "Completed";
  //update balance
)
elseif(returnedStatus == "Cancelled" && status != "Completed")) 
{
  status = "Cancelled";
  //display cancelled message
}

如果交易仍在进行中,这将更新账户余额,如果交易已经完成,则不会更新账户,如果由于某种原因被取消,则对账户余额不做任何事情。

PS:看看作为网关的monsterpay www.monsterpay.com

于 2010-01-14T08:41:16.583 回答