Member card wallet
The member card wallet stores re-usable payment tokens against a member. This allows the member to select a previously made card without having to re-enter the card details.
- Vista stores the card token provided by the payment provider in the wallet, NOT the card number
- Member Card Wallet is only supported for Cinema Connector Payments and only for payment providers that support card tokens
- The card wallet does not handle token expiry itself, an expired token will simply result in a declined payment and the customer will have to re-store the card.
- All card wallet actions are only available if an active loyalty session exists against the
userSessionId
Storing a card in the wallet
To store a card to the wallet the SaveCardToWallet
flag must be set on the payment during CompleteOrder. The payment connector will return a token representing the card upon successful payment which is stored in Vista.
POST: /RESTTicketing.svc/order/payment
{
"PerformPayment": true,
"UserSessionId": "b47e5287860b9c906125343c8dab09c2",
"CustomerName": "Bette Davis",
"CustomerEmail": "bette.davis@hollywood.org",
"PaymentInfo": {
"CardNumber": "4111111111111111",
"CardCVC": "123",
"CardExpiryMonth": "05",
"CardExpiryYear": "23",
"CardType": "VISA",
"PaymentValueCents": 1000,
"SaveCardToWallet":true,
}
}
Retrieving stored cards
Any stored cards for a member can be returned via the GetCardWallet endpoint. The CardType
and MaskedCardNumber
should be enough for the customer to recognise and choose appropriately.
POST: /RESTTicketing.svc/wallet
Request:
{
"UserSessionId": "b47e5287860b9c906125343c8dab09c2"
}
Response:
{
"ResultCode": 0,
"Cards": [
{
"AccessToken": "3C18ACCF-956C-44E7-B30E-36D4BC75987F",
"MaskedCardNumber": "............1111",
"CardExpiry": "20201231",
"CardType": "VISA"
},
{
"AccessToken": "11e12ac6-e936-4d34-a515-0ee9a9e6843b",
"MaskedCardNumber": "............5311",
"CardExpiry": "20201125",
"CardType": "MASTERCARD"
}
]
}
Using stored cards
Using a stored card requires providing a token in the WalletAccessToken
parameter of the CompleteOrder payment information in lieu of the actual card details.
POST: /RESTTicketing.svc/order/payment
Request:
{
"PerformPayment": true,
"UserSessionId": "b47e5287860b9c906125343c8dab09c2",
"CustomerName": "Bette Davis",
"CustomerEmail": "bette.davis@hollywood.org",
"PaymentInfo": {
"PaymentValueCents": 1000,
"WalletAccessToken": "3C18ACCF-956C-44E7-B30E-36D4BC75987F"
}
}
In the response the actual card used for the payment should be returned.
Response:
{
"Result": 0,
"VistaBookingId": "WR6R2FG",
"PaymentInfoCollection": [
{
"CardNumber": "411111......1111",
"CardType": "VISA",
"CardExpiryMonth": "12",
"CardExpiryYear": "2020",
"PaymentValueCents": 1000,
"PaymentTenderCategory": "CREDIT",
"PaymentStatus": "P",
"BillingValueCents": 1000,
"CardBalance": 0
}
]
}
Removing stored cards
Stored cards can be removed via the RemoveCardWallet endpoint
DELETE: /RESTTicketing.svc/wallet
Request:
{
"UserSessionId": "b47e5287860b9c906125343c8dab09c2",
"AccessToken": "3C18ACCF-956C-44E7-B30E-36D4BC75987F"
}