Add payment data store selectors documentation (https://github.com/woocommerce/woocommerce-blocks/pull/7353)
* Add overview to payment data store docs * Add documentation for isExpressPaymentMethodActive * Add documentation for getActiveSavedToken * Remove _ from Example heading * Add documentation for getActivePaymentMethod * Add documentation for getAvailablePaymentMethods * Add documentation for getAvailableExpressPaymentMethods * Add documentation for getPaymentMethodData * Add documentation for getSavedPaymentMethods * Add documentation for getActiveSavedPaymentMethods * Add documentation for shouldSavePaymentMethod * Add documentation for getCurrentStatus * Change docs for shouldSavePaymentMethod to getShouldSavePaymentMethod * Add documentation for normal/express paymentMethodsInitialized * Add table of contents for payment method documentation
This commit is contained in:
parent
c44ecf02b6
commit
1d25169932
|
@ -0,0 +1,308 @@
|
||||||
|
# wc/store/payment
|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
|
||||||
|
- [Overview](#overview)
|
||||||
|
- [Selectors](#selectors)
|
||||||
|
- [isExpressPaymentMethodActive](#isexpresspaymentmethodactive)
|
||||||
|
- [getActiveSavedToken](#getactivesavedtoken)
|
||||||
|
- [getActivePaymentMethod](#getactivepaymentmethod)
|
||||||
|
- [getAvailablePaymentMethods](#getavailablepaymentmethods)
|
||||||
|
- [getAvailableExpressPaymentMethods](#getavailableexpresspaymentmethods)
|
||||||
|
- [getPaymentMethodData](#getpaymentmethoddata)
|
||||||
|
- [getSavedPaymentMethods](#getsavedpaymentmethods)
|
||||||
|
- [getActiveSavedPaymentMethods](#getactivesavedpaymentmethods)
|
||||||
|
- [getShouldSavePaymentMethod](#getshouldsavepaymentmethod)
|
||||||
|
- [getCurrentStatus](#getcurrentstatus)
|
||||||
|
- [paymentMethodsInitialized](#paymentmethodsinitialized)
|
||||||
|
- [expressPaymentMethodsInitialized](#expresspaymentmethodsinitialized)
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
The payment data store is used to store payment method data and payment processing information. When the payment status
|
||||||
|
changes, the data store will reflect this.
|
||||||
|
|
||||||
|
Currently, all the actions are internal-only while we determine which ones will be useful for extensions to interact
|
||||||
|
with. We do not encourage extensions to dispatch actions onto this data store yet.
|
||||||
|
|
||||||
|
## Selectors
|
||||||
|
|
||||||
|
### isExpressPaymentMethodActive
|
||||||
|
|
||||||
|
Returns whether an express payment method is active, this will be true when the express payment method is open and
|
||||||
|
taking user input. In the case of GPay it is when the modal is open but other payment methods may have different UIs.
|
||||||
|
|
||||||
|
#### _Returns_
|
||||||
|
|
||||||
|
`boolean` - Whether an express payment method is active.
|
||||||
|
|
||||||
|
#### Example
|
||||||
|
|
||||||
|
```js
|
||||||
|
const store = select( 'wc/store/payment' );
|
||||||
|
const isExpressPaymentMethodActive = store.isExpressPaymentMethodActive();
|
||||||
|
```
|
||||||
|
|
||||||
|
### getActiveSavedToken
|
||||||
|
|
||||||
|
Returns the active saved token. Payment methods that customers have saved to their account have tokens associated with
|
||||||
|
them. If one of these is selected then this selector returns the token that is currently active. If one is not selected
|
||||||
|
this will return an empty string.
|
||||||
|
|
||||||
|
#### _Returns_
|
||||||
|
|
||||||
|
`string` - The active saved token ID, or empty string if a saved token is not selected.
|
||||||
|
|
||||||
|
#### Example
|
||||||
|
|
||||||
|
```js
|
||||||
|
const store = select( 'wc/store/payment' );
|
||||||
|
const activeSavedToken = store.getActiveSavedToken();
|
||||||
|
```
|
||||||
|
|
||||||
|
### getActivePaymentMethod
|
||||||
|
|
||||||
|
Returns the active payment method's ID.
|
||||||
|
|
||||||
|
#### _Returns_
|
||||||
|
|
||||||
|
`string` - The active payment method's ID.
|
||||||
|
|
||||||
|
#### Example
|
||||||
|
|
||||||
|
```js
|
||||||
|
const store = select( 'wc/store/payment' );
|
||||||
|
const activePaymentMethod = store.getActivePaymentMethod();
|
||||||
|
```
|
||||||
|
|
||||||
|
### getAvailablePaymentMethods
|
||||||
|
|
||||||
|
Returns the available payment methods. This does not include express payment methods.
|
||||||
|
|
||||||
|
#### _Returns_
|
||||||
|
|
||||||
|
`object` - The available payment methods. This is currently just an object keyed by the payment method IDs. Each member
|
||||||
|
contains a `name` entry with the payment method ID as its value.
|
||||||
|
|
||||||
|
#### Example
|
||||||
|
|
||||||
|
```js
|
||||||
|
const store = select( 'wc/store/payment' );
|
||||||
|
const availablePaymentMethods = store.getAvailablePaymentMethods();
|
||||||
|
```
|
||||||
|
|
||||||
|
`availablePaymentMethods` will look like this:
|
||||||
|
|
||||||
|
```js
|
||||||
|
{
|
||||||
|
"cheque": {
|
||||||
|
name: "cheque",
|
||||||
|
},
|
||||||
|
"cod": {
|
||||||
|
name: "cod",
|
||||||
|
},
|
||||||
|
"bacs": {
|
||||||
|
name: "bacs",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### getAvailableExpressPaymentMethods
|
||||||
|
|
||||||
|
Returns the available express payment methods.
|
||||||
|
|
||||||
|
#### _Returns_
|
||||||
|
|
||||||
|
`object` - The available express payment methods. This is currently just an object keyed by the payment method IDs. Each
|
||||||
|
member contains a `name` entry with the payment method ID as its value.
|
||||||
|
|
||||||
|
#### Example
|
||||||
|
|
||||||
|
```js
|
||||||
|
const store = select( 'wc/store/payment' );
|
||||||
|
const availableExpressPaymentMethods = store.getAvailableExpressPaymentMethods();
|
||||||
|
```
|
||||||
|
|
||||||
|
`availableExpressPaymentMethods` will look like this:
|
||||||
|
|
||||||
|
```js
|
||||||
|
{
|
||||||
|
"payment_request": {
|
||||||
|
name: "payment_request",
|
||||||
|
},
|
||||||
|
"other_express_method": {
|
||||||
|
name: "other_express_method",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### getPaymentMethodData
|
||||||
|
|
||||||
|
Returns the current payment method data. This will change every time the active payment method changes and is not
|
||||||
|
persisted for each payment method. For example, if the customer has PayPal selected, the payment method data will be
|
||||||
|
specific to that payment method. If they switch to Stripe, the payment method data will be overwritten by Stripe, and
|
||||||
|
the previous value (when PayPal was selected) will not be available anymore.
|
||||||
|
|
||||||
|
#### _Returns_
|
||||||
|
|
||||||
|
`object` - The current payment method data. This is specific to each payment method so further details cannot be
|
||||||
|
provided here.
|
||||||
|
|
||||||
|
#### Example
|
||||||
|
|
||||||
|
```js
|
||||||
|
const store = select( 'wc/store/payment' );
|
||||||
|
const paymentMethodData = store.getPaymentMethodData();
|
||||||
|
```
|
||||||
|
|
||||||
|
### getSavedPaymentMethods
|
||||||
|
|
||||||
|
Returns all saved payment methods for the current customer.
|
||||||
|
|
||||||
|
#### _Returns_
|
||||||
|
|
||||||
|
`object` - The saved payment methods for the current customer. This is an object, it will be specific to each payment
|
||||||
|
method. As an example, Stripe's saved tokens are returned like so:
|
||||||
|
|
||||||
|
```js
|
||||||
|
savedPaymentMethods: {
|
||||||
|
cc: [
|
||||||
|
{
|
||||||
|
method: {
|
||||||
|
gateway: 'stripe',
|
||||||
|
last4: '4242',
|
||||||
|
brand: 'Visa'
|
||||||
|
},
|
||||||
|
expires: '04/24',
|
||||||
|
is_default: true,
|
||||||
|
actions: {
|
||||||
|
wcs_deletion_error: {
|
||||||
|
url: '#choose_default',
|
||||||
|
name: 'Delete'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
tokenId: 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Example
|
||||||
|
|
||||||
|
```js
|
||||||
|
const store = select( 'wc/store/payment' );
|
||||||
|
const savedPaymentMethods = store.getSavedPaymentMethods();
|
||||||
|
```
|
||||||
|
|
||||||
|
### getActiveSavedPaymentMethods
|
||||||
|
|
||||||
|
Returns the saved payment methods for the current customer that are active, i.e. the ones that can be used to pay for
|
||||||
|
the current order.
|
||||||
|
|
||||||
|
#### _Returns_
|
||||||
|
|
||||||
|
`object` - The saved payment methods for the current customer that are active, i.e. the ones that can be used to pay for
|
||||||
|
this order. This is an object, it will be specific to each payment method. As an example, Stripe's saved tokens are
|
||||||
|
returned like so:
|
||||||
|
|
||||||
|
```js
|
||||||
|
activeSavedPaymentMethods: {
|
||||||
|
cc: [
|
||||||
|
{
|
||||||
|
method: {
|
||||||
|
gateway: 'stripe',
|
||||||
|
last4: '4242',
|
||||||
|
brand: 'Visa'
|
||||||
|
},
|
||||||
|
expires: '04/24',
|
||||||
|
is_default: true,
|
||||||
|
actions: {
|
||||||
|
wcs_deletion_error: {
|
||||||
|
url: '#choose_default',
|
||||||
|
name: 'Delete'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
tokenId: 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### getShouldSavePaymentMethod
|
||||||
|
|
||||||
|
Returns whether the payment method should be saved to the customer's account.
|
||||||
|
|
||||||
|
#### _Returns_
|
||||||
|
|
||||||
|
`boolean` - Whether the payment method should be saved. True if it should be, false if it should not be.
|
||||||
|
|
||||||
|
#### Example
|
||||||
|
|
||||||
|
```js
|
||||||
|
const store = select( 'wc/store/payment' );
|
||||||
|
const shouldSavePaymentMethod = store.getShouldSavePaymentMethod();
|
||||||
|
```
|
||||||
|
|
||||||
|
### getCurrentStatus
|
||||||
|
|
||||||
|
Returns the current payment status.
|
||||||
|
|
||||||
|
#### _Returns_
|
||||||
|
|
||||||
|
`object` - The current payment status. This will be an object with the following keys, the values are all booleans:
|
||||||
|
|
||||||
|
- `isPristine` - True if the payment process has not started, does not have an error and has not finished. This is true
|
||||||
|
initially.
|
||||||
|
- `isStarted` - True if the payment process has started.
|
||||||
|
- `isProcessing` - True if the payment is processing.
|
||||||
|
- `hasError` - True if the payment process has resulted in an error.
|
||||||
|
- `hasFailed` - True if the payment process has failed.
|
||||||
|
- `isSuccessful` - True if the payment process is successful.
|
||||||
|
- `isDoingExpressPayment` - True if the payment process is being done using an express payment method.
|
||||||
|
|
||||||
|
#### Example
|
||||||
|
|
||||||
|
```js
|
||||||
|
const store = select( 'wc/store/payment' );
|
||||||
|
const currentStatus = store.getCurrentStatus();
|
||||||
|
```
|
||||||
|
|
||||||
|
### paymentMethodsInitialized
|
||||||
|
|
||||||
|
Returns whether the payment methods have been initialized.
|
||||||
|
|
||||||
|
#### _Returns_
|
||||||
|
|
||||||
|
`boolean` - True if the payment methods have been initialized, false if they have not.
|
||||||
|
|
||||||
|
#### Example
|
||||||
|
|
||||||
|
```js
|
||||||
|
const store = select( 'wc/store/payment' );
|
||||||
|
const paymentMethodsInitialized = store.paymentMethodsInitialized();
|
||||||
|
```
|
||||||
|
|
||||||
|
### expressPaymentMethodsInitialized
|
||||||
|
|
||||||
|
Returns whether the express payment methods have been initialized.
|
||||||
|
|
||||||
|
#### _Returns_
|
||||||
|
|
||||||
|
`boolean` - True if the express payment methods have been initialized, false if they have not.
|
||||||
|
|
||||||
|
#### Example
|
||||||
|
|
||||||
|
```js
|
||||||
|
const store = select( 'wc/store/payment' );
|
||||||
|
const expressPaymentMethodsInitialized = store.expressPaymentMethodsInitialized();
|
||||||
|
```
|
||||||
|
|
||||||
|
<!-- FEEDBACK -->
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[We're hiring!](https://woocommerce.com/careers/) Come work with us!
|
||||||
|
|
||||||
|
🐞 Found a mistake, or have a suggestion? [Leave feedback about this document here.](https://github.com/woocommerce/woocommerce-blocks/issues/new?assignees=&labels=type%3A+documentation&template=--doc-feedback.md&title=Feedback%20on%20./docs/third-party-developers/extensibility/checkout-payment-methods/checkout-flow-and-events.md)
|
||||||
|
|
||||||
|
<!-- /FEEDBACK -->
|
Loading…
Reference in New Issue