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

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

Предположим, у вас есть аккаунт на моем сайте, это [email protected]. И когда вы создаете учетную запись, баланс составляет 0 долларов США. Теперь вам нужно внести деньги на адрес [email protected]. Вы можете сделать это вручную. Вы просто платите мне 200 долларов и замечаете, что отправили мне 200 долларов, поэтому я обновлю ваш баланс до 200 долларов.

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


person Community    schedule 14.01.2010    source источник


Ответы (2)


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

person Community    schedule 14.01.2010

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

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

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

Например, у вас есть таблица транзакций с полем 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

person Community    schedule 14.01.2010