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');
のようなコード提供外観は、私はすべてがOKの売上を記録するために進んでいれば、私のサーバ側でそのトークンを検証し、背面にトークンを渡す必要があります。しかし、Paypalでは、これがエクスプレスチェックアウトを行うために実装する必要がある唯一のものだと思われます。これは安全ですか?
ユーザーがボタンを押すと、ユーザーはPayPalにリダイレクトされ、クレジットカードの詳細またはPayPalアカウントにログインする必要があります。 *キー*は、顧客が支払っているものをPayPalに伝え、item_listはPayPalに支払っているものを通知します。ここには何の不安も見られない。すべての安全なものはPayPal側で起こっています。 – Molda
@Moldaは、ユーザが私のdbへの投稿要求をトリガできないことを意味しますか?私の心配がどこにあるのかコメントを見ましたか? –
ごめんなさい。これは基本的な統合方法であり、これを行うことを期待していません。それはあなたがあなたのサーバーにトランザクションIDを送信し、残りのAPIを介してPayPalからデータをプルすることができます(あなたのアカウントにログインするだけで)異なるチャネルを介してトランザクションデータを取得することを前提としています。また、高度な統合を使用してサーバーを介して支払いを行い、支払いを確認するためにユーザーをPayPalにリダイレクトすることもできます。これにより、PayPalで支払いを行う前に注文データがサーバーに確実に保存されます。 – Molda