> For AI agents: the complete documentation index is available at https://docs.halo.run/llms.txt, the full documentation bundle is available at https://docs.halo.run/llms-full.txt.

# 支付方式

在正式运营商城之前，我们需要配置至少一个可用的支付方式，目前商城支持的支付方式包括：

- 支付宝
- 微信支付
- 易支付
- Stripe
- 银行转账（手动）
- 收款码支付（手动）

支付场景用于区分支付终端。当前销售渠道可以使用 PC 网页和小程序，实际可选场景由支付提供商决定；为小程序配置支付时，应选择提供商支持的小程序场景，再把支付方式绑定到[小程序销售渠道](https://docs.halo.run/guide/shop/sales-channels.md)。下文的提供商配置以 PC 网页支付为例。

首先登录到 Halo 控制台，进入 **商店 -> 设置 -> 支付方式** 页面，点击右上角的新建按钮。


**1️⃣ 进入支付方式页面**

![](/img/user-guide/shop/settings-payments.png)


**2️⃣ 新建支付方式**

![](/img/user-guide/shop/settings-payments-create-2.23.png)


:::note 先创建测试产品
在配置支付方式之前，建议先创建一个测试产品，方便在配置完成后进行测试。
:::

## 支付宝

### 创建支付宝应用

支付宝支付使用官方接口，买家交易的资金将直接进入商家的支付宝账户，无第三方平台介入。

在创建支付宝支付方式之前，需要先在支付宝商家平台和支付宝开放平台完成注册。

- [支付宝商家平台](https://b.alipay.com/)
- [支付宝开放平台](https://open.alipay.com/)

注册完成后，进入支付宝 [开放平台 -> 控制台](https://open.alipay.com/develop/manage)，点击 **创建网页/移动应用** 按钮：

![](/img/user-guide/shop/settings-payments-alipay-create-app.png)

其中 **应用类型** 选择网页应用，其他参数按照实际情况填写即可。

### 获取支付宝配置信息

创建应用后，进入应用详情页面：

![](/img/user-guide/shop/settings-payments-alipay-app-detail.png)

- 1️⃣：应用 ID
- 2️⃣：设置接口加签方式
  - 加签方式选择 **密钥**
  - 其他流程按照支付宝的指引进行操作
  - 最后下载 **支付宝公钥证书** 到本地，后续配置时需要
- 3️⃣：接口内容加密方式，点击 **生成加密方式** 并复制密文

### 在 Halo 中配置

打开新建支付方式的界面，支付提供商选择 **支付宝支付**，并填写以下信息：

- 启用：勾选
- 名称：给用户展示的支付方式名称
- 场景：选择 **PC 网页支付**
- 网关地址：`https://openapi.alipay.com`
- 支付宝账号 ID：进入支付宝开放平台的账户中心，复制 **账号 ID**
- 应用 ID：上一步中获取的应用 ID
- 商户私钥：上一步在工具中生成的密钥文件
- 支付宝公钥：上一步中下载的 `alipayCertPublicKey_RSA2.crt` 文件内容
- 加密密钥：上一步中生成的加密密钥

配置完成之后，还需要在 [销售渠道](https://docs.halo.run/guide/shop/sales-channels.md) 中绑定该支付方式。

支付预览：

![](/img/user-guide/shop/preview-payments-alipay.png)

### 沙箱环境

访问 [沙箱应用 - 开放平台](https://open.alipay.com/develop/sandbox/app)，按照页面上的信息在 Halo 中配置即可。

## 微信支付

### 申请微信支付商户号

微信支付使用官方接口，买家交易的资金将直接进入商家的微信支付商户账户，无第三方平台介入。

在配置微信支付之前，需要先在微信支付商户平台申请商户号。

- [微信支付商户平台](https://pay.weixin.qq.com/)
- [微信支付开发文档](https://pay.weixin.qq.com/doc/v3/merchant/4012791874)

注册并完成商户认证后，进入 [微信支付商户平台](https://pay.weixin.qq.com/)，开通 **Native 支付**。

### 获取微信支付配置信息

登录微信支付商户平台后，需要获取以下配置信息：

#### 获取商户号

进入商户平台的 **账户中心 -> 商户信息**，查看您的微信支付商户号（Mch ID）。

#### 设置 API 密钥

1. 进入 **账户中心 -> API 安全 -> API v3 密钥**
2. 点击 **设置密钥** 按钮，按照提示设置 API v3 密钥（32 位字符串）
3. 请妥善保管该密钥，后续在 Halo 中配置时需要使用

#### 申请 API 证书

1. 进入 **账户中心 -> API 安全 -> 验证商户身份 -> 商户 API 证书**
2. 点击 **申请 API 证书** 或 **管理证书**
3. 按照页面指引完成操作后，下载证书文件（包含 `apiclient_cert.pem` 和 `apiclient_key.pem`）
4. 在证书管理页面可以查看到证书序列号，记录下来以便配置

#### 获取微信 AppID

1. 进入 **产品中心 -> AppID 账号管理**
2. 关联您的微信公众号、小程序或企业微信
3. 记录下对应的 AppID

### 在 Halo 中配置

打开新建支付方式的界面，支付提供商选择 **微信支付**，并填写以下信息：

- 启用：勾选
- 名称：给用户展示的支付方式名称
- 场景：选择 **PC 网页支付**
- 应用 ID：上一步获取的微信 AppID
- 商户号：上一步获取的商户号（Mch ID）
- 商户私钥：上一步下载的 `apiclient_key.pem` 文件内容
- 商户证书序列号：上一步获取的证书序列号
- API v3 密钥：上一步设置的 API v3 密钥

配置完成之后，还需要在 [销售渠道](https://docs.halo.run/guide/shop/sales-channels.md) 中绑定该支付方式。

支付预览：

![](/img/user-guide/shop/preview-payments-wechat.png)

## 易支付

### 注册易支付

访问 [易支付官网](https://z-pay.cn)，注册并登录账号。

### 开通支付渠道

访问 [易支付 -> 我的支付渠道](https://member.z-pay.cn/member/channel.html)，新增支付宝或者微信渠道，根据平台的要求填写相关信息。

开通成功之后，需要记录 **渠道 ID**，后续在 Halo 中配置时可能需要使用。

![](/img/user-guide/shop/settings-payments-zpayz-channels.png)

### 获取 API 信息

访问 [易支付 -> API 安全](https://member.z-pay.cn/member/myapi.html)，记录 **网关**、**商户 ID（PID）** 和 **商户密钥（KEY）**，后续在 Halo 中配置时需要使用。

![](/img/user-guide/shop/settings-payments-zpayz-api.png)

### 在 Halo 中配置

打开新建支付方式的界面，支付提供商选择 **易支付**，并填写以下信息：

- 启用：勾选
- 名称：给用户展示的支付方式名称
- 场景：选择 **PC 网页支付**
- 自定义图标：由于易支付同时支持微信和支付宝，推荐自定义图标来区分
- 网关地址：上一步中记录的 **网关**
- 商户号：上一步中记录的 **商户 ID（PID）**
- 商户私钥：上一步中记录的 **商户密钥（KEY）**
- 支付方式：选择 **微信** 或 **支付宝**，需要确保已经在易支付开通对应的渠道
- 支付渠道 ID：上一步中记录的 **渠道 ID**，支持填写多个，使用英文逗号, 隔开，如果不填则随机调用

配置完成之后，还需要在 [销售渠道](https://docs.halo.run/guide/shop/sales-channels.md) 中绑定该支付方式。

支付预览：

![](/img/user-guide/shop/preview-payments-zpayz.png)

## Stripe

### 登录或者注册 Stripe

访问 [Stripe 官网](https://stripe.com)，登录或者注册账号，并且需要完成必要的信息填写，确保可以正常使用 Stripe 的支付功能。

### 获取 API 信息

登录到 [Stripe 控制台](https://dashboard.stripe.com)，进入设置 -> 开发人员 -> 管理 API 密钥，复制 **密钥** 即可，后续在 Halo 中配置时需要使用。

### 创建 WebHook


### 打开工作台
![](/img/user-guide/shop/settings-payments-stripe-1.png)
### 添加接收端
切换到 WebHook 选项卡，并点击 **添加接收端**
![](/img/user-guide/shop/settings-payments-stripe-2.png)
### 选择事件
在事件中选择 `checkout.session.completed`
![](/img/user-guide/shop/settings-payments-stripe-3.png)
### 选择接收端类型
接收端类型选择 **Webhook 端点**
![](/img/user-guide/shop/settings-payments-stripe-4.png)
### 填写端点 URL
:::note 端点 URL 格式
端点 URL 的格式为：
```text
https://your-domain.com/apis/api.ecommerce.halo.run/v1alpha1/payment-providers/stripe/callback
```
其中 `your-domain.com` 需要替换为你的域名，并且需要确保该域名可以访问。
:::
![](/img/user-guide/shop/settings-payments-stripe-5.png)
最后点击 **创建** 按钮即可。
### 获取签名密钥
创建完成之后可以在页面的 **签名密钥** 部分复制 **签名密钥**，后续在 Halo 中配置时需要使用。
![](/img/user-guide/shop/settings-payments-stripe-6.png)

### 在 Halo 中配置

打开新建支付方式的界面，支付提供商选择 **Stripe**，并填写以下信息：

- 启用：勾选
- 名称：给用户展示的支付方式名称
- 场景：选择 **PC 网页支付**
- API Key：上一步中获取的 **密钥**
- WebHook Secret：上一步中获取的 **签名密钥**

配置完成之后，还需要在 [销售渠道](https://docs.halo.run/guide/shop/sales-channels.md) 中绑定该支付方式。

支付预览：

![](/img/user-guide/shop/preview-payments-stripe.png)

![](/img/user-guide/shop/preview-payments-stripe-2.png)

## 银行转账

银行转账支付方式不经过 Halo 的支付系统，仅仅是在支付的时候显示商家的银行收款信息，让买家转账到商家的银行账户，后续再通过人工审核的方式确认订单。

打开新建支付方式的界面，支付提供商选择 **银行转账**，并填写以下信息：

- 启用：勾选
- 名称：给用户展示的支付方式名称
- 场景：选择 **PC 网页支付**
- 收款银行：银行名称
- 银行支行地址：开户行地址
- 收款账户名：收款账户名称
- 收款账号：收款银行账号
- 付款说明：为用户说明转账时需要注意的事项

配置完成之后，还需要在 [销售渠道](https://docs.halo.run/guide/shop/sales-channels.md) 中绑定该支付方式。

支付预览：

![](/img/user-guide/shop/preview-payments-bank-transfer.png)

## 收款码支付

收款码支付方式不经过 Halo 的支付系统，仅仅是在支付的时候显示商家的收款码，让买家扫码支付，后续再通过人工审核的方式确认订单。

打开新建支付方式的界面，支付提供商选择 **收款码支付**，并填写以下信息：

- 启用：勾选
- 名称：给用户展示的支付方式名称
- 场景：选择 **PC 网页支付**
- 收款码二维码图片链接
- 付款说明：为用户说明扫码时需要注意的事项

配置完成之后，还需要在 [销售渠道](https://docs.halo.run/guide/shop/sales-channels.md) 中绑定该支付方式。

支付预览：

![](/img/user-guide/shop/preview-payments-qrcode.png)
