@rnw-community/react-native-payments
Version:
Accept Payments with Apple Pay and Android Pay using the Payment Request API.
45 lines (31 loc) • 1.98 kB
Markdown
# `IosPKToken`
## What & why
The Apple Pay token exposed as `paymentResponse.details.applePayToken` on an
[`IosPaymentResponse`](./ios-payment-response.md), carrying the PassKit payment data. Reach for it to read the
tokenized card data to send to your payment gateway.
## How
| Member | Type | Notes |
| --- | --- | --- |
| `paymentData` | `IosPaymentData` | The still-**encrypted** payment token envelope (`data`, `header`, `signature`, `version`) — send it to your e-commerce backend, where it is decrypted with your payment processing certificate and submitted to your payment processor. |
| `paymentMethod.displayName` / `.network` / `.type` | `string` / `string` / `IosPKPaymentMethodType` | Describes the card used for the payment. |
| `transactionIdentifier` | `string` | Correlates the payment attempt with Apple's servers. |
## Example
```ts
import { IosPaymentResponse } from '@rnw-community/react-native-payments';
const response = await paymentRequest.show();
if (response instanceof IosPaymentResponse) {
const token = response.details.applePayToken;
token.transactionIdentifier;
}
```
## Pitfalls
- `IosPKToken` is a plain TypeScript interface with no runtime validation of its own — constructing an object
that merely matches its shape never throws. `PaymentsError` is thrown by
[`IosPaymentResponse`](./ios-payment-response.md) when it parses a malformed or incomplete native JSON payload
(including direct construction of `IosPaymentResponse` with malformed tokenization data), not by this token
type — see [guides/errors.md](../guides/errors.md).
- `paymentData` is never decrypted by this package — decrypt it on your backend with your payment processing
certificate before submitting it to your processor.
## References
- [Apple Pay payment token reference](https://developer.apple.com/documentation/passkit/apple_pay/payment_token_format_reference?language=objc)
- [api/ios-payment-response.md](./ios-payment-response.md)