贝宝快递结帐安全与静音阿贾克斯呼叫

PayPal的新结账让我感到不安全,用户无法在匿名方面触发虚假付款?

提供的代码看起来像这样

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'); 

在条纹,我必须传递一个令牌到后面,然后validation我的服务器端的令牌,如果一切正常继续logging销售。 但是在PayPal中,似乎这是我需要执行的唯一一项快速结帐function。 这更安全吗?

       

网上收集的解决方案 "贝宝快递结帐安全与静音阿贾克斯呼叫"

你是正确的,这是不安全的更新您的数据库。 这是一种安全的付款方式,但是,您无法与客户端validation付款是否成功,然后使用onAuthorize方法更新您的数据库。

要validation您的数据库的付款是否成功,您必须使用服务器端REST API 。 可悲的是,贝宝​​文档是非常缺乏,但是有更多的文档和更容易实施的SDK 。 ( 到节点SDK的快捷方式 )。

我build议您使用这些来实现对数据库的更新。 PayPal返回一个参数,告诉你付款是成功的。