# Guna Bayarcash dalam n8n

> Install community node Bayarcash dalam n8n, sambungkan dengan Personal Access Token anda, dan cipta bayaran atau baca transaksi dalam workflow.
>
> Source: https://docs.bayarcash.com/ms/n8n/

Dengan node Bayarcash untuk [n8n](https://n8n.io), workflow anda boleh mencipta dan menyemak payment intent, serta membaca portal dan transaksi anda tanpa kod. Node ini ialah community node, diterbitkan di npm sebagai `n8n-nodes-bayarcash`, dan menggunakan Bayarcash API v3.

## Install node

Community node boleh di-install pada n8n self-hosted. Untuk install node ini:

1. Dalam n8n, buka **Settings** → **Community Nodes**.
2. Install pakej npm [`n8n-nodes-bayarcash`](https://www.npmjs.com/package/n8n-nodes-bayarcash).
3. Cari **Bayarcash** apabila anda menambah node pada workflow.

Panduan n8n tentang [cara install community node](https://docs.n8n.io/integrations/community-nodes/installation/) ada langkah penuh dan cara install yang lain.

## Sambungkan akaun Bayarcash anda

Node ini log masuk dengan credential bernama **Bayarcash API**. Untuk mencipta credential itu:

1. Tambah node **Bayarcash**. Di bawah credential, pilih untuk mencipta credential baru.
2. Isi ruangan ini:

   | Ruangan | Apa yang perlu dimasukkan |
   |---|---|
   | **Personal Access Token (PAT)** | Personal Access Token anda dari merchant dashboard. |
   | **Environment** | **Sandbox - api.console.bayarcash-sandbox.com/v3** semasa anda menguji, atau **Production - api.console.bayar.cash/v3** untuk bayaran sebenar. Nilainya **Production** sehingga anda menukarnya. |

3. Simpan. n8n menguji credential itu dengan menyenaraikan portal anda.

Guna token sandbox dengan **Sandbox** dan token production dengan **Production**. Token sandbox tidak berfungsi dalam production, dan sebaliknya.

## Fungsi node ini

Pilih **Resource**, kemudian **Operation**:

| Resource | Operation | Fungsinya |
|---|---|---|
| Payment Intent | **Create** | Mencipta bayaran dan memulangkan `url` untuk anda hantar kepada pelanggan. |
| Payment Intent | **Get Status** | Mendapatkan payment intent mengikut **Payment Intent ID**. |
| Payment Intent | **Delete** | Membatalkan payment intent mengikut **Payment Intent ID**. |
| Portal | **List All Portals** | Menyenaraikan portal anda. |
| Portal | **Get Portal Channels** | Mendapatkan satu portal berserta saluran bayarannya, mengikut **Portal ID**. |
| Transaction | **Get Transaction by ID** | Mendapatkan satu transaksi mengikut **Transaction ID**. |
| Transaction | **List Transactions** | Menyenaraikan transaksi. Tambah **Filters** untuk **Order Number**, **Status**, **Payment Channel**, **Exchange Reference Number** atau **Payer Email**. |

## Cipta payment intent

Untuk mencipta bayaran dari workflow:

1. Tambah node **Bayarcash** dan pilih **Payment Intent** → **Create**.
2. Pilih portal dalam **Portal Name or ID**. Senarai ini diambil dari akaun anda.
3. Isi **Order Number**, **Amount**, **Payer Name** dan **Payer Email**. Ruangan ini wajib.
4. Jika perlu, pilih satu atau lebih nilai **Payment Channel**. Jika anda biarkan kosong, pelanggan memilih saluran sendiri di page Bayarcash.
5. Jika perlu, isi **Payer Telephone Number**, **Callback URL** dan **Return URL**.
6. Jalankan node itu. Hantar `url` dari output-nya kepada pelanggan anda, contohnya melalui e-mel atau WhatsApp.

## Terima keputusan dalam n8n

Node Bayarcash tidak memulakan workflow dengan sendirinya. Untuk bertindak apabila bayaran selesai:

1. Mulakan workflow kedua dengan node **Webhook** n8n, dan tetapkan node itu untuk menerima POST.
2. Masukkan URL webhook itu dalam **Callback URL** semasa anda mencipta payment intent.
3. Dalam workflow callback itu, sahkan `checksum` dengan API Secret Key anda sebelum anda mempercayai data itu. Lihat [Sahkan callback dan checksum](/ms/callbacks-and-checksum/).
4. Guna **Get Transaction by ID** dengan `transaction_id` daripada callback untuk membaca rekod penuh yang terkini.

Pastikan webhook itu membalas dengan HTTP 200. Jika tidak, Bayarcash akan menghantar callback itu semula.

## Tips

- **Bina workflow pada sandbox dahulu.** Tukar **Environment** credential kepada **Production**, dengan token production, hanya selepas satu test payment berjaya sepenuhnya.
- **Guna nombor pesanan yang unik untuk setiap bayaran.** Dengan nombor ini, anda boleh padankan callback atau transaksi dengan row, deal atau invois yang memulakan workflow itu.

## Isu biasa

### Kenapa node gagal dengan ralat "Authentication failed: Invalid or expired PAT token. Please check your credentials."?

Pastikan anda paste keseluruhan Personal Access Token, dan Environment sepadan dengan tempat token itu dikeluarkan. Token sandbox hanya berfungsi dengan Sandbox, dan token production hanya berfungsi dengan Production.

### Kenapa saya dapat ralat "Forbidden" yang menyebut saluran bayaran semasa saya mencipta payment intent?

Saluran yang anda pilih dalam Payment Channel belum diaktifkan untuk akaun anda. Akaun baru hanya ada FPX. Pilih saluran lain, biarkan ruangan itu kosong, atau minta Bayarcash mengaktifkan saluran itu.

### Kenapa Get Portal Channels kata resource itu tidak wujud?

Portal ID memerlukan ID portal, bukan portal key. Jalankan List All Portals dahulu dan copy ID dari output-nya.
