Sök…


parametrar

Parameter detaljer
card_data JSON-objekt som innehåller betalningsinformation för transaktion
credit_card_details JSON-objekt som innehåller kreditkortsdata som skickas till PayPal för att vara välvda
Klient ID Ditt PayPal-klient-ID (OAuth 2-referenser)
paypal PayPal-nod SDK-referens
hemlighet Din PayPal-applikationshemlighet (OAuth 2-referenser)
uuid Hänvisning till node-uuid-paketet

Anmärkningar

Detta exempel tar användaren genom att kreditera en enkel kreditkortstransaktion med PayPal SDK: er.

Nodprov

Börja med att installera PayPal Node-modulen från NPM

npm install paypal-rest-sdk

Lägg till konfigurationsinformationen för SDK i din applikationsfil

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

var client_id = 'YOUR CLIENT ID';
var secret = 'YOUR SECRET';

paypal.configure({
    'mode': 'sandbox', //sandbox or live
    'client_id': client_id,
    'client_secret': secret
});

Vi lägger till kravet för SDK, ställer sedan in variabler för klient-ID och hemlighet som erhölls vid skapandet av en applikation . Vi konfigurerar sedan vår applikation med hjälp av dessa detaljer och specificerar den miljö som vi arbetar i (live eller sandlåda).

Därefter ställer vi in JSON-objektet som innehåller betalningsinformationen för betalaren.

var card_data = {
  "intent": "sale",
  "payer": {
    "payment_method": "credit_card",
    "funding_instruments": [{
      "credit_card": {
        "type": "visa",
        "number": "4417119669820331",
        "expire_month": "11",
        "expire_year": "2018",
        "cvv2": "874",
        "first_name": "Joe",
        "last_name": "Shopper",
        "billing_address": {
          "line1": "52 N Main ST",
          "city": "Johnstown",
          "state": "OH",
          "postal_code": "43210",
          "country_code": "US" }}}]},
  "transactions": [{
    "amount": {
      "total": "7.47",
      "currency": "USD",
      "details": {
        "subtotal": "7.41",
        "tax": "0.03",
        "shipping": "0.03"}},
    "description": "This is the payment transaction description." 
}]};

Lägg till en intent sale och en payment_method för credit_card . Lägg sedan till kort- och adressinformationen för kreditkortet under funding_instruments , och beloppet som ska debiteras under transactions . Här kan flera transaktionsobjekt placeras.

Slutligen gör vi en begäran till payment.create(...) , som skickar in vårt card_data objekt för att behandla betalningen.

paypal.payment.create(card_data, function(error, payment){
  if(error){
    console.error(error);
  } else {
    console.log(payment);
  }
});

Om transaktionen lyckades skulle vi se ett svarobjekt som liknar följande:

{
  "id": "PAY-9BS08892W3794812YK4HKFQY",
  "create_time": "2016-04-13T19:49:23Z",
  "update_time": "2016-04-13T19:50:07Z",
  "state": "approved",
  "intent": "sale",
  "payer": {
    "payment_method": "credit_card",
    "funding_instruments": [
      {
        "credit_card": {
          "type": "visa",
          "number": "xxxxxxxxxxxx0331",
          "expire_month": "11",
          "expire_year": "2018",
          "first_name": "Joe",
          "last_name": "Shopper",
          "billing_address": {
            "line1": "52 N Main ST",
            "city": "Johnstown",
            "state": "OH",
            "postal_code": "43210",
            "country_code": "US"
          }
        }
      }
    ]
  },
  "transactions": [
    {
      "amount": {
        "total": "7.47",
        "currency": "USD",
        "details": {
          "subtotal": "7.41",
          "tax": "0.03",
          "shipping": "0.03"
        }
      },
      "description": "This is the payment transaction description.",
      "related_resources": [
        {
          "sale": {
            "id": "0LB81696PP288253D",
            "create_time": "2016-04-13T19:49:23Z",
            "update_time": "2016-04-13T19:50:07Z",
            "amount": {
              "total": "7.47",
              "currency": "USD"
            },
            "state": "completed",
            "parent_payment": "PAY-9BS08892W3794812YK4HKFQY",
            "links": [
              {
                "href": "https:\/\/api.sandbox.paypal.com\/v1\/payments\/sale\/0LB81696PP288253D",
                "rel": "self",
                "method": "GET"
              },
              {
                "href": "https:\/\/api.sandbox.paypal.com\/v1\/payments\/sale\/0LB81696PP288253D\/refund",
                "rel": "refund",
                "method": "POST"
              },
              {
                "href": "https:\/\/api.sandbox.paypal.com\/v1\/payments\/payment\/PAY-9BS08892W3794812YK4HKFQY",
                "rel": "parent_payment",
                "method": "GET"
              }
            ],
            "fmf_details": {
              
            },
            "processor_response": {
              "avs_code": "X",
              "cvv_code": "M"
            }
          }
        }
      ]
    }
  ],
  "links": [
    {
      "href": "https:\/\/api.sandbox.paypal.com\/v1\/payments\/payment\/PAY-9BS08892W3794812YK4HKFQY",
      "rel": "self",
      "method": "GET"
    }
  ],
  "httpStatusCode": 201
}

I denna återgång objektet har en state av approved berättar att transaktionen var lyckad. Under links finns ett antal HATEOAS- länkar som ger potentiella nästa steg som kan vidtas för den åtgärd som just har utförts. I det här fallet kan vi hämta information om betalningen genom att göra en GET-begäran till den self slutpunkten.

Att göra en betalning med ett välvt kreditkort (nod)

I det här exemplet tittar vi på hur du lagrar ett kreditkort med PayPal-valvet och hänvisar sedan till det lagrade kreditkortet för att behandla en kreditkortstransaktion för en användare.

Anledningen till att vi vill använda valvet är så att vi inte behöver lagra känslig kreditkortsinformation på våra egna servrar. Vi hänvisar helt enkelt till betalningsmetoden via ett angivet valv-ID, vilket innebär att vi inte behöver ta itu med många PCI-föreskrifter för att lagra kreditkorten själva.

Som med tidigare prover, börjar vi med att ställa in vår miljö.

var paypal = require('paypal-rest-sdk'),
    uuid = require('node-uuid');

var client_id = 'YOUR CLIENT ID';
var secret = 'YOUR SECRET';

paypal.configure({
  'mode': 'sandbox', //sandbox or live
  'client_id': client_id,
  'client_secret': secret
});

En skillnad med tidigare prover här är att vi kräver ett nytt paket, node-uuid , som ska användas för att generera unika UUID för betalarna vid lagring av kortet. Du kan installera paketet via:

npm install node-uuid

Därefter definierar vi kreditkort JSON-objektet som ska skickas till PayPal-valvet för lagring. Det innehåller information från kortet, samt ett unikt betalar-ID som vi genererar med node-uuid . Du bör lagra denna unika payer_id i din egen databas eftersom den kommer att användas när du skapar en betalning med det välvda kortet.

var create_card_details = {
    "type": "visa",
    "number": "4417119669820331",
    "expire_month": "11",
    "expire_year": "2018",
    "first_name": "John",
    "last_name": "Doe",
    "payer_id": uuid.v4()
};

Slutligen måste vi lagra kreditkortet och behandla betalningen med det kortet. För att välva ett kreditkort, kallar vi credit_card.create(...) och skickar in det credit_card_details objektet som vi just skapade. Om allt går bra, bör vi få ett objekt tillbaka till oss med information om det välvda kortet. För en betalning med det kortet behöver vi bara två informationsdelar: betaltid som vi redan har lagrat och valv-ID, som också bör lagras som referens i vår egen databas.

paypal.credit_card.create(create_card_details, function(error, credit_card){
    if(error){
        console.error(error);
    } else {
        var card_data = {
            "intent": "sale",
            "payer": {
                "payment_method": "credit_card",
                "funding_instruments": [{
                    "credit_card_token": {
                        "credit_card_id": credit_card.id,
                        "payer_id": credit_card.payer_id
                    }
                }]
            },
            "transactions": [{
                "amount": {
                    "total": "7.47",
                    "currency": "USD",
                    "details": {
                        "subtotal": "7.41",
                        "tax": "0.03",
                        "shipping": "0.03"
                    }
                },
                "description": "This is the payment transaction description." 
            }]
        };
        
        paypal.payment.create(card_data, function(error, payment){
            if(error){
                console.error(error);
            } else {
                console.log(JSON.stringify(payment));
            }
        });
    }
});

I avsnittet efter det framgångsrika valvet av kreditkortet definierar vi helt enkelt kortinformationen och behandlar betalningen, som vi gjorde med det tidigare exemplet med kreditkortsbehandling. Den största skillnaden i strukturen för card_data objektet är avsnittet funding_instruments som vi definierar under payer . Istället för att definiera kreditkortsinformationen använder vi istället följande objekt som innehåller valv-ID-referensen och betalarens ID:

"credit_card_token": {
    "credit_card_id": credit_card.id,
    "payer_id": credit_card.payer_id
}

Det är så vi använder ett välvt kort för att behandla en betalning.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow