2016-06-24 10 views
1

UIアプリケーションにはAngularJS、バックエンドにはNodeJSというWebアプリケーションがあります。AngularJS/NodeJSアプリケーションとPaypalのコンテキスト内チェックアウト

私はPaypal In-Context Checkout機能を実装したいと思っていますが、これを行う手順が分かりません。ドキュメントは非常に混乱します。

誰かがこれを達成するためのステップ、フロントエンドで何が必要なのか、バックエンドで何ができるのか教えてください。おかげさまで

答えて

0

これには3通りの方法があります。

1クライアントサイドレストを使用できます。 2サーバー側の残りの部分を使用できます。 3 braintree sdkを使用できます。

最初のステップpaypalにはcheckout.jsがあります。 2番目のステップの は基本的にバックエンドタスクのpaypal rest APIを使用します。

第1ステップと第2ステップの両方のプロセスでは非常に似ています。

const paypal = require('paypal-rest-sdk'); 
const payments = paypal.v1.payments; 
let env = new paypal.core.SandboxEnvironment('app-id', 'secret'); 

let client = new paypal.core.PayPalHttpClient(env); 

支払いは、あなたが、URLを取得し、そのURLをリダイレクトし、PayPalで支払いを行います作成したら

var create_payment_json = { 
        'intent': 'sale', 
        'payer': { 
         'payment_method': 'paypal' 
        }, 
        'redirect_urls': { 
         'return_url': 
          'http://localhost:4150/test/paymentSuccess', 
          'cancel_url': 'http://cancel.url' 
        }, 
        'transactions': [{ 
         'item_list': { 
          'items': [ 
           { 
            'name': 'item', 
            'sku': 'item', 
            'price': '1.00', 
            'currency': 'USD', 
            'quantity': 1 
           } 

          ] 
         }, 
         'amount': { 
          'currency': 'USD', 
          'total': '1.00' 
         }, 
         'description': 'This is the payment' 
        }] 
       }; 

       let request = new payments.PaymentCreateRequest(); 
       requestt.requestBody(create_payment_json); 


       let mrrrr; 
       client.execute(requestt).then((response) => { 
        console.log(response.statusCode); 
        console.log(response.result); 

        _.map(response.result.links, (value) => { 
         if (value.rel === 'approval_url') { 
          // reply.redirect(response.result.links[i].href); 
          mrrrr = value.href; 
          console.log('mrrrr', mrrrr); 
          // return reply.redirect(mrrrr); 
         } 
        }); 
       }).catch((error) => { 
        console.error(error.statusCode); 
        console.error(error.message); 
       }); 

の下に、それはクエリパラメータ支払IDで成功URLへの呼び出しを返しますように支払POSTリクエストを作成し、 payerId。コードの下のget成功書き込みで今

console.log('this is query parameters', request.query); 

       const payerID = request.query.PayerID; 
       const paymentID = request.query.paymentId; 

       const execute_payment_json = { 
        'payer_id': payerID 
       }; 

       let ww = new payments.PaymentExecuteRequest(paymentID); 
       ww.requestBody(execute_payment_json); 

       client.execute(ww).then((response) => { 
        console.log('success', response.statusCode); 
        console.log('success', response.result); 

       }).catch((error) => { 
        console.error(error.statusCode); 
        console.error(error.message); 
       }); 
関連する問題