【问题标题】:AngularJS/NodeJS Application Integration with Paypal In-Context CheckoutAngularJS/NodeJS 应用程序集成与 Paypal 上下文结帐
【发布时间】:2016-10-27 10:15:48
【问题描述】:

我有一个 Web 应用程序,UI 上有 AngularJS,后端有 NodeJS。

我想实现 Paypal In-Context Checkout 功能,但我不太明白这样做的步骤是什么,文档非常混乱。

谁能解释一下实现这一目标的步骤,前端需要做什么以及后端需要做什么。 谢谢。

【问题讨论】:

    标签: angularjs node.js paypal


    【解决方案1】:

    三种方法

    1 您可以使用客户端休息。 2 你可以使用服务器端休息。 3 你可以使用braintree sdk。

    对于第一步,paypal 有 checkout.js。 对于第二步,使用 paypal rest api 基本上是后端任务。

    第一步和第二步的过程非常相似。

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

    创建如下付款发布请求

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

    一旦创建付款,您将获得 url,重定向该 url 并使用 paypal 进行付款,它将使用查询参数支付 id 和 payerId 返回对成功 url 的调用。

    现在成功写下代码

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

    【讨论】:

      猜你喜欢
      • 2021-03-26
      • 1970-01-01
      • 2013-11-29
      • 2010-09-21
      • 2012-05-04
      • 2013-09-09
      • 2013-08-18
      • 2016-03-23
      • 2018-09-30
      相关资源
      最近更新 更多