2017-05-31 8 views
1

https://developer.paypal.com/demo/checkout/#/pattern/clientPaypalクライアント側REST:サーバーに通知する方法は?ペイパルクライアント側の残りの部分と

方法など、PayPalのユーザーが支払ったサーバーに通知しないので、私はいくつかの後処理を行うことができ、データベースへの書き込み..私が添付できるウェブフックはありますか?

+0

あなたが使用することができます** io.emit ** ** ** socket.onイベントを処理するために作成したソケットのために、あなたのコントローラで発光ごコール。 – user100693

+0

@ user100693何?? –

+0

ソケットイベントを使用できます。 https://www.html5rocks.com/jp/tutorials/frameworks/angular-websockets/ – user100693

答えて

0

彼らは、サーバー側およびその逆の統合へのハイブリッド、クライアント側をサポート判明:あなたは、クライアント側での支払いを作成することができるものとhttps://github.com/paypal/paypal-checkout/blob/master/docs/hybrid.md

、および(ペイパル-REST-サーバー側のSDKを使用してsdk)を実行するには、サーバー側で実行します。

クライアント:

paypal.Button.render({ 
    env: 'sandbox', // Or 'production', 
    commit: true, // Show a 'Pay Now' button 
    client: { 
    sandbox: CLIENT_ID, 
    production: CLIENT_ID 
    }, 
    payment: function(data, actions) {   
    return actions.payment.create({ 
     ... 
    }); 
    }, 
    onAuthorize: function(data, actions) { 
    $.ajax({ 
     type: 'POST', 
     url: 'http://potato-03.ea.com/paypal/payment/execute', 
     dataType: 'json', 
     contentType: "application/json", 
     data: JSON.stringify({ 
     payment_id: data.paymentID, 
     payer_id: data.payerID 
     })  
    }).done(function(data) { 
     console.log('Payment received!'); 
    }); 
    }, 
    onCancel: function(data) { 
    console.log('The payment was cancelled!'); 
    } 
}, '#paypal-button'); 

サーバー:

const paypal = require('paypal-rest-sdk'); 

let paymentId = req.params.payment_id; 
let payerId = { payer_id: req.params.payer_id }; 

paypal.payment.execute(paymentId, payerId, function(err, payment){ 
     if(err){ 
     console.error(JSON.stringify(err)); 
     return error.errorHandler(err, null, null, reject, null); 
     } else { 
     if (payment.state == 'approved'){ 
      console.log('payment completed successfully'); 
     } else { 
      console.log('payment not successful'); 
     } 
     } 
    }); 
関連する問題