# 把Gravity Forms连接到Bayarcash

> 安装Bayarcash for Gravity Forms，输入你的key并添加Bayarcash feed，让表单收取FPX、DuitNow等付款。
>
> Source: https://docs.bayarcash.com/zh/gravity-forms/

**Bayarcash for Gravity Forms**把Bayarcash加入你的Gravity Forms付款表单。你的顾客填写表单，选择付款方式，在Bayarcash页面付款，然后回到你表单的确认页面。

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

## 支持的渠道

你可以选择顾客看到哪些渠道。**Payment Channels**里的选项有：

| 渠道 | 你的顾客用什么付款 |
|---|---|
| FPX Online Banking | FPX网上银行 |
| Credit/Debit Card | 通过FPX使用信用卡账户 |
| DuitNow Online Banking | DuitNow Online Banking/Wallets |
| DuitNow QR | 任何支持DuitNow QR的银行或电子钱包App |
| ShopeePayLater | Shopee的SPayLater |
| Boost PayFlex | Boost PayFlex |
| Indonesia Online Banking | 印尼网上银行（QRIS） |
| Indonesia E-Wallet | 印尼电子钱包（QRIS） |
| NETS Singapore | NETS（新加坡） |

付款只限一次性付款，而且只接受MYR。不支持订阅和Direct Debit。一个渠道必须同时在你的Bayarcash portal开启，才能使用。请参阅[付款渠道](/zh/payment-channels/)。

## 开始之前

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

- 一个已获批准的Bayarcash商家账号。
- 你的**Personal Access Token (PAT)**、**API Secret Key**和**Portal Key**。请参阅[找到你的API key](/zh/api-keys/)。
- 已安装并启用的Gravity Forms，货币设为马来西亚令吉（MYR）。

## 安装插件

这个插件已上架WordPress.org，名称是[Bayarcash for Gravity Forms](https://wordpress.org/plugins/bayarcash-for-gravity-forms/)。安装步骤：

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

> **Note**
> 本指南以插件第2版为准。如果你的Bayarcash设置页面只有<strong>Personal Access Token (PAT)</strong>和**Portal Key**，没有**API Secret Key**或**Payment Channels**，表示你用的是旧版本。请向Bayarcash支持团队索取最新版本。

## 输入你的key

没有自己设置key的表单，都会使用全局设置页面里的key：

1. 前往**Forms** → **Settings** → **Bayarcash**。
   
2. 把你的token粘贴到**Personal Access Token (PAT)**，然后点击**Verify Token**。token有效时，会显示“Token verified successfully!”。
3. 点击**View Portal**，从**Available Portals**选择你的portal。插件会帮你填好**Portal Key**。
4. 把你的key粘贴到**API Secret Key**。
5. 在**Payment Channels**，取消勾选你不要的渠道。一开始所有渠道都已勾选。
6. 要收取真实付款，请保持**Enable Sandbox Mode**不勾选。
7. 保存。

## 把Bayarcash加入表单

每个收款的表单都需要一个Bayarcash feed。表单也需要一个产品或总额栏位，以及顾客姓名和电邮的栏位。

1. 打开表单，前往**Settings** → **Bayarcash**，然后添加一个新的feed。
2. 为feed取一个名称。
3. 在**Configuration Type**，选择**Global Configuration**，使用设置页面里的key。如果只想让这个表单使用另一个账号或portal，请选择**Form Configuration**，然后填写出现的key、渠道和sandbox设置。
4. 选择交易类型和付款金额。
5. 在<strong>Client Information.</strong>下，把**Email**和**Full Name**对应到你的表单栏位。**Phone Number**是可选的。
6. 可选：把**Purhase Description**（插件里就是这样拼写的）对应到一个栏位，这个栏位的文字会随付款一起发送。
7. 可选：设置**Cancel URL**，也就是顾客取消付款时前往的页面。如果留空，顾客会回到表单。
8. 保存feed。

表单加载后，顾客会看到**Select Payment Method**，里面列出你勾选的渠道。你可以在**Payment Completed**和**Payment Failed**通知事件发送电邮。

## 在sandbox测试

勾选**Enable Sandbox Mode**时，付款会进入Bayarcash sandbox，并使用插件内置的测试key。付款不会使用你输入的key。

1. 勾选**Enable Sandbox Mode**，然后保存。
2. 提交你的表单，在sandbox页面付款。
3. 测试成功后，取消勾选**Enable Sandbox Mode**，保存，然后进行一笔小额的真实付款，检查你自己的key。

设为**Form Configuration**的feed有自己的**Enable Sandbox Mode**勾选框，也请检查它。

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

你不需要把callback URL粘贴到商家后台（merchant dashboard）。插件会在每笔付款中附上它自己的地址，也就是你网站上的`/?callback=bayarcash-for-gravity-forms`，Bayarcash会把结果发送到那里。插件会把表单记录（entry）标为已付款、pending或失败，并在记录里添加一则备注。

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

## 小贴士

两个好习惯，让你更顺利使用Gravity Forms：

- **一定要用正式key测试一次**。Sandbox模式使用插件自己的key，所以不能证明你的key是正确的。
- **不同的促销活动使用Form Configuration**。每个表单使用不同的portal，可以在Bayarcash报告里把每个促销活动的付款分开。

## 常见问题

### 我的表单显示“Required fields (email and name) must be mapped in the feed settings.”

打开表单的Bayarcash feed，在Client Information.下，把Email和Full Name对应到你表单上的栏位。两者都是必填。

### 我的表单显示“Global Bayarcash settings are not properly configured.”

这个feed使用Global Configuration，但全局设置页面缺少一个key。前往Forms → Settings → Bayarcash，填写Personal Access Token (PAT)、Portal Key和API Secret Key。如果信息显示的是“Form-specific”，请在feed里填写key。

### 顾客看到“Payment gateway error. Please try again later.”，发生了什么事？

Bayarcash拒绝了这个付款request，表单记录也没有保存。请检查你的key，并确认你勾选的渠道已在你的portal开启。请参阅为什么我的付款失败？ (/zh/payment-failed/)。

### WordPress说缺少必需的dependencies，并要我运行composer install。我该怎么办？

插件文件不完整。请删除插件，然后用Bayarcash提供的完整版本重新安装。
