Как разработать ручной интерфейс перевода денег для моего сайта? - PullRequest
1 голос
/ 14 января 2010

Я разработал веб-сайт. Пользователи должны предоплатить за свои проекты / задачи. Теперь я хочу предоставить способ, с помощью которого пользователь может пополнить свой финансовый счет на моем веб-сайте. Предположим, что финансовая учетная запись моего сайта является учетной записью Moneybookers, и пользователь может отправить деньги на эту учетную запись вручную, как я могу разработать интерфейс? Вы знаете, многие пользователи будут отправлять деньги на общедоступную учетную запись веб-сайта, как я могу определить источник, откуда поступает определенная сумма? Как я могу убедиться, что не добавлю остаток на его счету дважды только для одного денежного перевода? Если мой вопрос неясен, пожалуйста, не стесняйтесь обращаться за разъяснениями.

Предположим, у вас есть учетная запись на моем веб-сайте, это ваше имя@example.com. А когда вы создаете учетную запись, баланс составляет $ 0. Теперь вам нужно внести деньги на yourname@example.com. Вы можете сделать это вручную. Вы просто платите мне 200 долларов и замечаете, что отправили мне 200 долларов, и я обновлю ваш баланс до 200 долларов.

Я не использую их API. Если я использую их API, этот процесс выполняется автоматически компьютерной программой. Я хочу сделать это вручную, вручную.

Ответы [ 2 ]

4 голосов
/ 14 января 2010

Я уверен, что независимо от того, какие Moneybookers / PayPal / Neteller / какой бы API вы ни использовали, это проблема для финансового учреждения , а не для вас, если вы придерживаетесь их API и не попробуй заново изобрести колесо.

0 голосов
/ 14 января 2010

Насколько я понимаю, у вас есть сайт, который принимает деньги, обработанные через платежный шлюз. Шлюз отправляет уведомление по указанному URL в конце транзакции с результатами транзакции. Затем вы берете эти результаты и обновляете свою систему с новым балансом. Вы опасаетесь, что клиент может вручную вызвать указанный URL-адрес, который дважды уведомляет вашу систему.

Если это так, вот мое предложение:

Ваш платежный шлюз уже должен помешать кому-либо вручную вызывать URL-адреса уведомлений путем имплементации постоянных ключей, которые создаются с использованием данных транзакции, данных вашей учетной записи и закрытого ключа. Во-вторых, вы должны управлять своей базой данных, обновляя и сохраняя свои собственные статусы транзакций.

Например, у вас есть таблица транзакций с полем uniqueid в качестве первичного ключа, суммы, даты / времени, внешнего ключа, связанного с таблицей пользователей, и внешнего ключа, связанного с таблицей состояния. Ваша таблица состояния будет состоять из «inProgress», «Cancelled» и «Complete».

Как только вы отправите транзакцию через платежный шлюз, создайте транзакцию в таблице 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

...