# 把GiveWP连接到Bayarcash

> 安装Bayarcash GiveWP插件，用FPX、DuitNow等渠道收取一次性捐款，并用Direct Debit收取定期捐款。
>
> Source: https://docs.bayarcash.com/zh/givewp/

**Bayarcash GiveWP**插件把Bayarcash加入你的GiveWP捐款表单。捐款人可以通过FPX、DuitNow和其他渠道捐一次，也可以通过Direct Debit每周或每月捐款。

定期捐款需要[Recurring Donations for GiveWP](https://givewp.com/addons/recurring-donations/)附加服务（add-on）。之后，Bayarcash会自动从捐款人的银行账户扣除每一笔捐款，并收取固定手续费。请参阅[用Direct Debit定期捐款](#用direct-debit定期捐款)。

安装之前想先看看插件怎样运作，可以试试[在线演示](https://givewp.bayarcash-demo.com/)。

## 支持的渠道

每个Bayarcash渠道都是一个独立的GiveWP支付网关。你想开启多少个都可以：

| GiveWP里的支付网关 | 捐款人用什么付款 |
|---|---|
| **Online Banking** | FPX网上银行。也用来运行Direct Debit定期捐款。 |
| **Online Banking (DuitNow)** | DuitNow Online Banking/Wallets |
| **Credit Card** | FPX Line of Credit：通过FPX使用信用卡账户，不是刷卡付款。请参阅[FPX Line of Credit](/zh/fpx-line-of-credit/) |
| **DuitNow QR** | 任何支持DuitNow QR的银行或电子钱包App |
| **Boost PayFlex** | Boost PayFlex |
| **Indonesia Online Banking** | 印尼网上银行（QRIS） |
| **Indonesia e-Wallet** | 印尼电子钱包（QRIS） |
| **NETS** | NETS（新加坡） |
| **Alipay** | Alipay |
| **WeChat Pay** | WeChat Pay |
| **PromptPay** | PromptPay（泰国） |

一个渠道必须同时在你的Bayarcash portal开启，才能使用。请参阅[付款渠道](/zh/payment-channels/)。

## 开始之前

设置插件之前，你需要准备好这些：

- 一个已获批准的Bayarcash商家账号。
- 你的**Personal Access Token (PAT)**、**API Secret Key**和**Portal Key**。请参阅[找到你的API key](/zh/api-keys/)。
- 已安装并启用的GiveWP，货币设为马来西亚令吉（MYR）。
- 如果要收定期捐款，需要GiveWP Recurring Donations附加服务。

## 安装插件

这个插件在WordPress.org免费提供，名称是[Bayarcash GiveWP](https://wordpress.org/plugins/bayarcash-givewp/)。安装步骤：

1. 在WordPress里，前往**Plugins** → **Add New**。
2. 搜索**Bayarcash GiveWP**，然后点击**Install**。
3. 点击**Activate**。

## 输入你的key

Bayarcash设置页面为每个渠道提供一个标签页，每个标签页保存自己的key。为每个你想使用的渠道填写它的标签页：

1. 前往**Donations** → **Settings** → **Payment Gateways**，然后打开**Bayarcash**部分。
   
2. 点击渠道的标签页，例如**Online Banking**。
3. 把你的token粘贴到**Personal Access Token (PAT)**，然后点击**Verify Token**。token有效时，会显示“PAT Token is valid”。
4. 在**Portal Key**选择你的portal。token验证有效后，列表才会出现选项。
5. 把你的key粘贴到**API Secret Key**。
6. 可选：把**Billing Fields**设为**Enabled**，让捐款人填写账单资料；把**Enable Phone field**设为**Enabled**，在一次性捐款时要求填写电话号码。
7. 点击**Save changes**。

## 开启支付网关

只输入key，Bayarcash还不会出现在你的表单上。你也需要在GiveWP开启每个支付网关：

1. 在**Donations** → **Settings** → **Payment Gateways**，打开GiveWP的支付网关列表。
2. 勾选每个你设置好的Bayarcash支付网关，例如**Online Banking**和**DuitNow QR**。
3. 可选：更改捐款人看到的名称，例如改成“Online Banking (FPX)”。
4. 保存。

## 在一个表单使用不同的key

每个捐款表单都可以使用自己的Bayarcash账号或portal。如果你想分开查看每个筹款活动的款项报告，这会很有用。在表单编辑器里，打开Bayarcash渠道的标签页，然后选择一个选项：

| 选项 | 什么时候使用 |
|---|---|
| **Global Option** | 使用Bayarcash设置页面里的key。 |
| **Customize** | 为这个表单另外输入**Personal Access Token (PAT)**、**Portal Key**和**API Secret Key**。 |
| **Disable** | 在这个表单上隐藏这个渠道。 |

## 在sandbox测试

插件跟随GiveWP的测试模式。测试模式开启时，每一笔Bayarcash付款都会进入Bayarcash sandbox，并使用你输入的key：

1. 从[sandbox商家后台（merchant dashboard）](https://console.bayarcash-sandbox.com)获取token、secret key和portal key。正式key不能在sandbox使用。
2. 开启GiveWP的测试模式。
3. 在Bayarcash设置页面输入sandbox key，然后保存。
4. 进行一笔测试捐款。
5. 测试成功后，关闭测试模式，输入你的正式key，然后再保存一次。

## 付款结果怎样传到你的网站

你不需要把callback URL粘贴到商家后台。插件会在每笔捐款中附上它自己的地址，也就是你网站上的`/give-api/bayarcash_gateway/`，Bayarcash会把结果发送到那里。插件也会每5分钟重新检查一次待处理的捐款。

如果付款成功后捐款仍然是pending，请确认你的网站是公开的、使用HTTPS，而且没有防火墙或安全插件拦截那个地址。请参阅[Callback和checksum](/zh/callbacks-and-checksum/)。

## 用Direct Debit定期捐款

有了GiveWP Recurring Donations附加服务，捐款人可以通过Direct Debit每周或每月捐款。捐款人只需签一次e-Mandate，Bayarcash就会从他们的银行账户扣除每一笔捐款。

要收取定期捐款：

1. 安装并启用GiveWP Recurring Donations。
2. 按照上面的步骤设置**Online Banking**支付网关。
3. 把表单设为定期捐款，周期选每周或每月。

在定期捐款表单上，捐款人填写**Phone Number**、**Identification Type**和**Identification Number**，然后在银行批准e-Mandate。他们的银行账户会被扣除一笔小额、不可退还的验证金额，收据上也会注明。请参阅[Direct Debit何时扣款](/zh/direct-debit-deduction-schedule/)和[e-Mandate](/zh/e-mandates/)。

## 小贴士

两个好习惯，让捐款更顺利：

- **每个筹款活动使用不同的portal**。每个表单使用自己的portal，可以在Bayarcash报告里把每个筹款活动的捐款分开。
- **定期捐款表单上的捐款人电邮要短**。Direct Debit只接受最多27个字符的电邮，太长的地址会让捐款无法完成。

## 常见问题

### Verify Token显示“Invalid PAT Token”，是什么问题？

token不正确，或者它来自另一个环境。GiveWP的测试模式开启时，请用sandbox商家后台的token。测试模式关闭时，请用正式环境商家后台的token。请参阅找到你的API key (/zh/api-keys/)。

### 捐款人看到“Email length reaches a limit of 27 characters.”，这是什么意思？

用Direct Debit定期捐款时，捐款人的电邮最多只能有27个字符。一次性捐款的上限是50个字符。请捐款人使用较短的电邮地址。

### 捐款人看到“Please tick the create account button if you want to create a subscription donation”。

定期捐款需要捐款人账号。捐款人应在捐款表单上勾选创建账号的选项，然后再试一次。

### 我的定期捐款表单上只有Online Banking选项，其他渠道去哪里了？

定期捐款通过Direct Debit收取，而Direct Debit是通过Online Banking支付网关运行的。其他Bayarcash渠道在定期捐款表单上会被隐藏，只用于一次性捐款。
