Как разработать ручный интерфейс передвижения денег для моего сайта?
-
20-09-2019 - |
Вопрос
Я разработал веб -сайт. Пользователям необходимо предоплатить за его проекты/задачи. Теперь я хочу предоставить способ, которым пользователь может зарядить свой финансовый счет на моем веб -сайте. Предположим, что финансовый отчет моего веб -сайта - это учетная запись Moneybookers, и пользователь может отправить деньги на этот счет вручную, как я мог разработать интерфейс? Вы знаете, многие пользователи отправят деньги на публичный счет на веб -сайте, как я могу определить источник, откуда взялась сумма денег? Как я могу убедиться, что я не буду дважды добавить баланс его счета только для одного переноса денег? Если мой вопрос неясен, пожалуйста, не стесняйтесь просить разъяснения.
Предположим, у вас есть учетная запись на моем веб -сайте, это yourname@example.com. И когда вы создаете учетную запись, баланс составляет $ 0. Теперь вам нужно внести деньги на yourname@example.com. Вы можете сделать это вручную. Вы просто платите мне 200 долларов и заметите, что вы прислали мне 200 долларов, поэтому я обновлю ваш баланс до 200 долларов.
Я не использую их API. Если я использую их API, этот процесс выполняется автоматически с помощью компьютерной программы. Я имею в виду, я хочу сделать это вручную, вручную.
Решение
Я уверен, что какие -либо Moneybookers/PayPal/Neteller/любой API вы используете, это проблема для финансовое учреждение, не вы, если вы придерживаетесь использования их API и не пытаетесь повторно изобрести колесо.
Другие советы
Насколько я понимаю, у вас есть сайт, который принимает деньги, полученные через платежный шлюз. Ворота отправляет уведомление на указанный URL -адрес в конце транзакции с результатами транзакции. Затем вы берете эти результаты и обновляете свою систему новым балансом. Вы боитесь, что клиент может вручную назвать указанный URL -адрес, который дважды уведомляет вашу систему.
Если это так, вот мое предложение:
Ваш платежный шлюз уже должен остановить кого -то от URL -адресов уведомлений вручную, внедряя последовательные ключи, которые сделаны с использованием данных о транзакции, с которыми сталкиваются данные вашей учетной записи с ними, и закрытый ключ. Во -вторых, вы должны управлять своей базой данных, обновляя и сохраняя статус вашей собственной транзакции.
Например, у вас есть таблица транзакций с уникальным полем в качестве основного ключа, суммы, даты/времени, ключа Foriegn, связывающегося с таблицей пользователей и ключом Foriegn, связывающимся с таблицей состояния. Ваша таблица статуса будет включать в себя «Inprogress», «отменен» и «полная».
Как только вы отправите транзакцию в платежный шлюз, создайте транзакцию в вашей таблице 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