---
sourceType: official-guide
sourceTypeMatchedRule: fallback
slug: MA/checkoutSdk/apis/selectPaymentMethod
title: selectPaymentMethod
---
Đối tác sử dụng API này để gửi thông tin phương thức thanh toán mong muốn hiển thị và nhận kết quả phương thức thanh toán mà người dùng lựa chọn

### Parameters

#### Object _object_

| Property       | Type                                                              | Default | Description                                                                                 | Example                                                                   |
| -------------- | ----------------------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| channels       | Array\<\{method: string, subMethod?: string; subInfo?: string\}\> |         | Phương thức thanh toán muốn hiển thị. Các phương thức này đảm bảo đã khai báo trên hệ thống | \[\{method: "BANK", subMethod: "ABC Bank", subInfo: "4321\*\*\*0123" \}\] |
| selectedMethod | Object\<\{method: string, subMethod?: string\}\>                  |         | Phương thức thanh toán người dùng đã chọn trước đó.                                         | \{method: "MOMO", subMethod: ""\}                                         |
| success        | function                                                          |         | Callback function khi gọi api thành công                                                    |                                                                           |
| fail           | function                                                          |         | Callback function khi gọi api thất bại                                                      |                                                                           |

:::info Đối với subMethod
**subMethod** được sử dụng trong trường hợp đối tác có 2, 3 thông tin con trong 1 phương thức. Ví dụ:

Với phương thức "BANK", có 2 ngân hàng con là "MSB" và "Vietin", đối tác có thể truyền 2 phương thức như sau:


```js
[
  { method: "BANK", subMethod: "MSB" },
  { method: "BANK", subMethod: "Vietin" }
];
```

:::

### Return Values

#### Promise \

| Property    | Type    | Description                                                                                                              |
| ----------- | ------- | ------------------------------------------------------------------------------------------------------------------------ |
| method      | string  | Mã phương thức thanh toán. Nếu phương thức được Checkout SDK hỗ trơ, vui lòng tham khảo [tại đây](/docs/MA/checkoutSdk/method) |
| isCustom    | boolean | Loại phương thức thanh toán (Checkout SDK hỗ trợ hay phương thức riêng)                                                  |
| logo        | string  | Logo của phương thức thanh toán tương ứng                                                                                |
| displayName | string  | Tên phương thức thanh toán.                                                                                              |
| subMethod   | string  | Thông tin phương thức con                                                                                                |

### Sample Code

```jsx
import { CheckoutSDK } from "zmp-sdk/apis";

// Gọi API mở trang lựa chọn phương thức thanh toán
CheckoutSDK.selectPaymentMethod({
  channels: [
    { method: "ZALOPAY_SANDBOX", subInfo: "0123***789" },
    { method: "MOMO_SANDBOX" },
    {
      method: "BANK_SANDBOX",
      subMethod: "bank1",
      subInfo: "This is bank sandbox method 1"
    },
    {
      method: "BANK_SANDBOX",
      subMethod: "bank2",
      subInfo: "This is bank sandbox method 2"
    }
  ],
  success: (data) => {
    // Lựa chọn phương thức thành công
    const { method, isCustom, logo, displayName, subMethod } = data;
  },
  fail: (err) => {
    // Tắt trang lựa chọn phương thức hoặc xảy ra lỗi
    console.log(err);
  }
});
```
