Как я могу подтвердить платеж PayPal перед выполнением каких-либо действий в ASP. NET Core + Angular + простая интеграция с PayPal?
Моя цель - добавить способ оплаты в свое приложение. В моем приложении есть виртуальная валюта, которую пользователь может приобрести за реальные деньги. Так, например, я продаю 100 виртуальных валют за 10 долларов США. Теперь я хочу, чтобы пользователь заплатил 10 долларов США, а затем добавил соответствующее количество виртуальной валюты для пользователя в мою базу данных.
Я нашел самый простой способ добавить PayPal. Здесь это:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1"> <!-- Ensures optimal rendering on mobile devices. -->
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <!-- Optimal Internet Explorer compatibility -->
</head>
<body>
<script src="https://www.paypal.com/sdk/js?client-id=YOUR_SB_CLIENT_ID"> // Replace YOUR_SB_CLIENT_ID with your sandbox client ID
</script>
<div id="paypal-button-container"></div>
<!-- Add the checkout buttons, set up the order and approve the order -->
<script>
paypal.Buttons({
createOrder: function(data, actions) {
return actions.order.create({
purchase_units: [{
amount: {
value: '0.01'
}
}]
});
},
onApprove: function(data, actions) {
return actions.order.capture().then(function(details) {
alert('Transaction completed by ' + details.payer.name.given_name);
});
}
}).render('#paypal-button-container'); // Display payment options on your web page
</script>
</body>
</html>
Как мы видим, существует только один метод, который создает платеж и запускает его на стороне PayPal (поправьте меня, пожалуйста, если я ошибаюсь) имя метода createOrder
. Теперь, когда заказ выполнен, я могу запустить свой собственный код в функции onApprove
.
Итак, я полагаю, PayPal ожидает, что я добавлю свою виртуальную валюту в учетную запись пользователя (в базу данных) методом onApprove
. Т.е. PayPal ожидает, что я вызову конечную точку моей серверной части, которая добавит валюту, во внешнем методе onApprove
. Но я не понимаю, как я могу проверить на своем сервере, что пользователь просто не вызвал конечную точку из инструментов разработчика или аналогичного места и фактически совершил покупку.
Должен ли я обязательно создать настраиваемую форму с настраиваемый внутренний код, который будет работать с SDK PayPal, если я хочу запретить пользователю звонить на мою конечную точку без фактической покупки валюты?