Новая проверка paypal заставляет меня чувствовать себя неуверенно, не может ли пользователь инициировать фальшивый платеж на стороне чирок?paypal экспресс-контроль безопасности с частым звонком ajax
код при условии выглядеть как этот
paypal.Button.render({
env: 'sandbox',
client: {
sandbox: 'AapGZeCaaDK_q_KPeG19DHnD_kd18vr6BxNe4P6uuhfTKPjIedtNEI9plyDgmzfyI-xGhbxjpv0k-Ha9',
production: 'xxxxxxxxx' // u expose the key to client side? is this ok?
},
payment: function() {
var env = this.props.env;
var client = this.props.client;
return paypal.rest.payment.create(env, client, {
transactions: [{
amount: { total: ($scope.number_of_uses * 9) + '.00' , currency: 'USD' },
item_list: {
items: [{
"name": "example",
"quantity": $scope.number_of_uses,
"price": "9.00",
"currency": "USD"
}]
}
}],
redirect_urls: {
"return_url": $location.absUrl(),
"cancel_url": $location.absUrl()
}
});
},
onAuthorize: function(data, actions) {
return actions.payment.execute().then(function() {
actions.payment.get().then(function(data){
// here I will save data detail to db to record sales
// $http something something
});
});
}
}, '#paypal-button');
В полоске, я должен передать маркер на спину, а затем проверить, что маркер на моей стороне сервера, если все в порядке приступить к записи продаж. Но в paypal кажется, что это единственное, что мне нужно реализовать, чтобы иметь экспресс-чек. Это даже безопасно?
После того, как пользователь нажал кнопку, они будут перенаправлены в PayPal и должны предоставить данные кредитной карты или войти в свою учетную запись PayPal. * Key * сообщает только PayPal, клиенту которого он платит, а item_list сообщает PayPal, за что они платят. Здесь я не вижу никакой неуверенности. Все безопасные вещи происходят на стороне PayPal. – Molda
@Molda означает, что пользователь не может инициировать отправку запроса на мой db? вы видели комментарий, который я поставил, где моя забота? –
извините пропустил это. Это основной метод интеграции, и он не ожидает, что вы это сделаете. Предполагается, что вы получаете данные транзакций по разному каналу (только путем входа в свою учетную запись). Что вы можете сделать - это отправить идентификатор транзакции на ваш сервер и вытащить данные из PayPal через API отдыха. Вы также можете использовать расширенную интеграцию, которая создает платеж через ваш сервер, а не перенаправляет пользователя в PayPal для подтверждения платежа. Это гарантирует, что данные заказа находятся на вашем сервере до создания платежа в PayPal. – Molda