# UniPay > UniPay 是商户自有支付宝账户的收款网关和付款服务。提供易支付 v1 收款、HMAC-SHA256 付款和签名通知。本文档无需登录或 JavaScript,不包含真实商户凭据。 下列 URL 均相对于本文件所在服务的源站。调用接口时使用该源站或商户后台给出的网关地址;示例中的 pay.example.com 是占位域名。 ## Documentation - [完整对接文档](/llms-full.txt): 完整 Markdown 纯文本,包含收款和付款规则、字段、签名、状态、回调、错误及 Python 示例。建议优先读取。 - [收款指南](/docs/integration.md): 易支付 MD5、创建订单、主动查单和异步通知。 - [付款指南](/docs/payouts.md): 独立付款密钥、HMAC-SHA256、支付宝转账、幂等和不确定结果处理。 - [OpenAPI 3.1](/openapi.json): 商户业务接口的结构化请求、响应与回调定义。 - [文档网页](/docs): 服务端渲染的完整文档,供人阅读。 ## Integration constraints - 收款密钥和付款 API 密钥不同,仅从业务服务端环境读取;不要要求用户把真实密钥粘贴到聊天。 - 收款 money 为人民币元字符串;付款 amount_cents 为整数分。 - POST /submit.php 是 URL 编码表单,成功返回浏览器 302 跳转,不是 JSON。 - GET /api.php 仅支持 act=order 和 out_trade_no,不能用 trade_no 查询;HTTP 200 后还须检查 code 和 trade_status。 - MD5 签名排除 sign、sign_type 和空字符串,按参数名排序原始值,直接追加收款 key 后取 UTF-8 MD5。 - 付款签名覆盖实际发送的 JSON 原始字节;64 字符付款密钥按 UTF-8 使用,不要 hex-decode。 - 202 只表示付款受理;超时、5xx、processing 或查无此单不表示付款失败。保持原业务单号查询或重试,不能新建单号重复打款。 - 回调必须验签并核对商户、订单和金额,持久化幂等处理后返回 success;浏览器跳转不作为入账依据。