Services
Methods
tokenize
Elements' values can be securely tokenized utilizing our tokenize services. To accomplish this, simply pass the Element instance in the payload.
let body: [String: Any] = [
"data": [
"property": <BasisTheory Element instance>,
"myProp": "myValue"
],
"search_indexes": ["{{ data.property }}"],
"type": "token"
]
BasisTheoryElements.tokenize(body: body, apiKey: "<YOUR PUBLIC API KEY>")
{ data, error in ... }
Note that tokenize
requires the use of a public API key during initialization (an API key issued to a public
Application). Click here to create one in the Basis Theory portal.
The callback provided calls your function with a data
of type AnyCodable
, and an error
of type Error
.
createToken
Elements' values can be securely tokenized utilizing our createToken services. To accomplish this, simply pass the Element instance in the payload.
let body: CreateToken = CreateToken(type: "token", data: [
"property": <BasisTheory Element instance>,
"myProp": "myValue",
], searchIndexes: ["{{ data.property }}"])
BasisTheoryElements.createToken(body: body, apiKey: "<YOUR PUBLIC API KEY>")
{ data, error in ... }
Note that createToken
requires the use of a public API key during initialization (an API key issued to a public
Application). Click here to create one in the Basis Theory portal.
The callback provided calls your function with a data
of type CreateTokenResponse
, and an error
of type Error
.
proxy
Proxy provides a simple way to retrieve data back into an element utilizing our proxy service. To accomplish this, simply construct your proxy request like this:
let proxyHttpRequest = ProxyHttpRequest(method: .post, body: [
"testProp": "testValue",
"objProp": [
"nestedTestProp": "nestedTestValue"
]
], headers: [
"X-My-Custom-Header": "headerValue",
])
BasisTheoryElements.proxy(
apiKey: "<YOUR BT API KEY>",
proxyKey: "<YOUR PROXY KEY>",
proxyHttpRequest: proxyHttpRequest)
{ response, data, error in ... }
The callback provided calls your function with a:
response
of typeURLResponse
error
of typeError
data
of typeJSON
-JSON
is a data structure that has dynamic member lookup capabilities. This allows you to traverse a response from a proxy without giving you access to read any sensitive proxy response data, which means you stay compliant. To tokenize a JSON property from a proxy response, traverse the JSON using dot or bracket notation and retrieve the value using theelementValueReference
. As of now, only numbers, booleans, and strings can be retrieved using this method. Below is an example of how you can use a response from a proxy with our elements.
@IBOutlet private weak var myTextElement: TextElementUITextField!
...
BasisTheoryElements.proxy(
apiKey: "<YOUR BT API KEY>",
proxyKey: "<YOUR PROXY KEY>",
proxyHttpRequest: proxyHttpRequest)
{ response, data, error in
myTextElement.setValue(elementValueReference: data.my?.nested?.property?.elementValueReference)
let body: CreateToken = CreateToken(type: "token", data: [
"myProxyResponse": textElement,
])
BasisTheoryElements.createToken(body: body, apiKey: "<YOUR PUBLIC API KEY>")
{ data, error in print(data) }
}
Errors
Error | Description |
---|---|
TokenizingError.applicationTypeNotPublic | The Application API key used is not of type public . Create a public API key through this link. |
TokenizingError.invalidInput | An element instance used in a tokenization request is invalid. Check the element events on each element to determine which one is invalid. |
ProxyError.invalidRequest | The proxy request is malformed. Revise the proxy request being attempted. |
ErrorResponse.error | An instance of ErrorResponse enum gets returned when there's an error from the BasisTheory API. |
ErrorResponse enum
Order | Associated Value Name | Description |
---|---|---|
1 | status | An Int describing the response status code |
2 | data | A Data? instance describing the response body |
3 | urlResponse | The raw UrlResponse? instance |
4 | error | The raw Error instance |
The ErrorResponse
enum can be imported from the BasisTheory Swift SDK through import BasisTheory
.