# 在n8n中使用BCL

> 在n8n安装BCL community node，用BCL API token连接，然后在工作流程中创建付款链接或管理表单和优惠券。
>
> Source: https://docs.bayarcash.com/zh/n8n-bcl/

[n8n](https://n8n.io)的BCL node让工作流程创建BCL付款链接和查找交易。它也能修改你的BCL表单和优惠券，不用写代码。它是一个community node，以[`n8n-nodes-bcl`](https://www.npmjs.com/package/n8n-nodes-bcl)发布在npm上。

BCL通过Bayarcash收款。请参阅[什么是Bayarcash](/zh/what-is-bayarcash/)。如果要在n8n直接调用Bayarcash API v3，请改用[Bayarcash node](/zh/n8n/)。

## 安装node

你可以在自托管（self-hosted）的n8n上安装community node。安装步骤如下：

1. 在n8n中，打开**Settings** → **Community Nodes**。
2. 安装npm包`n8n-nodes-bcl`。
3. 在工作流程中添加node时，搜索**BCL**。

[n8n的community node指南](https://docs.n8n.io/integrations/community-nodes/installation/)有完整步骤和其他安装方式。

## 连接你的BCL账号

这个node使用名为**BCL API**的凭证登录。创建凭证的步骤如下：

1. 在BCL创建一个API token。勾选**API Read**；如果要创建付款链接或修改表单和优惠券，也勾选**API Write**。请参阅[创建API token](https://docs.bcl.my/zh/api-tokens/)。
2. 在n8n中，添加一个**BCL** node，然后创建新凭证。
3. 把token粘贴到**API Token**。
4. 保存。n8n会向BCL测试这个凭证。

这个node总是使用你的正式BCL账号。它没有sandbox设置。

## node能做什么

先选择**Resource**，再选择**Operation**：

| Resource | Operation | 作用 |
|---|---|---|
| Payment Link | **Create** | 创建一个付款链接。 |
| Payment Link | **Get Transaction** | 按**Order Number**获取一笔交易。 |
| Form | **List**、**Get** | 列出你的表单，或按**Form ID**获取一个表单。 |
| Form | **Duplicate** | 复制一个表单，并设置新的标题和slug。 |
| Form | **Update Title**、**Update Slug**、**Update Content**、**Update Status**、**Update Homepage Display** | 修改表单的某一部分。 |
| Form | **Update Stock** | 设置表单产品的库存数量。 |
| Form | **Update Redirect URLs** | 设置**Success URL**和**Failed URL**。 |
| Form | **Update Webhook Settings** | 开启或关闭表单webhook，并设置它的URL和事件。 |
| Form | **Update Affiliate Settings**、**Update Facebook Pixel**、**Update TikTok Pixel** | 修改表单的affiliate和追踪设置。 |
| Coupon | **List**、**Get** | 列出你的优惠券，或按**Coupon ID**获取一张优惠券。 |
| Coupon | **Update**、**Update Status** | 修改优惠券，或开启、关闭优惠券。 |

## 创建付款链接

在工作流程中创建付款链接的步骤如下：

1. 添加一个**BCL** node，选择**Payment Link** → **Create**。
2. 填写**Amount**（以MYR计）、**Payer Name**、**Payer Email**、**Payer Telephone Number**和**Portal Key**。这些是必填栏位。**Portal Key**是你的Bayarcash portal key。请参阅[找到你的API key](/zh/api-keys/)。
3. 如有需要，打开**Additional Fields**，添加以下栏位：

   | 栏位 | 作用 |
   |---|---|
   | **Order Number** | 你自己为这笔付款设的参考号码。如果留空，BCL会自动生成一个。 |
   | **Payment Channel** | **FPX Online Banking**、**FPX Line of Credit**、**DuitNow Online Banking**、**DuitNow QR**、**SPaylater**、**Boost PayFlex**、**QRIS OB**、**QRIS Wallet**或**NETS**。 |
   | **Let User Choose Payment** | 让顾客在付款页面自己选择付款方式。 |
   | **Remarks** | 订单备注。 |

4. 运行node。把输出中的付款链接发给顾客，例如通过电邮或WhatsApp。

## 在n8n接收付款

要在顾客通过BCL表单付款时执行操作，让BCL调用一个n8n webhook：

1. 用n8n的**Webhook** node开始第二个工作流程，并复制它的URL。
2. 在BCL node中，选择**Form** → **Update Webhook Settings**，然后输入**Form ID**。
3. 开启**Enabled**，把URL粘贴到**Webhook URL**，然后选择**Events**：**Form Submit**、**Payment Success**或**Direct Debit**。

你也可以直接在BCL设置表单webhook。请参阅BCL帮助中心的[付款表单webhook payload](https://docs.bcl.my/zh/webhook-payment-form/)。该页面也列出BCL发送的栏位。

## 小贴士

- **为每个付款链接设定你自己的订单号码。** 这样**Get Transaction**就能再次找到这笔付款。
- **为n8n使用单独的token。** 以后删除这个token时，只有n8n会停止运作。你的其他App仍使用各自的token。

## 常见问题

### node出现错误“Authentication failed: Invalid or expired API token. Please check your credentials.”，我应该检查什么？

确认你把完整的BCL API token粘贴到BCL API凭证中，并且这个token在BCL里没有过期或被删除。请参阅BCL帮助中心的创建API token (https://docs.bcl.my/zh/api-tokens/)。

### 创建付款链接失败，信息最后是“Token does not have the 'api:write' ability”。为什么？

这个token只能读取。请创建一个带有API Write的新BCL API token，并把它填入凭证。已有token的权限不能更改。

### node出现错误“Validation error: The API could not process your request.”

BCL拒绝了其中一个值。信息的其余部分会列出相关栏位。请检查付款人的电邮和电话号码格式，例如012-3456789。
