Chilkat Online Tools

VB6 / Salesforce Platform APIs / Member Profile

Back to Collection Items

' This example assumes the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.

Dim http As New ChilkatHttp
Dim success As Long

Dim queryParams As New ChilkatJsonObject
success = queryParams.UpdateString("memberId","")
success = queryParams.UpdateString("membershipNumber","")
success = queryParams.UpdateString("programCurrencyName","")

' Adds the "Authorization: Bearer <access_token>" header.
http.AuthToken = "<access_token>"

Dim resp As ChilkatHttpResponse
Set resp = http.QuickRequestParams("GET","https://domain.com/services/data/v{{version}}/loyalty-programs/:loyaltyProgramName/members",queryParams)
If (http.LastMethodSuccess = 0) Then
    Debug.Print http.LastErrorText
    Exit Sub
End If

Dim sbResponseBody As New ChilkatStringBuilder
success = resp.GetBodySb(sbResponseBody)

Dim jResp As New ChilkatJsonObject
success = jResp.LoadSb(sbResponseBody)
jResp.EmitCompact = 0

Debug.Print "Response Body:"
Debug.Print jResp.Emit()

Dim respStatusCode As Long
respStatusCode = resp.StatusCode
Debug.Print "Response Status Code = " & respStatusCode
If (respStatusCode >= 400) Then
    Debug.Print "Response Header:"
    Debug.Print resp.Header
    Debug.Print "Failed."

    Exit Sub
End If

' Sample JSON response:
' (Sample code for parsing the JSON response is shown below)

' {
'   "additionalLoyaltyProgramMemberFields": {},
'   "associatedAccount": null,
'   "associatedContact": {
'     "contactId": "003J8000002Yu0ZIAS",
'     "email": "ab@email.com",
'     "firstName": "Name1",
'     "lastName": "Name2"
'   },
'   "canReceivePartnerPromotions": true,
'   "canReceivePromotions": true,
'   "enrollmentChannel": "Email",
'   "enrollmentDate": "2021-01-01",
'   "groupCreatedByMember": null,
'   "groupName": null,
'   "lastActivityDate": null,
'   "loyaltyProgramMemberId": "0lMJ8000000CaRMMA0",
'   "loyaltyProgramName": "NTO Insider",
'   "memberCurrencies": [
'     {
'       "additionalLoyaltyMemberCurrencyFields": {
'         "Level_Before_Reset__c": null
'       },
'       "escrowPointsBalance": 0,
'       "expirablePoints": 0,
'       "lastAccrualProcessedDate": null,
'       "lastEscrowProcessedDate": null,
'       "lastExpirationProcessRunDate": null,
'       "lastPointsAggregationDate": null,
'       "lastPointsResetDate": null,
'       "loyaltyMemberCurrencyName": "NTO Qualifying Points",
'       "loyaltyProgramCurrencyId": "0lcJ8000000CaR7IAK",
'       "loyaltyProgramCurrencyName": null,
'       "memberCurrencyId": "0lzJ8000000CaRMIA0",
'       "nextQualifyingPointsResetDate": "2024-12-31",
'       "pointsBalance": 0,
'       "qualifyingPointsBalanceBeforeReset": 0,
'       "totalEscrowPointsAccrued": 0,
'       "totalEscrowRolloverPoints": 0,
'       "totalPointsAccrued": 0,
'       "totalPointsExpired": 0,
'       "totalPointsRedeemed": 0
'     }
'   ],
'   "memberStatus": "Active",
'   "memberTiers": [
'     {
'       "additionalLoyaltyMemberTierFields": {},
'       "areTierBenefitsAssigned": false,
'       "loyaltyMemberTierId": "0lyJ8000000CaRMIA0",
'       "loyaltyMemberTierName": "Bronze",
'       "tierChangeReason": null,
'       "tierChangeReasonType": null,
'       "tierEffectiveDate": "2021-01-01",
'       "tierExpirationDate": null,
'       "tierGroupId": "0ltJ8000000CaR8IAK",
'       "tierGroupName": null,
'       "tierId": "0lgJ80000008OI5IAM",
'       "tierSequenceNumber": 10
'     }
'   ],
'   "memberType": "Individual",
'   "membershipEndDate": "2022-01-01",
'   "membershipLastRenewalDate": null,
'   "membershipNumber": "Member1",
'   "referredBy": null,
'   "relatedCorporateMembershipNumber": null,
'   "transactionJournalStatementFrequency": "Monthly",
'   "transactionJournalStatementLastGeneratedDate": null,
'   "transactionJournalStatementMethod": "Mail"
' }

' Sample code for parsing the JSON response...
' Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code

Dim Level_Before_Reset__c As String
Dim escrowPointsBalance As Long
Dim expirablePoints As Long
Dim lastAccrualProcessedDate As String
Dim lastEscrowProcessedDate As String
Dim lastExpirationProcessRunDate As String
Dim lastPointsAggregationDate As String
Dim lastPointsResetDate As String
Dim loyaltyMemberCurrencyName As String
Dim loyaltyProgramCurrencyId As String
Dim loyaltyProgramCurrencyName As String
Dim memberCurrencyId As String
Dim nextQualifyingPointsResetDate As String
Dim pointsBalance As Long
Dim qualifyingPointsBalanceBeforeReset As Long
Dim totalEscrowPointsAccrued As Long
Dim totalEscrowRolloverPoints As Long
Dim totalPointsAccrued As Long
Dim totalPointsExpired As Long
Dim totalPointsRedeemed As Long
Dim areTierBenefitsAssigned As Long
Dim loyaltyMemberTierId As String
Dim loyaltyMemberTierName As String
Dim tierChangeReason As String
Dim tierChangeReasonType As String
Dim tierEffectiveDate As String
Dim tierExpirationDate As String
Dim tierGroupId As String
Dim tierGroupName As String
Dim tierId As String
Dim tierSequenceNumber As Long

Dim associatedAccount As String
associatedAccount = jResp.StringOf("associatedAccount")
Dim ContactId As String
ContactId = jResp.StringOf("associatedContact.contactId")
Dim v_Email As String
v_Email = jResp.StringOf("associatedContact.email")
Dim FirstName As String
FirstName = jResp.StringOf("associatedContact.firstName")
Dim LastName As String
LastName = jResp.StringOf("associatedContact.lastName")
Dim canReceivePartnerPromotions As Long
canReceivePartnerPromotions = jResp.BoolOf("canReceivePartnerPromotions")
Dim canReceivePromotions As Long
canReceivePromotions = jResp.BoolOf("canReceivePromotions")
Dim enrollmentChannel As String
enrollmentChannel = jResp.StringOf("enrollmentChannel")
Dim enrollmentDate As String
enrollmentDate = jResp.StringOf("enrollmentDate")
Dim groupCreatedByMember As String
groupCreatedByMember = jResp.StringOf("groupCreatedByMember")
Dim groupName As String
groupName = jResp.StringOf("groupName")
Dim lastActivityDate As String
lastActivityDate = jResp.StringOf("lastActivityDate")
Dim loyaltyProgramMemberId As String
loyaltyProgramMemberId = jResp.StringOf("loyaltyProgramMemberId")
Dim loyaltyProgramName As String
loyaltyProgramName = jResp.StringOf("loyaltyProgramName")
Dim memberStatus As String
memberStatus = jResp.StringOf("memberStatus")
Dim memberType As String
memberType = jResp.StringOf("memberType")
Dim membershipEndDate As String
membershipEndDate = jResp.StringOf("membershipEndDate")
Dim membershipLastRenewalDate As String
membershipLastRenewalDate = jResp.StringOf("membershipLastRenewalDate")
Dim membershipNumber As String
membershipNumber = jResp.StringOf("membershipNumber")
Dim referredBy As String
referredBy = jResp.StringOf("referredBy")
Dim relatedCorporateMembershipNumber As String
relatedCorporateMembershipNumber = jResp.StringOf("relatedCorporateMembershipNumber")
Dim transactionJournalStatementFrequency As String
transactionJournalStatementFrequency = jResp.StringOf("transactionJournalStatementFrequency")
Dim transactionJournalStatementLastGeneratedDate As String
transactionJournalStatementLastGeneratedDate = jResp.StringOf("transactionJournalStatementLastGeneratedDate")
Dim transactionJournalStatementMethod As String
transactionJournalStatementMethod = jResp.StringOf("transactionJournalStatementMethod")
Dim i As Long
i = 0
Dim count_i As Long
count_i = jResp.SizeOfArray("memberCurrencies")
Do While i < count_i
    jResp.I = i
    Level_Before_Reset__c = jResp.StringOf("memberCurrencies[i].additionalLoyaltyMemberCurrencyFields.Level_Before_Reset__c")
    escrowPointsBalance = jResp.IntOf("memberCurrencies[i].escrowPointsBalance")
    expirablePoints = jResp.IntOf("memberCurrencies[i].expirablePoints")
    lastAccrualProcessedDate = jResp.StringOf("memberCurrencies[i].lastAccrualProcessedDate")
    lastEscrowProcessedDate = jResp.StringOf("memberCurrencies[i].lastEscrowProcessedDate")
    lastExpirationProcessRunDate = jResp.StringOf("memberCurrencies[i].lastExpirationProcessRunDate")
    lastPointsAggregationDate = jResp.StringOf("memberCurrencies[i].lastPointsAggregationDate")
    lastPointsResetDate = jResp.StringOf("memberCurrencies[i].lastPointsResetDate")
    loyaltyMemberCurrencyName = jResp.StringOf("memberCurrencies[i].loyaltyMemberCurrencyName")
    loyaltyProgramCurrencyId = jResp.StringOf("memberCurrencies[i].loyaltyProgramCurrencyId")
    loyaltyProgramCurrencyName = jResp.StringOf("memberCurrencies[i].loyaltyProgramCurrencyName")
    memberCurrencyId = jResp.StringOf("memberCurrencies[i].memberCurrencyId")
    nextQualifyingPointsResetDate = jResp.StringOf("memberCurrencies[i].nextQualifyingPointsResetDate")
    pointsBalance = jResp.IntOf("memberCurrencies[i].pointsBalance")
    qualifyingPointsBalanceBeforeReset = jResp.IntOf("memberCurrencies[i].qualifyingPointsBalanceBeforeReset")
    totalEscrowPointsAccrued = jResp.IntOf("memberCurrencies[i].totalEscrowPointsAccrued")
    totalEscrowRolloverPoints = jResp.IntOf("memberCurrencies[i].totalEscrowRolloverPoints")
    totalPointsAccrued = jResp.IntOf("memberCurrencies[i].totalPointsAccrued")
    totalPointsExpired = jResp.IntOf("memberCurrencies[i].totalPointsExpired")
    totalPointsRedeemed = jResp.IntOf("memberCurrencies[i].totalPointsRedeemed")
    i = i + 1
Loop
i = 0
count_i = jResp.SizeOfArray("memberTiers")
Do While i < count_i
    jResp.I = i
    areTierBenefitsAssigned = jResp.BoolOf("memberTiers[i].areTierBenefitsAssigned")
    loyaltyMemberTierId = jResp.StringOf("memberTiers[i].loyaltyMemberTierId")
    loyaltyMemberTierName = jResp.StringOf("memberTiers[i].loyaltyMemberTierName")
    tierChangeReason = jResp.StringOf("memberTiers[i].tierChangeReason")
    tierChangeReasonType = jResp.StringOf("memberTiers[i].tierChangeReasonType")
    tierEffectiveDate = jResp.StringOf("memberTiers[i].tierEffectiveDate")
    tierExpirationDate = jResp.StringOf("memberTiers[i].tierExpirationDate")
    tierGroupId = jResp.StringOf("memberTiers[i].tierGroupId")
    tierGroupName = jResp.StringOf("memberTiers[i].tierGroupName")
    tierId = jResp.StringOf("memberTiers[i].tierId")
    tierSequenceNumber = jResp.IntOf("memberTiers[i].tierSequenceNumber")
    i = i + 1
Loop

Curl Command

curl -G -d "memberId="
	-d "membershipNumber="
	-d "programCurrencyName="
	-H "Authorization: Bearer <access_token>"
https://domain.com/services/data/v{{version}}/loyalty-programs/:loyaltyProgramName/members

Postman Collection Item JSON

{
  "name": "Member Profile",
  "protocolProfileBehavior": {
    "disableBodyPruning": true
  },
  "request": {
    "method": "GET",
    "header": [
    ],
    "body": {
      "mode": "raw",
      "raw": "",
      "options": {
        "raw": {
          "language": "json"
        }
      }
    },
    "url": {
      "raw": "{{_endpoint}}/services/data/v{{version}}/loyalty-programs/:loyaltyProgramName/members?memberId=&membershipNumber=&programCurrencyName=",
      "host": [
        "{{_endpoint}}"
      ],
      "path": [
        "services",
        "data",
        "v{{version}}",
        "loyalty-programs",
        ":loyaltyProgramName",
        "members"
      ],
      "query": [
        {
          "key": "memberId",
          "value": "",
          "description": "The ID of the loyalty program member."
        },
        {
          "key": "membershipNumber",
          "value": "",
          "description": "The membership number of the loyalty program member."
        },
        {
          "key": "programCurrencyName",
          "value": "",
          "description": "The name of the loyalty program currency associated with the member.\nUse this parameter to get the details of the member’s points-related information for a specific currency."
        }
      ],
      "variable": [
        {
          "key": "loyaltyProgramName",
          "value": ""
        }
      ]
    },
    "description": "Standard Documentation:\n\n[https://developer.salesforce.com/docs/atlas.en-us.loyalty.meta/loyalty/connect_resources_member_profile.htm](https://developer.salesforce.com/docs/atlas.en-us.loyalty.meta/loyalty/connect_resources_member_profile.htm)"
  },
  "response": [
    {
      "name": "Member Profile",
      "originalRequest": {
        "method": "GET",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{accessToken}}"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{_endpoint}}/services/data/v{{version}}/loyalty-programs/:loyaltyProgramName/members?memberId=0lMJ8000000CaRMMA0&membershipNumber=Member1&programCurrencyName=NTO Qualifying Points",
          "host": [
            "{{_endpoint}}"
          ],
          "path": [
            "services",
            "data",
            "v{{version}}",
            "loyalty-programs",
            ":loyaltyProgramName",
            "members"
          ],
          "query": [
            {
              "key": "memberId",
              "value": "0lMJ8000000CaRMMA0",
              "description": "The ID of the loyalty program member."
            },
            {
              "key": "membershipNumber",
              "value": "Member1",
              "description": "The membership number of the loyalty program member."
            },
            {
              "key": "programCurrencyName",
              "value": "NTO Qualifying Points",
              "description": "The name of the loyalty program currency associated with the member.\nUse this parameter to get the details of the member’s points-related information for a specific currency."
            }
          ],
          "variable": [
            {
              "key": "loyaltyProgramName",
              "value": "NTO Insider"
            }
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Date",
          "value": "Wed, 22 May 2024 16:16:23 GMT"
        },
        {
          "key": "Strict-Transport-Security",
          "value": "max-age=63072000; includeSubDomains"
        },
        {
          "key": "X-Content-Type-Options",
          "value": "nosniff"
        },
        {
          "key": "X-Robots-Tag",
          "value": "none"
        },
        {
          "key": "Cache-Control",
          "value": "no-cache,must-revalidate,max-age=0,no-store,private"
        },
        {
          "key": "Content-Type",
          "value": "application/json;charset=UTF-8"
        },
        {
          "key": "Vary",
          "value": "Accept-Encoding"
        },
        {
          "key": "Content-Encoding",
          "value": "gzip"
        },
        {
          "key": "Transfer-Encoding",
          "value": "chunked"
        }
      ],
      "cookie": [
      ],
      "body": "{\n    \"additionalLoyaltyProgramMemberFields\": {},\n    \"associatedAccount\": null,\n    \"associatedContact\": {\n        \"contactId\": \"003J8000002Yu0ZIAS\",\n        \"email\": \"ab@email.com\",\n        \"firstName\": \"Name1\",\n        \"lastName\": \"Name2\"\n    },\n    \"canReceivePartnerPromotions\": true,\n    \"canReceivePromotions\": true,\n    \"enrollmentChannel\": \"Email\",\n    \"enrollmentDate\": \"2021-01-01\",\n    \"groupCreatedByMember\": null,\n    \"groupName\": null,\n    \"lastActivityDate\": null,\n    \"loyaltyProgramMemberId\": \"0lMJ8000000CaRMMA0\",\n    \"loyaltyProgramName\": \"NTO Insider\",\n    \"memberCurrencies\": [\n        {\n            \"additionalLoyaltyMemberCurrencyFields\": {\n                \"Level_Before_Reset__c\": null\n            },\n            \"escrowPointsBalance\": 0,\n            \"expirablePoints\": 0,\n            \"lastAccrualProcessedDate\": null,\n            \"lastEscrowProcessedDate\": null,\n            \"lastExpirationProcessRunDate\": null,\n            \"lastPointsAggregationDate\": null,\n            \"lastPointsResetDate\": null,\n            \"loyaltyMemberCurrencyName\": \"NTO Qualifying Points\",\n            \"loyaltyProgramCurrencyId\": \"0lcJ8000000CaR7IAK\",\n            \"loyaltyProgramCurrencyName\": null,\n            \"memberCurrencyId\": \"0lzJ8000000CaRMIA0\",\n            \"nextQualifyingPointsResetDate\": \"2024-12-31\",\n            \"pointsBalance\": 0,\n            \"qualifyingPointsBalanceBeforeReset\": 0,\n            \"totalEscrowPointsAccrued\": 0,\n            \"totalEscrowRolloverPoints\": 0,\n            \"totalPointsAccrued\": 0,\n            \"totalPointsExpired\": 0,\n            \"totalPointsRedeemed\": 0\n        }\n    ],\n    \"memberStatus\": \"Active\",\n    \"memberTiers\": [\n        {\n            \"additionalLoyaltyMemberTierFields\": {},\n            \"areTierBenefitsAssigned\": false,\n            \"loyaltyMemberTierId\": \"0lyJ8000000CaRMIA0\",\n            \"loyaltyMemberTierName\": \"Bronze\",\n            \"tierChangeReason\": null,\n            \"tierChangeReasonType\": null,\n            \"tierEffectiveDate\": \"2021-01-01\",\n            \"tierExpirationDate\": null,\n            \"tierGroupId\": \"0ltJ8000000CaR8IAK\",\n            \"tierGroupName\": null,\n            \"tierId\": \"0lgJ80000008OI5IAM\",\n            \"tierSequenceNumber\": 10\n        }\n    ],\n    \"memberType\": \"Individual\",\n    \"membershipEndDate\": \"2022-01-01\",\n    \"membershipLastRenewalDate\": null,\n    \"membershipNumber\": \"Member1\",\n    \"referredBy\": null,\n    \"relatedCorporateMembershipNumber\": null,\n    \"transactionJournalStatementFrequency\": \"Monthly\",\n    \"transactionJournalStatementLastGeneratedDate\": null,\n    \"transactionJournalStatementMethod\": \"Mail\"\n}"
    }
  ]
}