Sample code for 30+ languages & platforms
SQL Server

PayPal - List Payments

See more PayPal Examples

Lists payments that were created by the create payment call and are in any state. The list shows the payments that are made to the merchant who makes the call.

Note: This example requires Chilkat v9.5.0.65 or greater.

Chilkat SQL Server Downloads

SQL Server
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    DECLARE @iTmp0 int
    -- Important: Do not use nvarchar(max).  See the warning about using nvarchar(max).
    DECLARE @sTmp0 nvarchar(4000)
    DECLARE @success int
    SELECT @success = 0

    -- Note: Requires Chilkat v9.5.0.65 or greater.

    -- This requires the Chilkat API to have been previously unlocked.
    -- See Global Unlock Sample for sample code.

    -- Load our previously obtained access token. (see PayPal OAuth2 Access Token)
    DECLARE @jsonToken int
    EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @jsonToken OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    EXEC sp_OAMethod @jsonToken, 'LoadFile', @success OUT, 'qa_data/tokens/paypal.json'

    -- Build the Authorization request header field value.
    DECLARE @sbAuth int
    EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbAuth OUT

    -- token_type should be "Bearer"
    EXEC sp_OAMethod @jsonToken, 'StringOf', @sTmp0 OUT, 'token_type'
    EXEC sp_OAMethod @sbAuth, 'Append', @success OUT, @sTmp0
    EXEC sp_OAMethod @sbAuth, 'Append', @success OUT, ' '
    EXEC sp_OAMethod @jsonToken, 'StringOf', @sTmp0 OUT, 'access_token'
    EXEC sp_OAMethod @sbAuth, 'Append', @success OUT, @sTmp0

    -- Make the initial connection.
    -- A single REST object, once connected, can be used for many PayPal REST API calls.
    -- The auto-reconnect indicates that if the already-established HTTPS connection is closed,
    -- then it will be automatically re-established as needed.
    DECLARE @rest int
    EXEC @hr = sp_OACreate 'Chilkat.Rest', @rest OUT

    DECLARE @bAutoReconnect int
    SELECT @bAutoReconnect = 1
    EXEC sp_OAMethod @rest, 'Connect', @success OUT, 'api.sandbox.paypal.com', 443, 1, @bAutoReconnect
    IF @success <> 1
      BEGIN
        EXEC sp_OAGetProperty @rest, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @jsonToken
        EXEC @hr = sp_OADestroy @sbAuth
        EXEC @hr = sp_OADestroy @rest
        RETURN
      END

    -- ----------------------------------------------------------------------------------------------
    -- The code above this comment could be placed inside a function/subroutine within the application
    -- because the connection does not need to be made for every request.  Once the connection is made
    -- the app may send many requests..
    -- ----------------------------------------------------------------------------------------------

    -- Clear the REST object of any headers or query params from previous requests.
    EXEC sp_OAMethod @rest, 'ClearAllHeaders', @success OUT
    EXEC sp_OAMethod @rest, 'ClearAllQueryParams', @success OUT

    EXEC sp_OAMethod @sbAuth, 'GetAsString', @sTmp0 OUT
    EXEC sp_OAMethod @rest, 'AddHeader', @success OUT, 'Authorization', @sTmp0

    -- Add query parameters.
    EXEC sp_OAMethod @rest, 'AddQueryParam', @success OUT, 'count', '3'
    EXEC sp_OAMethod @rest, 'AddQueryParam', @success OUT, 'start_index', '0'
    EXEC sp_OAMethod @rest, 'AddQueryParam', @success OUT, 'sort_by', 'create_time'
    EXEC sp_OAMethod @rest, 'AddQueryParam', @success OUT, 'sort_order', 'desc'

    -- Send the GET request and get the JSON response.
    DECLARE @sbJsonResponse int
    EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbJsonResponse OUT

    EXEC sp_OAMethod @rest, 'FullRequestNoBodySb', @success OUT, 'GET', '/v1/payments/payment', @sbJsonResponse
    IF @success <> 1
      BEGIN
        EXEC sp_OAGetProperty @rest, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @jsonToken
        EXEC @hr = sp_OADestroy @sbAuth
        EXEC @hr = sp_OADestroy @rest
        EXEC @hr = sp_OADestroy @sbJsonResponse
        RETURN
      END

    DECLARE @json int
    EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @json OUT

    EXEC sp_OASetProperty @json, 'EmitCompact', 0
    EXEC sp_OAMethod @json, 'LoadSb', @success OUT, @sbJsonResponse


    EXEC sp_OAGetProperty @rest, 'ResponseStatusCode', @iTmp0 OUT
    PRINT 'Response Status Code = ' + @iTmp0

    -- Did we get a 200 success response?
    EXEC sp_OAGetProperty @rest, 'ResponseStatusCode', @iTmp0 OUT
    IF @iTmp0 <> 200
      BEGIN
        EXEC sp_OAMethod @json, 'Emit', @sTmp0 OUT
        PRINT @sTmp0

        PRINT 'Failed.'
        EXEC @hr = sp_OADestroy @jsonToken
        EXEC @hr = sp_OADestroy @sbAuth
        EXEC @hr = sp_OADestroy @rest
        EXEC @hr = sp_OADestroy @sbJsonResponse
        EXEC @hr = sp_OADestroy @json
        RETURN
      END

    -- Sample JSON response is shown below.
    EXEC sp_OAMethod @json, 'Emit', @sTmp0 OUT
    PRINT @sTmp0

    PRINT '----------------------'

    -- Iterate over the payments and show some information from each..
    DECLARE @numPayments int
    EXEC sp_OAMethod @json, 'SizeOfArray', @numPayments OUT, 'payments'
    DECLARE @i int
    SELECT @i = 0
    WHILE @i < @numPayments
      BEGIN

        EXEC sp_OASetProperty @json, 'I', @i

        EXEC sp_OAMethod @json, 'StringOf', @sTmp0 OUT, 'payments[i].id'
        PRINT 'id: ' + @sTmp0

        EXEC sp_OAMethod @json, 'StringOf', @sTmp0 OUT, 'payments[i].state'
        PRINT 'state: ' + @sTmp0

        EXEC sp_OAMethod @json, 'StringOf', @sTmp0 OUT, 'payments[i].intent'
        PRINT 'intent: ' + @sTmp0

        DECLARE @j int
        SELECT @j = 0
        DECLARE @numTransactions int
        EXEC sp_OAMethod @json, 'SizeOfArray', @numTransactions OUT, 'payments[i].transactions'
        WHILE @j < @numTransactions
          BEGIN
            EXEC sp_OASetProperty @json, 'J', @j

            EXEC sp_OAMethod @json, 'StringOf', @sTmp0 OUT, 'payments[i].transactions[j].amount.total'
            PRINT 'amount: ' + @sTmp0

            EXEC sp_OAMethod @json, 'StringOf', @sTmp0 OUT, 'payments[i].transactions[j].description'
            PRINT 'description: ' + @sTmp0
            SELECT @j = @j + 1
          END

        PRINT '----'

        SELECT @i = @i + 1
      END


    PRINT 'success'

    -- ------------------------------------------------
    -- A sample JSON response:

    -- 	{ 
    -- 	  "payments": [
    -- 	    { 
    -- 	      "id": "PAY-66A12106PU3254228LA3BYKI",
    -- 	      "create_time": "2016-11-23T22:46:01Z",
    -- 	      "update_time": "2016-11-23T22:46:07Z",
    -- 	      "state": "approved",
    -- 	      "intent": "sale",
    -- 	      "payer": { 
    -- 	        "payment_method": "credit_card",
    -- 	        "funding_instruments": [
    -- 	          { 
    -- 	            "credit_card": { 
    -- 	              "type": "visa",
    -- 	              "number": "xxxxxxxxxxxx9974",
    -- 	              "expire_month": "9",
    -- 	              "expire_year": "2021",
    -- 	              "first_name": "Joe",
    -- 	              "last_name": "Buyer"
    -- 	            }
    -- 	          }
    -- 	        ]
    -- 	      },
    -- 	      "transactions": [
    -- 	        { 
    -- 	          "amount": { 
    -- 	            "total": "7.47",
    -- 	            "currency": "USD",
    -- 	            "details": { 
    -- 	              "subtotal": "7.47"
    -- 	            }
    -- 	          },
    -- 	          "description": "This is the payment transaction description.",
    -- 	          "related_resources": [
    -- 	            { 
    -- 	              "sale": { 
    -- 	                "id": "70L88278E6781074B",
    -- 	                "create_time": "2016-11-23T22:46:01Z",
    -- 	                "update_time": "2016-11-23T22:46:07Z",
    -- 	                "amount": { 
    -- 	                  "total": "7.47",
    -- 	                  "currency": "USD"
    -- 	                },
    -- 	                "state": "completed",
    -- 	                "parent_payment": "PAY-66A12106PU3254228LA3BYKI",
    -- 	                "links": [
    -- 	                  { 
    -- 	                    "href": "https://api.sandbox.paypal.com/v1/payments/sale/70L88278E6781074B",
    -- 	                    "rel": "self",
    -- 	                    "method": "GET"
    -- 	                  },
    -- 	                  { 
    -- 	                    "href": "https://api.sandbox.paypal.com/v1/payments/sale/70L88278E6781074B/refund",
    -- 	                    "rel": "refund",
    -- 	                    "method": "POST"
    -- 	                  },
    -- 	                  { 
    -- 	                    "href": "https://api.sandbox.paypal.com/v1/payments/payment/PAY-66A12106PU3254228LA3BYKI",
    -- 	                    "rel": "parent_payment",
    -- 	                    "method": "GET"
    -- 	                  }
    -- 	                ]
    -- 	              }
    -- 	            }
    -- 	          ]
    -- 	        }
    -- 	      ],
    -- 	      "links": [
    -- 	        { 
    -- 	          "href": "https://api.sandbox.paypal.com/v1/payments/payment/PAY-66A12106PU3254228LA3BYKI",
    -- 	          "rel": "self",
    -- 	          "method": "GET"
    -- 	        }
    -- 	      ]
    -- 	    },
    -- 	    { 
    -- 	      "id": "PAY-65M1278399433341ALA3B4JY",
    -- 	      "create_time": "2016-11-23T22:54:31Z",
    -- 	      "update_time": "2016-11-23T22:54:35Z",
    -- 	      "state": "approved",
    -- 	      "intent": "sale",
    -- 	      "payer": { 
    -- 	        "payment_method": "credit_card",
    -- 	        "funding_instruments": [
    -- 	          { 
    -- 	            "credit_card": { 
    -- 	              "type": "visa",
    -- 	              "number": "xxxxxxxxxxxx9974",
    -- 	              "expire_month": "9",
    -- 	              "expire_year": "2021",
    -- 	              "first_name": "Joe",
    -- 	              "last_name": "Buyer"
    -- 	            }
    -- 	          }
    -- 	        ]
    -- 	      },
    -- 	      "transactions": [
    -- 	        { 
    -- 	          "amount": { 
    -- 	            "total": "7.47",
    -- 	            "currency": "USD",
    -- 	            "details": { 
    -- 	              "subtotal": "7.47"
    -- 	            }
    -- 	          },
    -- 	          "description": "This is the payment transaction description.",
    -- 	          "related_resources": [
    -- 	            { 
    -- 	              "sale": { 
    -- 	                "id": "1CP21441CY030683B",
    -- 	                "create_time": "2016-11-23T22:54:31Z",
    -- 	                "update_time": "2016-11-23T22:54:35Z",
    -- 	                "amount": { 
    -- 	                  "total": "7.47",
    -- 	                  "currency": "USD"
    -- 	                },
    -- 	                "state": "completed",
    -- 	                "parent_payment": "PAY-65M1278399433341ALA3B4JY",
    -- 	                "links": [
    -- 	                  { 
    -- 	                    "href": "https://api.sandbox.paypal.com/v1/payments/sale/1CP21441CY030683B",
    -- 	                    "rel": "self",
    -- 	                    "method": "GET"
    -- 	                  },
    -- 	                  { 
    -- 	                    "href": "https://api.sandbox.paypal.com/v1/payments/sale/1CP21441CY030683B/refund",
    -- 	                    "rel": "refund",
    -- 	                    "method": "POST"
    -- 	                  },
    -- 	                  { 
    -- 	                    "href": "https://api.sandbox.paypal.com/v1/payments/payment/PAY-65M1278399433341ALA3B4JY",
    -- 	                    "rel": "parent_payment",
    -- 	                    "method": "GET"
    -- 	                  }
    -- 	                ]
    -- 	              }
    -- 	            }
    -- 	          ]
    -- 	        }
    -- 	      ],
    -- 	      "links": [
    -- 	        { 
    -- 	          "href": "https://api.sandbox.paypal.com/v1/payments/payment/PAY-65M1278399433341ALA3B4JY",
    -- 	          "rel": "self",
    -- 	          "method": "GET"
    -- 	        }
    -- 	      ]
    -- 	    },
    -- 	    { 
    -- 	      "id": "PAY-12T35751GS725073SLA3CQNQ",
    -- 	      "create_time": "2016-11-23T23:37:26Z",
    -- 	      "update_time": "2016-11-23T23:37:31Z",
    -- 	      "state": "approved",
    -- 	      "intent": "sale",
    -- 	      "payer": { 
    -- 	        "payment_method": "credit_card",
    -- 	        "funding_instruments": [
    -- 	          { 
    -- 	            "credit_card_token": { 
    -- 	              "credit_card_id": "CARD-52W84623JH8043102LA3CLGA",
    -- 	              "payer_id": "user12345",
    -- 	              "last4": "9974",
    -- 	              "type": "visa",
    -- 	              "expire_month": "9",
    -- 	              "expire_year": "2021"
    -- 	            }
    -- 	          }
    -- 	        ]
    -- 	      },
    -- 	      "transactions": [
    -- 	        { 
    -- 	          "amount": { 
    -- 	            "total": "6.70",
    -- 	            "currency": "USD",
    -- 	            "details": { 
    -- 	              "subtotal": "6.70"
    -- 	            }
    -- 	          },
    -- 	          "description": "This is the payment transaction description.",
    -- 	          "related_resources": [
    -- 	            { 
    -- 	              "sale": { 
    -- 	                "id": "4F194018A1618453G",
    -- 	                "create_time": "2016-11-23T23:37:26Z",
    -- 	                "update_time": "2016-11-23T23:37:31Z",
    -- 	                "amount": { 
    -- 	                  "total": "6.70",
    -- 	                  "currency": "USD"
    -- 	                },
    -- 	                "state": "completed",
    -- 	                "parent_payment": "PAY-12T35751GS725073SLA3CQNQ",
    -- 	                "links": [
    -- 	                  { 
    -- 	                    "href": "https://api.sandbox.paypal.com/v1/payments/sale/4F194018A1618453G",
    -- 	                    "rel": "self",
    -- 	                    "method": "GET"
    -- 	                  },
    -- 	                  { 
    -- 	                    "href": "https://api.sandbox.paypal.com/v1/payments/sale/4F194018A1618453G/refund",
    -- 	                    "rel": "refund",
    -- 	                    "method": "POST"
    -- 	                  },
    -- 	                  { 
    -- 	                    "href": "https://api.sandbox.paypal.com/v1/payments/payment/PAY-12T35751GS725073SLA3CQNQ",
    -- 	                    "rel": "parent_payment",
    -- 	                    "method": "GET"
    -- 	                  }
    -- 	                ]
    -- 	              }
    -- 	            }
    -- 	          ]
    -- 	        }
    -- 	      ],
    -- 	      "links": [
    -- 	        { 
    -- 	          "href": "https://api.sandbox.paypal.com/v1/payments/payment/PAY-12T35751GS725073SLA3CQNQ",
    -- 	          "rel": "self",
    -- 	          "method": "GET"
    -- 	        }
    -- 	      ]
    -- 	    }
    -- 	  ],
    -- 	  "count": 3,
    -- 	  "next_id": "PAY-2005552565085590VLA3CR5Q"
    -- 	}

    EXEC @hr = sp_OADestroy @jsonToken
    EXEC @hr = sp_OADestroy @sbAuth
    EXEC @hr = sp_OADestroy @rest
    EXEC @hr = sp_OADestroy @sbJsonResponse
    EXEC @hr = sp_OADestroy @json


END
GO