# 接入支付宝收款 | Creght AI 文档

> AI 已经能替你写支付的代码了——你只要说一句「帮我接入支付宝」，购买按钮、生成订单、跳转到支付宝、收到到账通知后标记已付款，这些它都能写好。 但有一件事 AI 替不了你： 支付宝的 APPID、密钥和收款账号，只能由你本人到支付宝开放平台…

[![Creght](https://ugc.talizen.com/_assets/site/2061660904709165056/1780797461299__creght_logo.png)帮助文档](/help.md)

[更新历史](/blogs.md)

[AI](/docs/ai/quick-create-first-website.md) [可视化](/docs/get-start.md)

开始使用

- [5 分钟快速创建第一个网站](/docs/ai/quick-create-first-website.md)
- [AI 创建网站指南](/docs/ai/ai-create-website-guide.md)
- [直接编辑：不消耗积分的内容修改](/docs/ai/ai-edit-content-guide.md)
- [使用 Pick，把其他模板的板块用到自己的网站](/docs/ai/pick-element-in-tpl.md)
- [Prompt 库](/docs/ai/prompt-lib.md)
- [AI 积分说明](/docs/ai/ai-credits-guide.md)
- [AI 模型怎么选](/docs/ai/ai-model-guide.md)
- [Creght Skill](/docs/ai/creght-skill.md)

后端

- [让网站支持登录、预约、密码页面等功能](/docs/ai/backend-database-guide.md)
- [OAuth 登录配置教程：Google 和 GitHub](/docs/ai/backend-auth-guide.md)
- [接入支付宝收款](/docs/ai/alipay-payment.md)

网站设置

- [多语言网站设置教程](/docs/ai/localization.md)
- [域名绑定教程](/docs/ai/custom-domain.md)
- [阿里云购买域名教程（新手版）](/docs/ai/aliyun-domain-registration-guide.md)
- [重定向设置教程](/docs/ai/redirects.md)
- [页面不存在时：该用重定向还是 404？](/docs/ai/redirect-or-404.md)
- [Facebook Pixel（Meta Pixel）接入教程](/docs/ai/facebook-meta-pixel.md)

高级用法

- [为不同域名配置不同默认语言](/docs/ai/domain-locale-routing.md)

后端/

# 接入支付宝收款

AI 已经能替你写支付的代码了——你只要说一句「帮我接入支付宝」，购买按钮、生成订单、跳转到支付宝、收到到账通知后标记已付款，这些它都能写好。

但有一件事 AI 替不了你： **支付宝的 APPID、密钥和收款账号，只能由你本人到支付宝开放平台去申请**。这些信息决定「钱打给谁」，支付宝只认账号主人自己操作。

所以这篇文章不讲代码，只帮你做一件事： **把支付宝那边的几项信息找齐、填对**。剩下的交给 AI。

全程三步：

1. 到支付宝开放平台拿四项信息（本文的主要篇幅）
2. 把它们填进 Creght 的「后端 → 集成」
3. 跟 AI 说一句话，它把页面接起来

## 开始之前

你需要一个 **已完成企业认证** 的支付宝账号，并且在支付宝开放平台 **签约了「电脑网站支付」**。个人账号无法签约这个产品，这是支付宝的规定，没有绕过的办法。

目前支持电脑网站支付；手机网站支付、App 支付、当面付暂不支持。

## 第一步：到支付宝开放平台拿四项信息

登录 [支付宝开放平台](https://open.alipay.com)，进入用于收款的那个应用。要拿的四项分布在两个不同的页面，下面按页面分开讲。

### 1\. APPID

在左侧「应用详情」页面顶部，一串以 `2021` 开头的数字，复制下来。

### 2\. 应用私钥与支付宝公钥

点左侧 **开发设置**，找到「开发信息」这一块，点第一行 **「接口加签方式（密钥/证书）」** 右侧的 **查看**（还没配过就显示「设置」）。

![支付宝开放平台的开发设置页面](https://fsu.creght.com/site/2066727200882692096/1785757599964__alipay_dev_settings.png)开发设置 →「开发信息」：接口加签方式和接口内容加密方式都在这里，点右侧「查看」进去取密钥。

在这个页面上做三件事：

- 用 [支付宝开放平台开发助手](https://open.alipay.com/tool)
生成一对 RSA2 密钥，选 **密钥** 模式（不要选证书模式，暂不支持）。
- 工具会给你两串： **应用私钥自己留着**（等下填进 Creght）， **应用公钥粘贴到这个页面上传**。
- 上传成功后，同一个页面会显示一串 **支付宝公钥**，复制它。

这一步最容易出错，因为前后一共出现了三串东西，名字还很像：

| 名称 | 谁生成 | 用途 | 填到哪 |
| --- | --- | --- | --- |
| 应用私钥 | 你（开发助手） | 给请求签名 | Creght 的「应用私钥」 |
| 应用公钥 | 你（开发助手） | 让支付宝验证你的签名 | 上传到支付宝， **不填进 Creght** |
| 支付宝公钥 | 支付宝 | 让你验证支付宝的通知 | Creght 的「支付宝公钥」 |

顺便看一眼这个页面上的 **支付宝网关地址**，正式环境就是 `https://openapi.alipay.com/gateway.do`，所以 Creght 里的「网关地址」留空即可。

### 3\. AES 密钥（大多数人可以跳过）

只有「开发信息」第二行 **「接口内容加密方式」** 显示「已设置」时才需要它：点 **查看**，复制那串 Base64。没设置过就跳过，后面的步骤都不受影响。

### 4\. 收款账号 PID

这一项不在「开发设置」里，而在另一个页面：打开
[合作伙伴身份页面](https://openhome.alipay.com/platform/keyManage.htm?keyType=partner)
（或左侧 **密钥管理 → mapi 网关产品密钥**），页面顶部的「合作伙伴身份（PID）」就是它，点 **复制**。

![支付宝开放平台的合作伙伴身份页面](https://fsu.creght.com/site/2066727200882692096/1785757601602__alipay_pid.png)密钥管理 → mapi 网关产品密钥：顶部「合作伙伴身份（PID）」就是收款账号 PID。

它是一串以 `2088` 开头的数字，代表实际收款的账号。Creght 用它核对「这笔钱确实是打给你的」，所以必须和你实际收款的账号一致。

## 第二步：填进 Creght

打开编辑器的 **后端 → 集成**，在「添加应用」里选 **支付宝**，按下表填写：

| 字段 | 填什么 |
| --- | --- |
| 名字 | 自己看的名称。同一个网站接多份时用来区分，例如「主收款账号」 |
| 渠道 tag | 用来区分多份配置，默认 `default` 就够。只有两个收款账号才需要两个不同的 tag |
| 应用私钥 | 上一步自己留着的那串（不是应用公钥） |
| APPID | 上一步那串以 2021 开头的数字 |
| 收款账号 PID | 上一步那串以 2088 开头的数字 |
| 支付宝公钥 | 支付宝给你的那串（不是你自己的应用公钥） |
| 异步通知地址 | `https://你的正式域名/func/alipay.notify`，照着填，见下方说明 |
| 支付后返回地址 | 可选。付款后跳回哪个页面，只影响体验 |
| AES 密钥 | 只有开了内容加密才填，大多数人留空 |
| 网关地址 | 留空即正式环境。只有用沙箱测试才填沙箱网关 |

**「异步通知地址」照着填就好，不用自己创建任何东西。** 一笔钱到没到账， **只能** 由支付宝的服务器回调你的网站来告知（用户付完款跳回页面这件事不算凭据，因为那个页面谁都能直接打开）。 `/func/alipay.notify` 是固定写法，AI 在第三步会替你把这个接收地址建好，所以你现在直接填上它即可。

域名要填你网站 **正式对外访问** 的那个——绑定的自定义域名，或者发布后 Creght 给你的正式域名，必须是 https。 **不要填预览域名**，支付宝的线上通知发不到预览域名。以后换了域名，记得回来把这一格改掉。

点保存时，Creght 会 **真的调用一次支付宝** 来验证这套信息，一次验四件事：APPID 是否存在、应用私钥和你上传的应用公钥是否配对、支付宝公钥对不对、网关选得对不对。填错当场就报错，不用等到有客户付款才发现。

## 保存时报错了怎么办

| 报错里出现 | 原因和处理 |
| --- | --- |
| `isv.invalid-signature` | 应用私钥和上传给支付宝的应用公钥不是同一对。重新用开发助手生成一对，私钥填 Creght、公钥传支付宝 |
| `isv.invalid-app-id` | APPID 填错，或者用了沙箱的 APPID 但没填沙箱网关 |
| 提到「支付宝公钥」验签失败 | 「支付宝公钥」填成了自己的应用公钥。回开放平台复制支付宝显示的那一串 |
| `isv.decrypt-error` | AES 密钥不对，或支付宝后台改过它 |
| `isv.insufficient-isv-permissions` | 这个应用没签约「电脑网站支付」，去开放平台的产品签约里开通 |
| 「应用私钥格式不对」 | 私钥内容不完整。PKCS#8 和 PKCS#1 都支持，带不带 BEGIN/END 头都行，但不能少字符或夹杂多余内容 |

## 第三步：让 AI 把页面接起来

保存成功之后，回到编辑器，跟 AI 说一句：

> 我已经集成了支付宝，帮我在页面上接入支付宝。

AI 会替你把余下的事做完：建好接收到账通知的地址、生成订单、把「购买」按钮连到支付宝、收到通知后标记已付款。如果你顺便说清楚要卖什么、付完款给什么，效果会更好，例如：

> 我已经集成了支付宝，帮我在课程详情页加一个「立即购买」按钮。付款成功后显示购买成功，并且我能在后台看到所有订单。

AI 写完之后 **要发布网站**：支付宝只会把到账通知发到已发布的正式域名，没发布就收不到通知。以后每次改动和支付有关的代码，也都要重新发布一次。

## AI 做完之后，确认这三点

这三点是收款的安全底线，AI 默认会处理，你也可以直接问它确认：

- **价格由服务端的商品数据决定**，不能由浏览器传上来——否则等于让顾客自己定价。
- **只有验签通过的支付宝通知才算付款成功**，用户跳回页面不算。
- **同一笔订单的通知会重复到达**，所以发货或开通权限要做到重复通知也只生效一次。

想让 AI 有更明确的参考，可以把这个链接一起发给它：
[使用集成接入支付宝支付](/api/func-alipay-integration.md)——那是写给开发者和 AI 看的代码文档，你不需要自己读。

## 上线前一定要真付一笔

支付宝提供沙箱环境，可以不动真钱走完整个流程。沙箱有 **自己独立的 APPID、密钥和网关地址**，不能和正式环境混用：用沙箱就在「网关地址」里填沙箱网关，APPID 和密钥也都换成沙箱那一套。

**但沙箱测通不等于正式环境能用。** 正式上线前，把某个商品价格临时改成 0.01 元，在正式域名上真实付一笔，确认网站收到了通知、订单变成已支付。这一步没有替代品。

## 常见问题

**付款成功了，但网站没反应？** 按顺序查三件事：集成里的「异步通知地址」是不是已发布正式域名下的 https 地址；网站是不是已经发布（改完支付相关代码要重新发布）；这个地址和 AI 实际创建的地址是否一致——直接问 AI「我的支付宝通知地址是什么」就能对上。

**能接两个收款账号吗？** 可以。添加两份支付宝集成，给它们 **不同的渠道 tag**，然后告诉 AI 哪个页面用哪个 tag 收款。注意同一个 tag 不能标在两份支付配置上——那会报错，因为订单和收款账号必须一一对应。

**密钥会泄漏吗？** 不会。应用私钥只保存在服务端，签名和验签都由平台完成，网站代码、日志和浏览器都拿不到它。支付类集成也不允许把密钥暴露给代码，所以 AI 写出的代码里同样看不到你的密钥。

本文目录

- [开始之前](#开始之前)
- [第一步：到支付宝开放平台拿四项信息](#第一步-到支付宝开放平台拿四项信息)
- [1\. APPID](#1-appid)
- [2\. 应用私钥与支付宝公钥](#2-应用私钥与支付宝公钥)
- [3\. AES 密钥（大多数人可以跳过）](#3-aes-密钥-大多数人可以跳过)
- [4\. 收款账号 PID](#4-收款账号-pid)
- [第二步：填进 Creght](#第二步-填进-creght)
- [保存时报错了怎么办](#保存时报错了怎么办)
- [第三步：让 AI 把页面接起来](#第三步-让-ai-把页面接起来)
- [AI 做完之后，确认这三点](#ai-做完之后-确认这三点)
- [上线前一定要真付一笔](#上线前一定要真付一笔)
- [常见问题](#常见问题)

![Creght](https://ugc.talizen.com/_assets/site/2061660904709165056/1780797461299__creght_logo.png)

此网站使用 [Creght](/) 创建

![微信客服](https://fsu.creght.com/site/2066727200882692096/1785119134612__image.png)

微信客服

## 链接

- [价格](/price.md)
- [解决方案](/solution.md)
- [客户案例](/customers.md)
- [帮助中心](/help.md)
- [联系我们](/contact.md)
- [更新记录 & 博客](/blogs.md)
- [退款说明](/tuikuan.md)

## 资源

- [全部资源](/resources.md)
- [模板](/templates.md)
- [组件库](https://creghtlib.site.creght.com)
- [动效库](/design/effects.md)
- [Figma to Creght](/figma2creght.md)
- [API](/api.md)

## 产品对比

- [对比上线了](/creght-vs-sxl.md)
- [对比凡科建站](/creght-vs-fkw.md)
- [自己写代码 vs Creght](/compare/self-coding.md)
- [外包 vs 自己做](/compare/outsourcing.md)

## 协议

- [用户协议](/legal/terms.md)
- [隐私政策](/legal/privacy.md)
- [可接受使用政策](/legal/acceptable-use.md)

## 社交媒体

- [小红书](https://www.xiaohongshu.com/user/profile/5a38606811be10715f4895b6)
- [哔哩哔哩](https://space.bilibili.com/513308095)

[蜀ICP备2023038192号-2](https://beian.miit.gov.cn)
