Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reading sub item / array #29

Open
coda-apps opened this issue Nov 27, 2023 · 2 comments
Open

Reading sub item / array #29

coda-apps opened this issue Nov 27, 2023 · 2 comments

Comments

@coda-apps
Copy link

coda-apps commented Nov 27, 2023

Hi there.

Thanks for setting up this git.

I have some sample code i am getting from paypal.

I would like to get the 'custom_id' variable (in: purchase_units)
I tried custom_id = oJSON.data("purchase_units").item("custom_id") but it was empty.
How would i access it? Is it different being within an array?

I also tried this, which works partially - i get an error on what seems to be the 2nd loop of the for loop. But the first loop does seem to access the tag i want. Maybe its throwing an error as this isnt a true array with multiple objects?

   For Each custom_id In oJSON.data("purchase_units")
        Set this = oJSON.data("purchase_units").item(custom_id)
        Response.Write _
        this.item("custom_id")  
    Next

Thanks

JSON BELOW:

{
  "id": "94151283KB577953A",
  "intent": "CAPTURE",
  "status": "COMPLETED",
  "payment_source": {
    "paypal": {
      "email_address": "[email protected]",
      "account_id": "A95TCZ88AZQMU",
      "account_status": "UNVERIFIED",
      "name": {
        "given_name": "mo",
        "surname": "Test"
      },
      "address": {
        "country_code": "IL"
      }
    }
  },
  "purchase_units": [{
    "reference_id": "default",
    "amount": {
      "currency_code": "USD",
      "value": "7.50",
      "breakdown": {
        "item_total": {
          "currency_code": "USD",
          "value": "7.50"
        }
      }
    },
    "payee": {
      "email_address": "[email protected]",
      "merchant_id": "C832PPP4ECVRN"
    },
    "description": "Demo Product",
    "custom_id": "DP12345",
    "soft_descriptor": "PAYPAL *TEST STORE",
    "items": [{
      "name": "Demo Product",
      "unit_amount": {
        "currency_code": "USD",
        "value": "7.50"
      },
      "quantity": "1",
      "description": "Demo Product",
      "category": "DIGITAL_GOODS"
    }],
    "shipping": {
      "name": {
        "full_name": "mo Test"
      },
      "address": {
        "address_line_1": "Arba St",
        "admin_area_2": "Tel Aviv",
        "country_code": "IL"
      }
    },
    "payments": {
      "captures": [{
        "id": "8KS14127A2501944D",
        "status": "COMPLETED",
        "amount": {
          "currency_code": "USD",
          "value": "7.50"
        },
        "final_capture": true,
        "seller_protection": {
          "status": "ELIGIBLE",
          "dispute_categories": ["ITEM_NOT_RECEIVED", "UNAUTHORIZED_TRANSACTION"]
        },
        "seller_receivable_breakdown": {
          "gross_amount": {
            "currency_code": "USD",
            "value": "7.50"
          },
          "paypal_fee": {
            "currency_code": "USD",
            "value": "0.43"
          },
          "net_amount": {
            "currency_code": "USD",
            "value": "7.07"
          },
          "receivable_amount": {
            "currency_code": "ILS",
            "value": "25.09"
          },
          "exchange_rate": {
            "source_currency": "USD",
            "target_currency": "ILS",
            "value": "3.5487075"
          }
        },
        "custom_id": "DP12345",
        "links": [{
          "href": "https://api.sandbox.paypal.com/v2/payments/captures/8KS14127A2501944D",
          "rel": "self",
          "method": "GET"
        }, {
          "href": "https://api.sandbox.paypal.com/v2/payments/captures/8KS14127A2501944D/refund",
          "rel": "refund",
          "method": "POST"
        }, {
          "href": "https://api.sandbox.paypal.com/v2/checkout/orders/94151283KB577953A",
          "rel": "up",
          "method": "GET"
        }],
        "create_time": "2023-11-27T21:30:56Z",
        "update_time": "2023-11-27T21:30:56Z"
      }]
    }
  }],
  "payer": {
    "name": {
      "given_name": "mo",
      "surname": "Test"
    },
    "email_address": "[email protected]",
    "payer_id": "A95TCZ88AZQMU",
    "address": {
      "country_code": "IL"
    }
  },
  "create_time": "2023-11-27T21:30:42Z",
  "update_time": "2023-11-27T21:30:56Z",
  "links": [{
    "href": "https://api.sandbox.paypal.com/v2/checkout/orders/94151283KB577953A",
    "rel": "self",
    "method": "GET"
  }]
}

@Vandroiy78
Copy link

The attribute "purchase_units" contains an unnamed container, this is probably the place where you have problems. In case you expect only one purchase_unit, you can access the first item directly by index. Otherwise you would have to loop through the collection.

Dim objJSONData : Set objJSONData = objJSON.data
Dim objPurchaseUnits : Set objPurchaseUnits = objJSONData.item("purchase_units")
Dim objPurchaseUnit : Set objPurchaseUnit = objPurchaseUnits.item(0)
MsgBox objPurchaseUnit.item("custom_id")

@coda-apps
Copy link
Author

The attribute "purchase_units" contains an unnamed container, this is probably the place where you have problems. In case you expect only one purchase_unit, you can access the first item directly by index. Otherwise you would have to loop through the collection.

Dim objJSONData : Set objJSONData = objJSON.data
Dim objPurchaseUnits : Set objPurchaseUnits = objJSONData.item("purchase_units")
Dim objPurchaseUnit : Set objPurchaseUnit = objPurchaseUnits.item(0)
MsgBox objPurchaseUnit.item("custom_id")

Thank you

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants