# 连接 HaiPay MCP Source: https://doc.haipay.net/docs/zh/ai/connect_ai_via_mcp HaiPay MCP(Model Context Protocol) 是一项开放标准的 AI 工具集成协议,让 AI 助手能够直接访问 HaiPay 的支付知识库、API 文档和技术资料。 当您需要反复查阅文档才能完成集成时,连接 MCP 可让 AI 直接理解并应用 HaiPay 的支付能力,帮助您快速集成 HaiPay API。 ## MCP 能帮您做什么 连接 HaiPay MCP 后,您可以向 AI 助手发出以下请求: * **快速接入支付功能** 示例:根据 HaiPay 文档,帮我实现一个巴西 PIX 代收接口,包含签名逻辑和回调处理。 * **查询 API 参数规范** 示例:查看菲律宾代收接口的必填字段和签名规则,生成一份参数对照表。 * **排查对接问题** 示例:订单状态一直是 PENDING,帮我查看回调通知的签名验证逻辑的描述。 * **生成对接代码** 示例:根据 HaiPay 的代收代付流程,用 Java/PHP/Python 写一个完整的支付请求示例。 * **理解业务流程** 示例:解释 HaiPay 的异步通知机制,商户需要如何响应才能确保订单状态同步。 ## 开始使用 HaiPay MCP 会将以下内容实时传递给 AI 助手: * API 文档 * 签名规则 * 错误码说明 * 支持的地区币种 这样可以让您的集成过程更加高效、准确。以下是一些连接到 HaiPay MCP 的示例: 在 Cursor 中安装 要将 Haipay MCP 服务器连接到 Cursor,点击 **在 Cursor 中安装** 按钮。若需手动连接 MCP 服务器,请按以下步骤操作: 1. 使用 Command + Shift + P (Windows 上为 Ctrl + Shift + P) 打开命令面板。 2. 搜索 “Open MCP settings”。 3. 选择 **Add custom MCP**。这会打开 `mcp.json` 文件。 在 `mcp.json` 中添加: ```json theme={null} theme={null} { "mcpServers": { "Haipay": { "url": "https://doc.haipay.net/mcp" } } } ``` 在 Cursor 的聊天中,输入 “What tools do you have available?”。Cursor 应显示 Haipay MCP 服务器为可用工具。 查看 Cursor 文档中的 [Installing MCP servers](https://docs.cursor.com/en/context/mcp#installing-mcp-servers) 了解更多详情。 在 Qoder IDE 中安装 要将 Haipay MCP 服务器连接到 Qoder,在安装本地 Qoder IDE 后,在Qoder设置中将下方Json字段添加到您的ide中: ```json theme={null} theme={null} { "mcpServers": { "Haipay": { "url": "https://doc.haipay.net/mcp" } } } ``` 查看 [Qoder文档](https://docs.qoder.com/zh/user-guide/chat/model-context-protocol)了解更多详情。 在 VS Code 中安装 要将 Haipay MCP 服务器连接到 VS Code,在安装本地 VS Code IDE 后,创建 `.vscode/mcp.json` 文件并添加: ```json theme={null} theme={null} { "servers": { "Haipay": { "type": "http", "url": "https://doc.haipay.net/mcp" } } } ``` 查看 [VS Code 文档](https://code.visualstudio.com/docs/copilot/chat/mcp-servers)了解更多详情。 # AI Skills 助力 HaiPay 集成 Source: https://doc.haipay.net/docs/zh/ai/haipay_skills 在 HaiPay 集成工作流中使用 AI。 您可以使用 AI 代理来辅助构建 HaiPay 集成。如果您在开发过程中使用大语言模型(LLM),我们提供了一套工具和最佳实践。 ## 安装 HaiPay MCP 服务器 HaiPay 的模型上下文协议(MCP)服务器定义了一组[工具](https://doc.haipay.net/mcp),AI 代理可以使用这些工具与 HaiPay API 交互并搜索我们的知识库。 请参阅 [连接 HaiPay MCP](/docs/zh/ai/connect_ai_via_mcp/) 了解安装说明。 ## Skills Skills 是 AI Agents可遵循复用的"技能书",用于完成特定任务,实现流程可复用。HaiPay 提供了一套 Skill 目录,指导代理遵循 HaiPay 集成的最佳实践。它们可从不同的平台获取,亦可在 [Haipay Skills](https://doc.haipay.net/.well-known/skills/index.json) 官站访问。 #### npx 在项目文件夹中运行以下命令。请注意,手动添加的 Skill 不会自动更新,您需要自行拉取更新。 ```bash theme={null} npx skills add https://doc.haipay.net ``` ## 使用 AI 开发平台 AI 辅助编程平台让您可以通过向大语言模型描述需求来创建应用和网站。这些平台也可以帮助您构建支付集成,而无需编写代码。 一些平台提供了自定义的 HaiPay 集成方案,让您无需创建账户即可试用 HaiPay 的支付能力。 ## 另请参阅 * [连接 HaiPay MCP](/docs/zh/ai/connect_ai_via_mcp/) * [集成指南](/docs/zh/guide/integration_guide) * [端到端测试](/docs/zh/guide/end_to_end_testing) # 巴西雷亚尔代收申请 Source: https://doc.haipay.net/docs/zh/api-reference/brl/api/collectApply docs/zh/api-reference/brl/brl.openapi.json POST /brl/collect/apply 创建代收订单

密钥私钥(生成签名)

# 巴西雷亚尔代收查询 Source: https://doc.haipay.net/docs/zh/api-reference/brl/api/collectQuery docs/zh/api-reference/brl/brl.openapi.json POST /brl/collect/query 异步通知后,通过orderNo查询二次确认状态

密钥私钥(生成签名)

# 巴西雷亚尔代付申请 Source: https://doc.haipay.net/docs/zh/api-reference/brl/api/payApply docs/zh/api-reference/brl/brl.openapi.json POST /brl/pay/apply 创建代付订单

密钥私钥(生成签名)

# 巴西雷亚尔代付查询 Source: https://doc.haipay.net/docs/zh/api-reference/brl/api/payQuery docs/zh/api-reference/brl/brl.openapi.json POST /brl/pay/query 代付订单查询

密钥私钥(生成签名)

# 信用卡代收申请 Source: https://doc.haipay.net/docs/zh/api-reference/card/api/collectApply docs/zh/api-reference/card/card.openapi.json POST /usd/collect/apply 创建代收订单

密钥私钥(生成签名)

# 信用卡代收查询 Source: https://doc.haipay.net/docs/zh/api-reference/card/api/collectQuery docs/zh/api-reference/card/card.openapi.json POST /usd/collect/query 查询代收订单

密钥私钥(生成签名)

# 信用卡代收申请 MIT模式 Source: https://doc.haipay.net/docs/zh/api-reference/card/api/mitApply docs/zh/api-reference/card/card.openapi.json POST /usd/mit/apply 代收申请 MIT模式,appId需使用美元对应的,用户支付成功后增加美元余额

密钥私钥(生成签名)

# 信用卡退款申请 Source: https://doc.haipay.net/docs/zh/api-reference/card/api/refundApply docs/zh/api-reference/card/card.openapi.json POST /usd/refund/apply 发起原信用卡交易订单的退款操作,同步返回的退款状态请注意状态值,建议以查询接口为主。

密钥私钥(生成签名)

# 信用卡退款查询 Source: https://doc.haipay.net/docs/zh/api-reference/card/api/refundQuery docs/zh/api-reference/card/card.openapi.json POST /usd/refund/refundQuery 发起退款的订单的结果查询

密钥私钥(生成签名)

# 收银台代收申请 Source: https://doc.haipay.net/docs/zh/api-reference/cashier/api/collectApply docs/zh/api-reference/cashier/cashier.openapi.json POST /global/cashier/collect/apply 创建代收订单

密钥私钥(生成签名)

# 收银台代收查询 Source: https://doc.haipay.net/docs/zh/api-reference/cashier/api/collectQuery docs/zh/api-reference/cashier/cashier.openapi.json POST /global/cashier/collect/query 代收订单查询

密钥私钥(生成签名)

# 收银台代收查询V2 Source: https://doc.haipay.net/docs/zh/api-reference/cashier/api/collectQueryV2 docs/zh/api-reference/cashier/cashier.openapi.json POST /global/cashier/collect/query/v2 代收订单查询

密钥私钥(生成签名)

# 港币代收申请 Source: https://doc.haipay.net/docs/zh/api-reference/hkd/api/collectApply docs/zh/api-reference/hk/hk.openapi.json POST /hkd/collect/apply 创建代收订单 appId需使用港元对应的,用户支付成功后增加港元余额

密钥私钥(生成签名)

# 港币代收查询 Source: https://doc.haipay.net/docs/zh/api-reference/hkd/api/collectQuery docs/zh/api-reference/hk/hk.openapi.json POST /hkd/collect/query

密钥私钥(生成签名)

# 印尼盾代收申请 Source: https://doc.haipay.net/docs/zh/api-reference/idr/api/collectApply docs/zh/api-reference/idr/idr.openapi.json POST /idr/collect/apply 创建代收订单

密钥私钥(生成签名)

# 印尼盾代收查询 Source: https://doc.haipay.net/docs/zh/api-reference/idr/api/collectQuery docs/zh/api-reference/idr/idr.openapi.json POST /idr/collect/query

密钥私钥(生成签名)

# 印尼盾代付申请 Source: https://doc.haipay.net/docs/zh/api-reference/idr/api/payApply docs/zh/api-reference/idr/idr.openapi.json POST /idr/pay/apply

密钥私钥(生成签名)

# 印尼盾代付查询 Source: https://doc.haipay.net/docs/zh/api-reference/idr/api/payQuery docs/zh/api-reference/idr/idr.openapi.json POST /idr/pay/query

密钥私钥(生成签名)

# 日圆代收申请 Source: https://doc.haipay.net/docs/zh/api-reference/jpy/api/collectApply docs/zh/api-reference/jpy/jpy.openapi.json POST /jpy/collect/apply appId需使用日圆对应的,用户支付成功后增加日圆余额

密钥私钥(生成签名)

# 日圆代收查询 Source: https://doc.haipay.net/docs/zh/api-reference/jpy/api/collectQuery docs/zh/api-reference/jpy/jpy.openapi.json POST /jpy/collect/query 查询代收订单

密钥私钥(生成签名)

# 韩元代收申请 Source: https://doc.haipay.net/docs/zh/api-reference/krw/api/collectApply docs/zh/api-reference/krw/krw.openapi.json POST /krw/collect/apply appId需使用韩元对应的,用户支付成功后增加韩元余额

密钥私钥(生成签名)

# 韩元代收查询 Source: https://doc.haipay.net/docs/zh/api-reference/krw/api/collectQuery docs/zh/api-reference/krw/krw.openapi.json POST /krw/collect/query 查询代收订单

密钥私钥(生成签名)

# 韩元代付申请 Source: https://doc.haipay.net/docs/zh/api-reference/krw/api/payApply docs/zh/api-reference/krw/krw.openapi.json POST /krw/pay/apply

密钥私钥(生成签名)

# 韩元代付查询 Source: https://doc.haipay.net/docs/zh/api-reference/krw/api/payQuery docs/zh/api-reference/krw/krw.openapi.json POST /krw/pay/query

密钥私钥(生成签名)

# 墨西哥比索代收申请 Source: https://doc.haipay.net/docs/zh/api-reference/mxn/api/collectApply docs/zh/api-reference/mxn/mxn.openapi.json POST /mxn/collect/apply 创建代收订单(墨西哥比索)

密钥私钥(生成签名)

# 墨西哥比索代收查询 Source: https://doc.haipay.net/docs/zh/api-reference/mxn/api/collectQuery docs/zh/api-reference/mxn/mxn.openapi.json POST /mxn/collect/query 查询代收订单状态

密钥私钥(生成签名)

# 墨西哥比索代付申请 Source: https://doc.haipay.net/docs/zh/api-reference/mxn/api/payApply docs/zh/api-reference/mxn/mxn.openapi.json POST /mxn/pay/apply 创建代付订单(墨西哥比索)

密钥私钥(生成签名)

# 墨西哥比索代付查询 Source: https://doc.haipay.net/docs/zh/api-reference/mxn/api/payQuery docs/zh/api-reference/mxn/mxn.openapi.json POST /mxn/pay/query 查询代付订单状态

密钥私钥(生成签名)

# HaiPay API 文档简介 Source: https://doc.haipay.net/docs/zh/api-reference/overview 快速了解 HaiPay API 文档的结构、覆盖能力和推荐阅读路径,便于按支付场景定位收单、代付、订阅。 HaiPay API 文档覆盖收银台、国际信用卡、订阅、本地收单与代付等能力,帮助商户按业务场景快速定位可用接口。 所有接口页都围绕实际调用场景组织,便于直接查看请求参数、返回结构、示例报文和调试入口。 ## 这里可以找到什么 * 发起收单、查询订单、发起代付、查询代付、退款和订阅相关接口 * 覆盖亚洲、欧洲、拉美、中东等多个国家和地区的本地支付能力 * 统一的请求格式、签名校验、异步通知与返回码说明 * 可直接联调的 API 页面,便于开发、测试和排查 ## 核心能力 适合统一收银台场景,包含下单、查询和版本化查询接口。 覆盖信用卡收单、查询、MIT 和退款等核心能力。 提供订阅发起、查询和取消接口,退款统一使用信用卡退款接口。 面向墨西哥、土耳其、巴西、东南亚和更多本地市场的支付与代付接口。 覆盖沙特、阿联酋、卡塔尔、阿曼、科威特、巴林等市场的本地化接口。 ## 推荐阅读路径 1. 先阅读 [配置与签名说明](/docs/zh/guide/config_settings_and_signature_rules_guide),确认商户参数、RSA 签名和请求格式。 2. 再查看 [接口说明](/docs/zh/guide/api_description_guide),理解公共字段、签名规则和响应结构。 3. 按业务模式进入对应 API 分组,例如收银台、信用卡、本地支付。 4. 联调前对照 [端到端测试](/docs/zh/guide/end_to_end_testing) 与 [上线清单](/docs/zh/guide/onboarding_checklist) 做完整检查。 ## 覆盖范围概览 当前 API 参考已覆盖全球通用能力与多个本地市场,包括墨西哥、土耳其、巴西、香港、新加坡、台湾、日本、韩国、菲律宾、泰国、越南、印尼、印度、马来西亚、巴基斯坦、孟加拉、埃及以及中东多国等支付能力。 如果你需要先按国家或产品浏览文档入口,也可以从 [接口文档列表](/docs/zh/guide/api_doc_list) 进入。 # 菲律宾比索代收申请 Source: https://doc.haipay.net/docs/zh/api-reference/php/api/collectApply docs/zh/api-reference/php/php.openapi.json POST /php/collect/apply appId需使用菲律宾比索对应的,用户支付成功后增加菲律宾比索余额

密钥私钥(生成签名)

# 菲律宾比索代收查询 Source: https://doc.haipay.net/docs/zh/api-reference/php/api/collectQuery docs/zh/api-reference/php/php.openapi.json POST /php/collect/query 创建代付订单 当“payType=PAYMENT_GATEWAY” 时同步返回orderNo可以直接查询 其他支付方式异步通知后,通过orderNo查询二次确认状态

密钥私钥(生成签名)

# 菲律宾比索代付申请 Source: https://doc.haipay.net/docs/zh/api-reference/php/api/payApply docs/zh/api-reference/php/php.openapi.json POST /php/pay/apply

密钥私钥(生成签名)

# 菲律宾比索代付查询 Source: https://doc.haipay.net/docs/zh/api-reference/php/api/payQuery docs/zh/api-reference/php/php.openapi.json POST /php/pay/query

密钥私钥(生成签名)

# 新加坡元代收申请 Source: https://doc.haipay.net/docs/zh/api-reference/sgd/api/collectApply docs/zh/api-reference/sgd/sgd.openapi.json POST /sgd/collect/apply appId需使用新加坡元对应的,用户支付成功后增加新加坡元余额

密钥私钥(生成签名)

# 新加坡元代收查询 Source: https://doc.haipay.net/docs/zh/api-reference/sgd/api/collectQuery docs/zh/api-reference/sgd/sgd.openapi.json POST /sgd/collect/query

密钥私钥(生成签名)

# 订阅申请 Source: https://doc.haipay.net/docs/zh/api-reference/subscription/api/subscriptionApply docs/zh/api-reference/subscription/subscription.openapi.json POST /subscription/apply 创建订阅订单

密钥私钥(生成签名)

# 取消订阅 Source: https://doc.haipay.net/docs/zh/api-reference/subscription/api/subscriptionCancel docs/zh/api-reference/subscription/subscription.openapi.json POST /subscription/cancel 取消订阅

密钥私钥(生成签名)

# 查询订阅 Source: https://doc.haipay.net/docs/zh/api-reference/subscription/api/subscriptionQuery docs/zh/api-reference/subscription/subscription.openapi.json POST /subscription/query 查询订阅订单

密钥私钥(生成签名)

# 泰铢代收申请 Source: https://doc.haipay.net/docs/zh/api-reference/thb/api/collectApply docs/zh/api-reference/thb/thb.openapi.json POST /thb/collect/apply appId需使用泰铢对应的,用户支付成功后增加泰铢余额

密钥私钥(生成签名)

# 泰铢代收查询 Source: https://doc.haipay.net/docs/zh/api-reference/thb/api/collectQuery docs/zh/api-reference/thb/thb.openapi.json POST /thb/collect/query

密钥私钥(生成签名)

# 泰铢代付申请 Source: https://doc.haipay.net/docs/zh/api-reference/thb/api/payApply docs/zh/api-reference/thb/thb.openapi.json POST /thb/pay/apply

密钥私钥(生成签名)

# 泰铢代付查询 Source: https://doc.haipay.net/docs/zh/api-reference/thb/api/payQuery docs/zh/api-reference/thb/thb.openapi.json POST /thb/pay/query

密钥私钥(生成签名)

# 土耳其里拉代收申请 Source: https://doc.haipay.net/docs/zh/api-reference/try/api/collectApply docs/zh/api-reference/try/try.openapi.json POST /try/collect/apply 创建代收订单

密钥私钥(生成签名)

# 土耳其里拉代收查询 Source: https://doc.haipay.net/docs/zh/api-reference/try/api/collectQuery docs/zh/api-reference/try/try.openapi.json POST /try/collect/query 查询代收订单状态

密钥私钥(生成签名)

# 土耳其里拉代付申请 Source: https://doc.haipay.net/docs/zh/api-reference/try/api/payApply docs/zh/api-reference/try/try.openapi.json POST /try/pay/apply 创建代付订单

密钥私钥(生成签名)

# 土耳其里拉代付查询 Source: https://doc.haipay.net/docs/zh/api-reference/try/api/payQuery docs/zh/api-reference/try/try.openapi.json POST /try/pay/query 查询代付订单状态

密钥私钥(生成签名)

# 新台币代收申请 Source: https://doc.haipay.net/docs/zh/api-reference/twd/api/collectApply docs/zh/api-reference/twd/twd.openapi.json POST /twd/collect/apply ppId需使用新台币对应的,用户支付成功后增加新台币余额

密钥私钥(生成签名)

# 新台币代收查询 Source: https://doc.haipay.net/docs/zh/api-reference/twd/api/collectQuery docs/zh/api-reference/twd/twd.openapi.json POST /twd/collect/query

密钥私钥(生成签名)

# 越南盾代收申请 Source: https://doc.haipay.net/docs/zh/api-reference/vnd/api/collectApply docs/zh/api-reference/vnd/vnd.openapi.json POST /vnd/collect/apply appId需使用越南盾对应的,用户支付成功后增加越南盾余额

密钥私钥(生成签名)

# 越南盾代收查询 Source: https://doc.haipay.net/docs/zh/api-reference/vnd/api/collectQuery docs/zh/api-reference/vnd/vnd.openapi.json POST /vnd/collect/query 查询代收订单 当payType=PAYMENT_GATEWAY时同步返回orderNo可以直接查询 其他支付方式异步通知后,通过orderNo查询二次确认状态

密钥私钥(生成签名)

# 越南盾代付申请 Source: https://doc.haipay.net/docs/zh/api-reference/vnd/api/payApply docs/zh/api-reference/vnd/vnd.openapi.json POST /vnd/pay/apply

密钥私钥(生成签名)

# 越南盾代付查询 Source: https://doc.haipay.net/docs/zh/api-reference/vnd/api/payQuery docs/zh/api-reference/vnd/vnd.openapi.json POST /vnd/pay/query

密钥私钥(生成签名)

# 支付接口 Source: https://doc.haipay.net/docs/zh/api/version2/Api **阅读该接口文档前,务必先查看 [**接口说明**](/docs/zh/guide/api_description_guide)** ## **代收API** ### **代收申请** **简要描述:** * 创建代收订单 **URL:`/{currency}/collect/apply`** 说明:appId,amount,实收结算都与对应 **路径参数:** | 参数名 | 必选 | 类型 | 说明 | | :------- | :- | :----- | :--- | | currency | 是 | String | 订单币种 | **参数:** | 参数名 | 必选 | 类型 | 说明 | | :-------------- | :- | :----- | :------------------------------------------------------------------------------ | | appId | 是 | Long | 业务ID(后台获取,与下单币种对应) | | orderId | 是 | String | 商户订单号(必须保证唯一性,长度不超过48) | | name | 是 | String | 用户姓名,推荐使用真实姓名,格式:包含firstName和lastName,以空格分割的,示例:Donald John Trump | | phone | 是 | String | 真实手机号 | | email | 是 | String | 真实电子邮件 | | amount | 是 | String | 交易金额(单位:元) | | currency | 否 | String | 币种(下单时指定交易金额币种,若与订单币种不一致,会进行汇率转换,覆盖交易金额) | | payType | 是 | String | 交易类型 | | inBankCode | 是 | String | 支付方式 | | callBackUrl | 是 | String | 用户支付成功后跳转地址 | | callBackFailUrl | 是 | String | 用户支付失败后跳转地址 | | notifyUrl | 否 | String | 回调地址 | | subject | 是 | String | 支付备注(交易标题,商品名称,支付原因) | | body | 否 | String | 备注详情 | | partnerUserId | 是 | String | 用户唯一标识(如用户ID userId),用于风控系统,必须真实有效,否则会影响交易。 格式要求:数字、大小写字母或常用符号-\~!@#\$%&\*()\_。 | | sign | 是 | String | 签名 | **中东:** | 参数名 | 必选 | 类型 | 说明 | | :------------ | :- | :----- | :------------- | | goodsName | 是 | String | 商品名称 | | goodsQuantity | 是 | String | 商品数量 | | goodsPrice | 是 | String | 商品单价 | | goodsSku | 是 | String | 商品唯一标识 | | goodsAvatar | 是 | String | 商品图(https\://) | | platform | 是 | String | 平台名称 | **返回data参数说明:** | 参数名 | 类型 | 说明 | | :----------- | :----- | :---------------------- | | orderId | String | 商户订单号 | | orderNo | String | 平台订单号 | | payUrl | String | 支付链接 | | qrCode | String | 二维码内容(payType为QR时有值) | | amount | String | 订单金额(下单币种与订单币种不一致时有值) | | exchangeRate | String | 汇率(下单币种与订单币种不一致时有值) | | orderAmount | String | 订单原始金额(下单币种与订单币种不一致时有值) | | sign | String | 签名 | **越南:** | 参数名 | 类型 | 说明 | | :----------- | :----- | :--------------------------------- | | bankCode | String | 收款银行编码(可能会与创建订单时指定的outBankCode不一致) | | bankName | String | 收款银行名称 | | bankNo | String | 收款卡号(payType为BANK\_TRANSFER时有值) | | bankUserName | String | 收款人姓名(payType为BANK\_TRANSFER时有值) | | description | String | 转账备注(payType为BANK\_TRANSFER时有值) | **埃及:** | 参数名 | 类型 | 说明 | | :------------ | :----- | :-- | | referenceCode | String | 参考码 | | bankNo | String | 参考码 | **印尼VA:** | 参数名 | 类型 | 说明 | | :----- | :----- | :--- | | bankNo | String | VA号码 | ### **代收查询** **简要描述:** * 支付方式异步通知后,可通过查询二次确认状态 **URL:`/{currency}/collect/query`** ##### **路径参数:** | 参数名 | 必选 | 类型 | 说明 | | :------- | :- | :----- | :--- | | currency | 是 | String | 订单币种 | **参数:** | 参数名 | 必选 | 类型 | 说明 | | :------ | :- | :----- | :----------------- | | appId | 是 | Long | 业务ID(后台获取,与订单币种对应) | | orderId | 是 | String | 商户订单号 | | orderNo | 否 | String | 平台订单号(响应快) | | sign | 是 | String | 签名 | 返回data参数说明 | 参数名 | 类型 | 说明 | | :----------- | :------ | :-------------------------------------------------------------------- | | orderId | String | 商户订单号(必须保证唯一性) | | orderNo | String | 平台订单号 | | amount | String | 交易金额 | | actualAmount | String | 到账金额 | | fee | String | 手续费 | | status | Integer | 状态
0:未开始
1:收款中
2:收款成功
3:收款失败
-1:异常待确认) | | payTime | String | 支付成功时间(当status=2时有值)
格式: yyyy-MM-dd HH:mm:ss
时区: 订单币种所在时区 | | errorMsg | String | 支付失败原因(当status=3时有值) | | sign | String | 签名 | ### **代收查询v2** **简要描述:** * 支付方式异步通知后,可通过查询二次确认状态 **URL:`/{currency}/collect/query/v2`** ##### **路径参数:** | 参数名 | 必选 | 类型 | 说明 | | :------- | :- | :----- | :--- | | currency | 是 | String | 订单币种 | **参数:** | 参数名 | 必选 | 类型 | 说明 | | :------ | :- | :----- | :----------------- | | appId | 是 | Long | 业务ID(后台获取,与订单币种对应) | | orderId | 是 | String | 商户订单号 | | orderNo | 否 | String | 平台订单号(响应快) | | sign | 是 | String | 签名 | 返回data参数说明 | 参数名 | 类型 | 说明 | | :---------------- | :------ | :-------------------------------------------------------------------- | | orderId | String | 商户订单号(必须保证唯一性) | | orderNo | String | 平台订单号 | | currency | String | 订单币种 | | amount | String | 交易金额 | | actualAmount | String | 到账金额 | | fee | String | 手续费 | | status | Integer | 状态
0:未开始
1:收款中
2:收款成功
3:收款失败
-1:异常待确认) | | payTime | String | 支付成功时间(当status=2时有值)
格式: yyyy-MM-dd HH:mm:ss
时区: 订单币种所在时区 | | errorMsg | String | 支付失败原因(当status=3时有值) | | originalCurrency | String | 实际支付币种 | | floatExchangeRate | String | 币种转换涉及的汇率 | | originalAmount | String | 实际支付金额 | | sign | String | 签名 | ## **代付API** ### **代付申请** **简要描述:** * 创建代付订单 **URL:`/{currency}/pay/apply`** **路径参数:** | 参数名 | 必选 | 类型 | 说明 | | :------- | :- | :----- | :--- | | currency | 是 | String | 订单币种 | **参数:** | 参数名 | 必选 | 类型 | 说明 | | :------------ | :- | :----- | :------------------------------------------------------------------------------ | | appId | 是 | Long | 业务ID(后台获取,与下单币种对应) | | orderId | 是 | String | 商户订单号(必须保证唯一性,长度不超过48) | | amount | 是 | String | 交易金额(单位:元) | | accountType | 是 | String | 账户类型 | | bankCode | 是 | String | 银行编码 | | accountNo | 是 | String | 用户账号 | | name | 是 | String | 收款人姓名 | | phone | 是 | String | 真实手机号 | | email | 是 | String | 真实电子邮件 | | notifyUrl | 否 | String | 回调地址 | | subject | 否 | String | 支付备注(交易标题,商品名称,支付原因) | | body | 否 | String | 备注详情 | | partnerUserId | 是 | String | 用户唯一标识(如用户ID userId),用于风控系统,必须真实有效,否则会影响交易。 格式要求:数字、大小写字母或常用符号-\~!@#\$%&\*()\_。 | | sign | 是 | String | 签名 | **巴西PIX:** | 参数名 | 必选 | 类型 | 说明 | | :----------- | :- | :----- | :-------------------- | | identifyType | 是 | String | 账号类型(CPF/PHONE/EMAIL) | **土耳其Papara:** | 参数名 | 必选 | 类型 | 说明 | | :----------- | :- | :----- | :------------------------------------------------------------------------------------------------------------------------------------- | | identifyType | 否 | String | bankCode为PAPARA时必填 :
PAPARA\_NUMBER(Papara Id)
PHONE(注册Papara的真实手机号)
EMAIL(注册Papara的邮箱)
TURKISH\_ID(注册Papara的身份证号) | **美国ACH:** | 参数名 | 必选 | 类型 | 说明 | | :----------- | :- | :----- | :-------- | | identifyType | 是 | String | 银行路由编码 | | country | 是 | String | 收款人所在国家 | | address1 | 是 | String | 收款地址-详细街道 | | address2 | 是 | String | 收款地址-城市 | | address3 | 是 | String | 收款地址(省、州) | | postalCode | 是 | String | 收款邮编 | 返回data参数说明 | 参数名 | 必选 | 类型 | | :------ | :----- | :---- | | orderId | String | 商户订单号 | | orderNo | String | 平台订单号 | | sign | String | 签名 | ### **代付查询** **简要描述:** * 支付方式异步通知后,可通过查询二次确认状态 **URL:`/{currency}/pay/query`** **路径参数:** | 参数名 | 必选 | 类型 | 说明 | | :------- | :- | :----- | :--- | | currency | 是 | String | 订单币种 | **参数:** | 参数名 | 必选 | 类型 | 说明 | | :------ | :- | :----- | :----------------- | | appId | 是 | Long | 业务ID(后台获取,与下单币种对应) | | orderId | 是 | String | 商户订单号 | | orderNo | 否 | String | 平台订单号(响应快) | | sign | 是 | String | 签名 | 返回data参数说明 | 参数名 | 类型 | 说明 | | :------- | :------ | :-------------------------------------------------------------------- | | orderId | String | 商户订单号(必须保证唯一性) | | orderNo | String | 平台订单号 | | amount | String | 交易金额 | | fee | String | 手续费 | | status | Integer | 订单状态
0:未开始
1:放款中
2:放款成功
3:放款失败
-1:异常待确认 | | payTime | String | 支付成功时间(当status=2时有值)
格式: yyyy-MM-dd HH:mm:ss
时区: 下单币种所在时区 | | errorMsg | String | 支付失败原因(当status=3时有值) | | sign | String | 签名 | 不同国家/地区和币种的所有支付方式以及请求参数、限额等信息,请参考 [支付方式列表](/api/version2/bankCode_list/)
const elements = applePayGooglePaySubscribe.create('applePayGooglePaySubscribe', { sandbox: true, clientToken: 'your-client-token', buttonType: 'subscribe', buttonTheme: 'black', buttonHeight: 50 }); elements.mount('#applePayGooglePayId'); elements.on('ready', (data) => { console.log('Button rendered successfully:', data); }); elements.on('error', (data) => { console.error('Payment error:', data); }); elements.on('paymentStatus', (data) => { console.log('payment status:', data); }); ``` 适合需要直接展示信用卡订阅表单,并自行控制提交时机的场景。 **推荐脚本** `https://cashier.haipay.top/js/creditCardSubscription_1.0.0.min.js` **关键参数** | 参数 | 必填 | 说明 | | :------------ | :- | :------------------------- | | `sandbox` | 是 | `true` 为测试环境,`false` 为生产环境 | | `clientToken` | 是 | 客户端令牌 | | `cardTheme` | 否 | 表单主题,默认 `white` | **典型事件** * `ready`:信用卡组件渲染完成 * `confirm`:表单提交结果 * `paymentStatus`:支付结果回调 (若不监听此事件,组件会默认处理支付结果) ```javascript theme={null}
const elements = creditCardSubscription.create('card', { sandbox: true, clientToken: 'your-client-token', cardTheme: 'white' }); elements.mount('#creditCardId'); elements.on('ready', (data) => { console.log('Card rendered successfully:', data); }); elements.on('error', (data) => { console.error('Payment error:', data); }); elements.submit(); elements.on('confirm', (data) => { console.log('confirm:', data); }); elements.on('paymentStatus', (data) => { console.log('payment status:', data); }); ```
适合希望在一个容器内同时展示 `Google Pay`、`Apple Pay` 和 `Credit Card` 的现代化订阅收银界面。 **推荐脚本** `https://cashier.haipay.top/js/paymentMethodsSubscribe_1.0.0.min.js` **关键参数** | 参数 | 必填 | 说明 | | :-------------------- | :- | :--------------------------------------------------- | | `sandbox` | 是 | `true` 为测试环境,`false` 为生产环境 | | `clientToken` | 是 | 客户端令牌 | | `themeMode` | 否 | 主题模式,默认 `light` | | `paymentMethodConfig` | 否 | 支付方式组合,默认 `["GOOGLE_PAY","APPLE_PAY","CREDIT_CARD"]` | | `applePayButtonType` | 否 | Apple Pay 按钮文案,如 `buy`、`subscribe` | | `googlePayButtonType` | 否 | Google Pay 按钮文案,如 `buy`、`subscribe` | **典型事件** * `ready`:按钮渲染完成 * `error`:初始化或支付错误 * `paymentStatus`:支付结果回调 (若不监听此事件,组件会默认处理支付结果) **适用建议** * 新收银台优先选这个模式,页面信息架构更清晰。 * 如果只开放部分支付方式,可以只传需要的组合。 * 想减少前端自定义工作量时,这个模式最省成本。 * 使用组合模式时,订阅申请接口需传 `paymentMethods` 而非 `inBankCode`,例如 `CREDIT_CARD,GOOGLE_PAY,APPLE_PAY`。 ```javascript theme={null}
const elements = paymentMethodsSubscribe.create({ sandbox: true, clientToken: 'your-client-token', themeMode: 'light', paymentMethodConfig: ['GOOGLE_PAY', 'APPLE_PAY', 'CREDIT_CARD'] }); elements.mount('#paymentId'); elements.on('ready', (data) => { console.log('rendered successfully:', data); }); elements.on('error', (data) => { console.error('Payment error:', data); }); elements.on('paymentStatus', (data) => { console.log('payment status:', data); }); ```
## 核心 API 详细请求字段、响应结构和在线调试,请直接进入 API Reference: 创建订阅订单,拉起用户授权并完成首笔订阅支付。 查询订阅状态、平台订阅号和扣款记录。 由商户主动发起取消,停止后续周期扣款。 ## 异步通知 当订阅状态变更或周期扣款完成时,HaiPay 会向商户在订阅申请时提供的 `notifyUrl` 推送异步通知。 为保障接口的扩展性和兼容性,请遵循以下回调参数接收方式: 1. **禁止**声明具体 POJO 对象接收回调参数。 2. **必须**使用通用数据结构(如 JSONObject、Map 等)进行参数解析。 3. 此设计可确保后续扩展回调字段时,不会影响验签逻辑。 收到通知后,请在响应体中返回 **SUCCESS**(大写)。 当订阅状态发生变更时触发(如订阅成功、订阅取消、订阅失败等)。 | 参数名 | 类型 | 说明 | | :----------------------- | :------ | :----------------------------------------------- | | `type` | String | 通知类型,固定为 `SUBSCRIPTION` | | `appId` | Long | 业务 ID | | `currency` | String | 币种 | | `subscriptionOrderId` | String | 商户订阅号 | | `subscriptionNo` | String | 平台订阅号 | | `amount` | String | 订阅金额 | | `status` | Integer | 订阅状态(1: 处理中, 2: 订阅成功, 3: 订阅失败, 4: 订阅取消, 5: 订阅完成) | | `recurringInterval` | String | 循环周期类型(D/W/M/Y) | | `recurringIntervalCount` | Integer | 循环周期间隔 | | `subject` | String | 订阅标题 | | `sign` | String | 签名(需要使用币种对应的业务密钥信息进行验签) | 当每期周期扣款成功或失败时触发。 | 参数名 | 类型 | 说明 | | :-------------------- | :------ | :--------------------------------- | | `type` | String | 通知类型,固定为 `SUBSCRIPTIONS_DEDUCT` | | `appId` | Long | 业务 ID | | `currency` | String | 币种 | | `subscriptionOrderId` | String | 商户订阅号 | | `subscriptionNo` | String | 平台订阅号 | | `deductNo` | String | 扣款编号 | | `orderNo` | String | 平台订单号 | | `amount` | String | 本次扣款金额 | | `status` | Integer | 扣款状态(2: 成功, 3: 失败) | | `startTime` | String | 本期扣款周期开始时间,格式: yyyy-MM-dd HH:mm:ss | | `endTime` | String | 本期扣款周期结束时间,格式: yyyy-MM-dd HH:mm:ss | | `sign` | String | 签名(需要使用币种对应的业务密钥信息进行验签) | ## 关键业务规则 | 项目 | 说明 | | :----- | :------------------------------------------------------------------------------------------------------------------------------------ | | 交易限额 | 订阅金额范围为 `0.99 - 1000 USD` | | 周期上限 | 无论周期单位是什么,最长订阅时长不能超过 3 年 | | 周期单位 | Apple Pay 不支持 `W`,周订阅请改用 `D` + `7` 天 | | 支付类型 | 订阅场景固定使用 `SUBSCRIPTION` | | 用户通知 | 订阅成功、扣款前、扣款后都建议向用户发送站外通知 | | 退订能力 | 生产环境必须在用户侧提供清晰、可访问的取消订阅入口 | | 支付方式参数 | 订阅申请接口中 `inBankCode` 和 `paymentMethods` 二选一:`inBankCode` 传入单个支付方式编码,`paymentMethods` 传入英文逗号分隔的支付方式列表。`paymentMethods` 暂时仅支持前置组件组合模式使用 | ## 测试卡号 仅限测试环境使用 **模拟支付成功** 使用以下测试卡号,CVC 填写任意 3 位数字,有效期填写任意未来日期: * `4242424242424242` **模拟支付失败** 使用以下测试卡号并填写无效信息: * 卡号:`4000000000009995` * 无效月份:`13` * 无效 CVV:`99` ## 常见理解问题 这个页面用于理解产品能力、选择接入模式和把握业务规则。进入开发联调阶段后,请直接查看 [订阅 API Reference](/docs/zh/api-reference/subscription/api/subscriptionApply) 获取完整字段、示例报文和调试入口。 订阅类交易更容易产生用户争议。清晰的授权、通知和退订能力可以显著降低拒付、投诉和风控问题,这也是订阅业务能否稳定上线的关键前置条件。 这通常表示当前生产环境不支持该地区,或当前测试方式与目标地区配置不匹配。请先确认商户配置、目标市场和支付方式组合,再联系 HaiPay 支持团队确认生产可用范围。 如果你希望最快上线、前端改动最少,选 PayUrl 跳转模式即可。如果你需要自定义收银台 UI、希望用户不离开你的页面完成支付,选 JS SDK 嵌入模式。两种模式都通过同一个订阅申请接口发起,区别只在于你使用返回的 `payUrl` 还是 `clientToken`。 两个参数二选一,不可同时传入,也不可同时为空。如果只使用一种支付方式,传 `inBankCode`;如果需要同时支持多种支付方式(如组合模式),传 `paymentMethods`。注意 `paymentMethods` 暂时仅支持前置组件组合模式使用,其他模式请继续使用 `inBankCode`。 如果选择 JS SDK 嵌入模式,优先使用"组合模式"。它能在一个容器内统一呈现多种支付方式,页面更完整,用户理解成本更低,前端开发量也更可控。 # 台湾地区支付接口 Source: https://doc.haipay.net/docs/zh/api/version2/Taiwan **阅读该接口文档前,务必先查看 [**接口说明**](/docs/zh/guide/api_description_guide)** ## **限额** | 交易类型 | 限额 | | :--- | ---------------------------- | | 代收 | 美元:0.99-499.99, 台币:100-20000 | ## **代收API** ### **代收申请** **简要描述:** * 创建代收订单 **URL:** 新台币: `/twd/collect/apply` 说明:appId需使用新台币对应的,用户支付成功后增加新台币余额 美元: `/usd/collect/apply` 说明:appId需使用美元对应的,用户支付成功后增加美元余额 **参数:** | 参数名 | 必选 | 类型 | 说明 | | :-------------- | :- | :----- | :------------------------------------------------------------------------------ | | appId | 是 | Long | 业务ID(后台获取,需要根据URL中的币种传递对应的业务ID) | | orderId | 是 | String | 商户订单号(必须保证唯一性,长度不超过48) | | name | 是 | String | 用户姓名,推荐使用真实姓名,格式:包含firstName和lastName,以空格分割的,示例:Donald John Trump | | phone | 是 | String | 真实手机号 | | email | 是 | String | 真实电子邮件 | | amount | 是 | String | 交易金额,台币下单不能包含小数 | | payType | 是 | String | 交易类型 | | inBankCode | 是 | String | [支付方式](#inBankCode) | | callBackUrl | 是 | String | 用户支付成功后跳转地址 | | callBackFailUrl | 是 | String | 用户支付失败后跳转地址 | | notifyUrl | 否 | String | 回调地址 | | subject | 是 | String | 支付备注 | | body | 否 | String | 备注详情 | | country | 否 | String | 收银台模式需要传递,固定值:158 | | currency | 否 | String | 币种(默认TWD 支持下单币种: USD,TWD) | | partnerUserId | 是 | String | 用户唯一标识(如用户ID userId),用于风控系统,必须真实有效,否则会影响交易。 格式要求:数字、大小写字母或常用符号-\~!@#\$%&\*()\_。 | | sign | 是 | String | 签名 | 返回data参数说明 | 参数名 | 类型 | 说明 | | :------ | :----- | :------------- | | orderId | String | 商户订单号(必须保证唯一性) | | orderNo | String | 平台订单号 | | payUrl | String | 支付链接 | | sign | String | 签名 | ### **代收查询** **简要描述:** * 查询代收订单 **URL:** 台币: `/twd/collect/query` 美元: `/usd/collect/query` **参数:** | 参数名 | 必选 | 类型 | 说明 | | :------ | :- | :----- | :------------------------------ | | appId | 是 | Long | 业务ID(后台获取,需要根据URL中的币种传递对应的业务ID) | | orderId | 是 | String | 商户订单号 | | orderNo | 否 | String | 平台订单号(响应快) | | sign | 是 | String | 签名 | 返回data参数说明 | 参数名 | 类型 | 说明 | | :----------- | :------ | :--------------------------------------------------------- | | orderId | String | 商户订单号(必须保证唯一性) | | orderNo | String | 平台订单号 | | amount | String | 交易金额 | | actualAmount | String | 收到金额 | | fee | String | 手续费 | | status | Integer | 状态(0未开始,1支付中,2成功(终态),3失败(终态),4部分收款(终态),5超额收款(终态), -1异常待确认) | | payTime | String | 支付成功时间(当status=2,4,5时有值)(本地时间), 格式: yyyy-MM-dd HH:mm:ss | | errorMsg | String | 支付失败原因(当status=3时有值) | | sign | String | 签名 | ### **支付方式** | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | :-- | :------------- | :------------------------ | :----------- | :- | :----------------- | | TWD | QR | JKO\_PAY\_QR | 30-20000 | 可用 | JkoPay QR | | TWD | EWALLET | JKO\_PAY\_TWD | 30-20000 | 可用 | JkoPay | | TWD | BANK\_TRANSFER | ATM | 1000-20000 | 可用 | ATM收银台 | | TWD | BANK\_TRANSFER | STORE\_IBON | 100-20000 | 可用 | 7-11超商 | | TWD | BANK\_TRANSFER | STORE\_HILIFEET | 100-20000 | 可用 | 萊爾富Life-ET | | TWD | BANK\_TRANSFER | STORE\_OKGO | 100-20000 | 可用 | OK超商OK-go | | TWD | BANK\_TRANSFER | STORE\_FAMI | 100-20000 | 可用 | 全家FAMIPORT | | TWD | BANK\_TRANSFER | STORE\_MBC\_HILIFEET | 100-20000 | 可用 | 超商行動掃碼(萊爾富Life-ET) | | TWD | BANK\_TRANSFER | STORE\_MBC\_IBON | 100-20000 | 可用 | 7-11超商行動掃碼 | | USD | EWALLET | JKO\_PAY | 0.99-499.99 | 可用 | JkoPay | | USD | BANK\_TRANSFER | LINE\_PAY\_USD | 2.99-499.99 | 可用 | LinePay | | USD | BANK\_TRANSFER | ATM\_USD | 32.99-499.99 | 可用 | ATM收银台 | | USD | BANK\_TRANSFER | STORE\_IBON\_USD | 2.99-499.99 | 可用 | 7-11超商 | | USD | BANK\_TRANSFER | STORE\_HILIFEET\_USD | 2.99-499.99 | 可用 | 萊爾富Life-ET | | USD | BANK\_TRANSFER | STORE\_OKGO\_USD | 2.99-499.99 | 可用 | OK超商OK-go | | USD | BANK\_TRANSFER | STORE\_FAMI\_USD | 2.99-499.99 | 可用 | 全家FAMIPORT | | USD | BANK\_TRANSFER | STORE\_MBC\_HILIFEET\_USD | 2.99-499.99 | 可用 | 超商行動掃碼(萊爾富Life-ET) | | USD | BANK\_TRANSFER | STORE\_MBC\_IBON\_USD | 2.99-499.99 | 可用 | 超商行動掃碼(7-11) | # 泰国支付接口 Source: https://doc.haipay.net/docs/zh/api/version2/Thailand **阅读该接口文档前,务必先查看 [**接口说明**](/docs/zh/guide/api_description_guide)** ## **限额** | 交易类型 | 限额 | | :--- | ------------------------ | | 代收 | 美元: 0.99-220, 泰铢: 1-8000 | | 付款 | 泰铢: 1-8000 | ## **代收API** ### **代收申请** **简要描述:** * 创建代收订单 **URL:** 泰铢: `/thb/collect/apply` 说明:appId需使用泰铢对应的,用户支付成功后增加泰铢余额 **URL:`/usd/collect/apply`** 说明:appId需使用美元对应的,用户支付成功后增加美元余额 **参数:** | 参数名 | 必选 | 类型 | 说明 | | :-------------- | :- | :----- | :--------------------------------------------------------------------------------------- | | appId | 是 | Long | 业务ID(后台获取,需要根据URL中的币种传递对应的业务ID) | | orderId | 是 | String | 商户订单号(必须保证唯一性,长度不超过48) | | name | 是 | String | 收款人姓名(收款人姓名格式:英文大小写且允许有空格,1-30位,"firstName middleName lastName" (middleName非必填,特殊字符支持!-) | | phone | 是 | String | 真实手机号 | | email | 是 | String | 真实电子邮件 | | amount | 是 | String | 交易金额(单位:฿,精确到小数点后两位;禁止添加标点符号,例如:”,”) | | payType | 是 | String | 交易类型 | | inBankCode | 是 | String | [支付方式](#inBankCode) | | callBackUrl | 是 | String | 用户支付成功后跳转地址 | | callBackFailUrl | 是 | String | 用户支付失败后跳转地址 | | notifyUrl | 否 | String | 回调地址 | | subject | 是 | String | 支付备注 | | body | 否 | String | 备注详情 | | partnerUserId | 是 | String | 用户唯一标识(如用户ID userId),用于风控系统,必须真实有效,否则会影响交易。 格式要求:数字、大小写字母或常用符号-\~!@#\$%&\*()\_。 | | sign | 是 | String | 签名 | request ```json theme={null} { "appId": 1054, "orderId": "M233323000059", "amount": "300", "phone": "09230219312", "email": "23423@qq.com", "name": "test", "inBankCode": "PH_QRPH_DYNAMIC", "payType": "QR", "partnerUserId": "149597870", "sign": "af0gAHkUOyYHu9owQp8NJ4mPEeUW4vuJcjdxqLIzrVw8AvpLSjD1DXupReSG/CyuSkFRyiIvCp5u703AuGGmfgD2gKDH3Ywau41bAbG2jnHJ8mtjiSJ5iWUzanyd4Kr7d1+rETbzUl7/BkW3t0X8UUFdqpxwG8DPUjAwUKfplWDHV7koG51Ozexd80DCsmW6eWdouAZ1uNXGLYmV3ftE3BmfNRtuv1C5bfTJWrTEIOxbF6g2uYOFZTlIgrQgd7/2PsAYwQQXNz8Q8CYl4OxqCv4pXJxaLWPbR5tqZu9og5kn32C9aHW/NlU1y39vzz+4ef81yPAqUV9oHlSMSPrMmw==" } ``` response ```json theme={null} { "status": "1", "error": "00000000", "msg": "", "data": { "orderId": "M233323000059", "orderNo": "6023071013539074", "payUrl": "https://a.api-uat.php.com/1L9zQS2", "bankCode": "GCASH_STATIC_VA", "bankNo": "PC0007I10000035", "qrCode": "00020101021228760011ph.ppmi.p2m0111OPDVPHM1XXX0315777148000000017041652948137245442930503001520460165303608540810000.php Of Mandalu62310010ph.allbank05062110000803***88310012ph.ppmi.qrph0111OPDVPHM1XXX63042763", "sign": "YEoA8Y2JzQFGVzwJSqmemm1Kfv/bfyIfCqv2dp7RNzT5B72AQvdD+nt2nR4sL1HWscvmNHyVt5ovAi7MMhy3ziih/sMph+wPx4YjH3W1h5DyBvSlWvaKfKrK5ViomZ0pPYWydwRHnnRnicxToHK9S6qtSy7Q73O0hdz4hJ9p41Th3ycBl2Q9SeqSZYSY1ohcPDhdyRf2y0prb8rHgpBKzxZ5BKX/1bsE9OmsSEHAEYT8OGgko6aNe8XPAhr4G48cpWTftvnGQuzh0O65nuZRI/PF+Axt2zJCVbFHDDSREI9NlAT82ebDqhlVdxQzKE67D1nxgjb3dPmDUYHOBpmwxQ==" } } ``` 返回data参数说明 | 参数名 | 类型 | 说明 | | :------- | :----- | :---------------------- | | orderId | String | 商户订单号(必须保证唯一性) | | orderNo | String | 平台订单号 | | payUrl | String | 返回的是还款地址 其他时候返回的是指引或者详情 | | bankNo | String | 还款卡号(VA) | | bankCode | String | 通道Code(VA) | | qrCode | String | 二维码内容-可自行生成二维码(QR) | | sign | String | 签名 | ### **代收查询** **简要描述:** * 查询代收订单 **URL:** 泰铢: `/thb/collect/query` | 参数名 | 必选 | 类型 | 说明 | | :------ | :- | :----- | :------------------------------ | | appId | 是 | Long | 业务ID(后台获取,需要根据URL中的币种传递对应的业务ID) | | orderId | 是 | String | 商户订单号 | | orderNo | 否 | String | 平台订单号(响应快) | | sign | 是 | String | 签名 | request ```json theme={null} { "appId": 1054, "orderId": "M22222000028", "sign": "EmyJGm3ELzG4FsOd0Krs9ncbSjo4oTGuXWML+7djYla3+VAwd9wS17z38p/7U2ZAjroO04XrE7YXcB1o76Dtyipj3h3bJzs7FYma1QNkMUdt9hh7m8U6hMsMQX7vIWHtXNwz4pbTSC75+kQWXaCew7KoE6LXECdJU8AISgNgeki2TK9R0pCfshr0Z2SZBPeuT6OvIH5LdmqgdZhuqnffGU2qnXk4KMkO848e6/WALLBR+LE1wyKHfPnYVcuKSMVYxkvKyyIL5JIPEgW0o5bh4RCbaUn3NZtyYwrU1uQ3ZDFRThm9j6XAQP+LBlmq3nOePqBtp/VDVarRaV+7FbQg3A==" } ``` response ```json theme={null} { "status": "1", "error": "00000000", "msg": "", "data": { "orderId": "M22222000028", "orderNo": "6023042811314347", "amount": "50000.00", "actualAmount": "0.00", "fee": "0.00", "status": 1, "sign": "fP433ygWVDLVGxYkVnIJj7riGq0U3vyVX+MbBAImxfGLZkZcEAHVEoVYuULZSmXAAXKRSyd67WlDNm+24pougM54ofAoH4HMtCL2tfCoBReFyz3z02AGKkrKE2xWhSpWoqfQoBvzwuN5iGMMu0s9Q1YvqiwJ8WDVIENnmiIyD8qDJN7caHTW2US14/faG+69AvnuIgJ/nu7/jogOlgEYdZdVYU7gcRDE+d47KjlFGswQkJ/h/uzV7cWtUqrtOO7ZnZ3/z33Xx8awokX36QoYcPSWAU0h+Ij9O9402HNhm1eTbYcLU0uI/z8xCAtyAI/tTyiFijpiNlxUKQj+zKsILw==" } } ``` 返回data参数说明 | 参数名 | 类型 | 说明 | | :----------- | :------ | :-------------------------------------------------- | | orderId | String | 商户订单号(必须保证唯一性) | | orderNo | String | 平台订单号 | | amount | String | 交易金额 | | actualAmount | String | 收到金额 | | fee | String | 手续费 | | status | Integer | 状态(0未开始,1收款中,2收款成功3:收款失败,4:部分收款,5:超额收款, -1异常待确认) | | payTime | String | 支付成功时间(当status=2时有值)(泰国时间), 格式: yyyy-MM-dd HH:mm:ss | | errorMsg | String | 失败原因(当status=3时有值) | | sign | String | 签名 | ### **支付方式** | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | --- | ---------------- | ---------------- | -------- | -- | --------------- | | THB | QR | QR | 1-8000 | 可用 | PromptPay QR二维码 | | THB | PAYMENT\_GATEWAY | TM | 1-8000 | 可用 | TrueMoney钱包 | | USD | QR | TH\_QR\_USD | 0.99-220 | 可用 | PromptPay QR二维码 | | USD | PAYMENT\_GATEWAY | TH\_TM\_USD | 0.99-220 | 可用 | TrueMoney钱包 | ## **代付API** ### **代付申请** **简要描述:** * 创建代付订单 **URL:** 泰铢: `/thb/pay/apply` **参数:** | 参数名 | 必选 | 类型 | 说明 | | :------------ | :- | :----- | :--------------------------------------------------------------------------------------------- | | appId | 是 | Long | 业务ID(后台获取,需要根据URL中的币种传递对应的业务ID) | | orderId | 是 | String | 商户订单号(必须保证唯一性,长度不超过48) | | amount | 是 | String | 交易金额(单位:฿,精确到小数点后两位;禁止添加标点符号,例如:”,”) | | accountType | 是 | String | 账户类型:EWALLET(电子钱包) , BANK\_ACCOUNT(银行) | | bankCode | 是 | String | [付款编码](#付款编码) | | accountNo | 是 | String | 用户账号 | | name | 是 | String | 收款人姓名(收款人姓名 格式:英文大小写且允许有空格,1-30位,"firstName middleName lastName" (middleName 非必填, 特殊字符支持 '.-)) | | phone | 是 | String | 真实手机号(格式:0 开头, 共10位数字) | | email | 是 | String | 真实电子邮件 | | notifyUrl | 否 | String | 回调地址 | | subject | 否 | String | 支付备注(交易标题,商品名称,支付原因) | | body | 否 | String | 备注详情 | | partnerUserId | 是 | String | 用户唯一标识(如用户ID userId),用于风控系统,必须真实有效,否则会影响交易。 格式要求:数字、大小写字母或常用符号-\~!@#\$%&\*()\_。 | | sign | 是 | String | 签名 | request(accountType为BANK\_CARD类型时) ```json theme={null} { "appId": 1054, "orderId": "M100000450012", "amount": "500", "accountType": "BANK_CARD", "bankCode": "BDO", "accountNo": "09876543210", "name": "john doe", "phone": "09876543210", "email": "johndoe@cashfree.com", "subject": "iphone13", "body": "ProMotion technology with adaptive refresh rates up to 120Hz", "partnerUserId": "149597870", "sign": "I1PeK3eJOVsFFNowxVRqMXpeWm1lr/BcRpBi8WsW4wVo1+5CC3JsrFq/m/L2O69NzKHvtDWi4zia3DL3dPut0yMyUyqL91LNCSaeISbGsQPlhEsQpyTOryS/RKOfsrn2Xo37SCF/phAvndOk2jwwGwqM5xLz1ms9Ukl85wv27QFNrXIMxK2p18oe7MpMYrgf+xvEBE/VqCtKMtN9pO449wWwXzHWNPbZ76s4pAvKwRE9yXQDr7Iw14Dktcnl1FoLM4gWM/obkO+mz6SyAGDuXhVh/+OD/IGNiCyTCNq6ciQY28UnCFV6ZIP40gxsFhfBJKbK+Raw7y1Bh912ifYfug==" } ``` response ```json theme={null} { "status": "1", "error": "00000000", "msg": "", "data": { "orderId": "M100000450013", "orderNo": "3023062014149637", "sign": "LmhUnkw5j0pMiimsG8rKwdNNZGvXH5MpSmD6mdHZwq1SQwuK5BohmdEoqKB/jkMk28o3da4Cxh6Q+tW97+yTCemRrF+dMaHA73rpOeUuujKQl/UcFvJuMhfLBa2tp09L71NzoBqpPD6aXf37mYAz8E1HmERwFPpac5FVxIYanHG8cqmMLJYsVmHTSxWavgWU03ys9UczBePkBiR8sl2FSOhFABB0wAP28lswrV/ABS68IsLKtyd1fyI3GBfSbIK5nDEEnlE+EdElFdLs9taAxJImeVF1x4eT47+bkPJ2qS8z3K8QGzKLF3W+8SiRZGfSwDTsLKH+2Vycvy5auRl+ag==" } } ``` 返回data参数说明 | 参数名 | 必选 | 类型 | | :------ | :----- | :------------- | | orderId | String | 商户订单号(必须保证唯一性) | | orderNo | String | 平台订单号 | | sign | String | 签名 | ### **代付查询** **简要描述:** * 查询代付订单 **URL:** 泰铢: `/thb/pay/query` **参数:** | 参数名 | 必选 | 类型 | 说明 | | :------ | :- | :----- | :------------------------------ | | appId | 是 | Long | 业务ID(后台获取,需要根据URL中的币种传递对应的业务ID) | | orderId | 是 | String | 商户订单号 | | orderNo | 否 | String | 平台订单号(响应快) | | sign | 是 | String | 签名 | request ```json theme={null} { "appId": 1000, "orderId": "M1234567111", "orderNo": "3022111516571436", "sign": "ZxkVZL+GAyv0VhvWn4IvuYahTzxgQuthkuV2ONWiqIfIDb2avvHlFOUJVzqZi1q8CPHXZm1ltanRTRVTxfsuftLvGeDioUHglWt46/RU6c1OPznpLGsZ35Q3n5tW2y1EnOsxPynXBFLuDQy+aZ3l9u6AQ30T0zQexMGT+IxuFkmUp02g/6juaHa5ZgNMv7lN67ixIp162wrM7OJuaOif872QijSceRdZhzaMGImAwB0D4MosRV4WMBOKkwgPdmS7GuZN66YUidXk3wTGqX3MYRw6M0kj4eNegSUwPXvp4q4p0KO8Y3xUMld54GY2ApX3WN3CBtC/vpJqEszjGBbbGg==" } ``` response — 订单失败 ```json theme={null} { "status": "1", "error": "00000000", "msg": "", "data": { "orderId": "M1234567111", "orderNo": "3022111516571436", "amount": "100000.00", "fee": "0.00", "status": 3, "errorMsg": "Đơn hàng không tồn tại", "sign": "KKuvCl0SuNANJs+l2ogDaJm8pmV+Hi+Xa7q27vJ6D1Ehs4aOp13kRbITfJAhczh3T81BE9qwHeJaYwf+r0EypKM9TL6pMwfG8Az4gRy1D57wiUaVjl2PWcvbEqrn1hL0b+btkjvAM9I+CcSv+wuOW3/uku17Ws3FhgJLj9sFsQUBAPjDO+758VnwBytCOLBmljLBXyKgNgpmFQ1/DNkqWl0UNzyLK45Zw3yf5NiwhEFbvW0jlOWlfu/ql4hluISUQG573jEoFCBEnQLb2tQoRZj1QYNRCXPf5lbej0vzqbEwvR9h+ZOf255t1MocJkdIe463DTV5U3KZdVT87HMagw==" } } ``` response — 订单成功 ```json theme={null} { "status": "1", "error": "00000000", "msg": "", "data": { "orderId": "M1234567112", "orderNo": "3022111517401574", "amount": "100000.00", "fee": "1003.00", "status": 2, "payTime": "2024-03-01 23:59:59", "sign": "khPtOmGq+cpKX0HFAI/lbP0dx4oVyNAnL5oLsdmhDJdASlQm0yg5I3o+MhImYggEsL6c2bo5fP29t54OZFqSdQDfIuNDvGbAMAr4mRBxc0hoHLkBLyyagfVPBLyQA1JY8XV3ZL4ySzQ3ZQnMCfrh2K39ueUuz6HpZ03Hj0KYijVRCXAZaio/L5jfLBT12QXmvIfAHa8s/k9flhK05ENHPep3zjj/MZGOEaX7jkEJLfjK0duypDCa61BRQjM+oePOdVsgleIl1Yf98UAxMDZ/A3912KFHEb+/jvmdnulNbiJFyuT1fEe+j2teUgw3vFsZAtwNWAgxhC7UO+N0Q5z4EA==" } } ``` 返回data参数说明 | 参数名 | 类型 | 说明 | | :------- | :------ | :-------------------------------------------------- | | orderId | String | 商户订单号(必须保证唯一性) | | orderNo | String | 平台订单号 | | amount | String | 交易金额 | | fee | String | 手续费 | | status | Integer | 状态(0未开始,1支付中,2成功(终态),3失败(终态), -1异常待确认) | | payTime | String | 支付成功时间(当status=2时有值)(泰国时间), 格式: yyyy-MM-dd HH:mm:ss | | errorMsg | String | 支付失败原因(当status=3时有值) | | sign | String | 签名 | ### **支付方式** | 币种 | 支付类型(accountType) | 支付编码(bankCode) | 限额 | 状态 | 说明 | | --- | ----------------- | -------------- | ------ | -- | ------------------------------------------------ | | THB | BANK\_ACCOUNT | BAAC | 1-8000 | 可用 | BAAC ธนาคารเพื่อการเกษตรและสหกรณ์การเกษตร | | THB | BANK\_ACCOUNT | BAY | 1-8000 | 可用 | Bank of Ayudhya (Krungsri / กรุงศรี) | | THB | BANK\_ACCOUNT | BBL | 1-8000 | 可用 | Bangkok Bank ธนาคารกรุงเทพ | | THB | BANK\_ACCOUNT | CIMB | 1-8000 | 可用 | CIMB Thai ธนาคารซีไอเอ็มบีไทย | | THB | BANK\_ACCOUNT | CITI | 1-8000 | 可用 | Citibank N.A. ซิตี้แบงก์ ประเทศไทย | | THB | BANK\_ACCOUNT | GHB | 1-8000 | 可用 | GHB ธนาคารอาคารสงเคราะห์ | | THB | BANK\_ACCOUNT | GSB | 1-8000 | 可用 | GSB ธนาคารออมสิน | | THB | BANK\_ACCOUNT | HSBC | 1-8000 | 可用 | HSBC เอชเอสบีซี | | THB | BANK\_ACCOUNT | ICBC | 1-8000 | 可用 | ICBC(Thai) ธนาคารไอซีบีซี(ประเทศไทย)จำกัด(มหาชน) | | THB | BANK\_ACCOUNT | IBANK | 1-8000 | 可用 | Islamic Bank ธนาคารอิสลามแห่งประเทศไทย | | THB | BANK\_ACCOUNT | KBANK | 1-8000 | 可用 | Kasikorn Bank ธนาคารกสิกรไทย | | THB | BANK\_ACCOUNT | KKP | 1-8000 | 可用 | Kiatnakin Phatra Bank ธนาคารเกียรตินาคินภัทร | | THB | BANK\_ACCOUNT | KTB | 1-8000 | 可用 | KTB ธนาคารกรุงไทย | | THB | BANK\_ACCOUNT | LHB | 1-8000 | 可用 | Land and Houses Bank ธนาคารแลนด์ แอนด์ เฮ้าส์ | | THB | BANK\_ACCOUNT | SCB | 1-8000 | 可用 | SCB ธนาคารไทยพาณิชย์ | | THB | BANK\_ACCOUNT | SCBT | 1-8000 | 可用 | SCBT สแตนดาร์ดชาร์เตอร์ด | | THB | BANK\_ACCOUNT | TBANK | 1-8000 | 可用 | TBank ธนาคารธนชาต จำกัด (มหาชน) | | THB | BANK\_ACCOUNT | TISCO | 1-8000 | 可用 | TISCO ธนาคารทิสโก้ จำกัด (มหาชน) | | THB | BANK\_ACCOUNT | TMB | 1-8000 | 可用 | TTB ธนาคารทีเอ็มบีธนชาต จำกัด (มหาชน) | | THB | BANK\_ACCOUNT | UOB | 1-8000 | 可用 | UOB ธนาคารยูโอบี จำกัด (มหาชน) | | THB | BANK\_ACCOUNT | ABN | 1-8000 | 可用 | ABN AMRO ธนาคารเอบีเอ็น แอมโร เอ็น.วี. | | THB | BANK\_ACCOUNT | MHCB | 1-8000 | 可用 | Mizuho ธนาคารมิสึโฮ คอร์ปอเรต จำกัด | # 土耳其支付接口 Source: https://doc.haipay.net/docs/zh/api/version2/Turkey **阅读该接口文档前,务必先查看 [**接口说明**](/docs/zh/guide/api_description_guide)** ## **限额** | 交易类型 | 限额(单位:TRY) | | :--- | ---------- | | 代收 | 10-99000 | | 代付 | 10-99000 | ## **代收API** ### **代收申请** **简要描述:** * 创建代收订单 **URL:`/try/collect/apply`** 说明:appId需使用土耳其里拉对应的,用户支付成功后增加土耳其里拉余额 **参数:** | 参数名 | 必选 | 类型 | 说明 | | :-------------- | :- | :----- | :----------------------------------------------------------------------------------------- | | appId | 是 | Long | 业务ID(后台获取,需要根据URL中的币种传递对应的业务ID) | | orderId | 是 | String | 商户订单号(必须保证唯一性,长度不超过48) | | name | 是 | String | 收款人姓名 | | phone | 是 | String | 真实手机号(格式参考 [电话号码格式](/docs/zh/guide/frequently_asked_question#zh_faq_phone-number-format) ) | | email | 是 | String | 真实电子邮件 | | amount | 是 | String | 交易金额(单位:本币,精确到小数点后两位;禁止添加标点符号,例如:”,”) | | currency | 否 | String | 币种(TRY) | | payType | 是 | String | 交易类型 PAYMENT\_GATEWAY | | inBankCode | 是 | String | [支付方式](#inBankCode) | | callBackUrl | 是 | String | 用户支付成功后跳转地址 | | callBackFailUrl | 是 | String | 用户支付失败后跳转地址 | | notifyUrl | 否 | String | 回调地址 | | subject | 否 | String | 支付备注 | | body | 否 | String | 备注详情 | | partnerUserId | 是 | String | 用户唯一标识(如用户ID userId),用于风控系统,必须真实有效,否则会影响交易。 格式要求:数字、大小写字母或常用符号-\~!@#\$%&\*()\_。 | | sign | 是 | String | 签名 | ##### request ```json theme={null} { "appId": 1054, "orderId": "M233323000059", "amount": "300", "phone": "09230219312", "email": "23423@qq.com", "name": "test", "inBankCode": "GPay", "payType": "PAYMENT_GATEWAY", "partnerUserId": "149597870", "sign": "af0gAHkUOyYHu9owQp8NJ4mPEeUW4vuJcjdxqLIzrVw8AvpLSjD1DXupReSG/CyuSkFRyiIvCp5u703AuGGmfgD2gKDH3Ywau41bAbG2jnHJ8mtjiSJ5iWUzanyd4Kr7d1+rETbzUl7/BkW3t0X8UUFdqpxwG8DPUjAwUKfplWDHV7koG51Ozexd80DCsmW6eWdouAZ1uNXGLYmV3ftE3BmfNRtuv1C5bfTJWrTEIOxbF6g2uYOFZTlIgrQgd7/2PsAYwQQXNz8Q8CYl4OxqCv4pXJxaLWPbR5tqZu9og5kn32C9aHW/NlU1y39vzz+4ef81yPAqUV9oHlSMSPrMmw==" } ``` va-response ```json theme={null} { "status": "1", "error": "00000000", "msg": "", "data": { "orderId": "M233323000059", "orderNo": "6023071013539074", "payUrl": "", "sign": "YEoA8Y2JzQFGVzwJSqmemm1Kfv/bfyIfCqv2dp7RNzT5B72AQvdD+nt2nR4sL1HWscvmNHyVt5ovAi7MMhy3ziih/sMph+wPx4YjH3W1h5DyBvSlWvaKfKrK5ViomZ0pPYWydwRHnnRnicxToHK9S6qtSy7Q73O0hdz4hJ9p41Th3ycBl2Q9SeqSZYSY1ohcPDhdyRf2y0prb8rHgpBKzxZ5BKX/1bsE9OmsSEHAEYT8OGgko6aNe8XPAhr4G48cpWTftvnGQuzh0O65nuZRI/PF+Axt2zJCVbFHDDSREI9NlAT82ebDqhlVdxQzKE67D1nxgjb3dPmDUYHOBpmwxQ==" } } ``` 返回data参数说明 | 参数名 | 类型 | 说明 | | :------ | :----- | :------------- | | orderId | String | 商户订单号(必须保证唯一性) | | orderNo | String | 平台订单号 | | payUrl | String | 支付链接 | | sign | String | 签名 | ### **代收查询** **简要描述:** * 创建代收订单 * 当“payType=BANK\_TRANSFER” 时同步返回orderNo可以直接查询 * 其他支付方式异步通知后,通过orderNo查询二次确认状态 **URL:`/try/collect/query`** ##### **参数:** | 参数名 | 必选 | 类型 | 说明 | | :------ | :- | :----- | :------------------------------ | | appId | 是 | Long | 业务ID(后台获取,需要根据URL中的币种传递对应的业务ID) | | orderId | 是 | String | 商户订单号 | | orderNo | 否 | String | 平台订单号(响应快) | | sign | 是 | String | 签名 | request ```json theme={null} { "appId": 1054, "orderId": "M22222000028", "sign": "EmyJGm3ELzG4FsOd0Krs9ncbSjo4oTGuXWML+7djYla3+VAwd9wS17z38p/7U2ZAjroO04XrE7YXcB1o76Dtyipj3h3bJzs7FYma1QNkMUdt9hh7m8U6hMsMQX7vIWHtXNwz4pbTSC75+kQWXaCew7KoE6LXECdJU8AISgNgeki2TK9R0pCfshr0Z2SZBPeuT6OvIH5LdmqgdZhuqnffGU2qnXk4KMkO848e6/WALLBR+LE1wyKHfPnYVcuKSMVYxkvKyyIL5JIPEgW0o5bh4RCbaUn3NZtyYwrU1uQ3ZDFRThm9j6XAQP+LBlmq3nOePqBtp/VDVarRaV+7FbQg3A==" } ``` response ```json theme={null} { "status": "1", "error": "00000000", "msg": "", "data": { "orderId": "M22222000028", "orderNo": "6023042811314347", "amount": "50.00", "actualAmount": "0.00", "fee": "0.00", "status": 1, "sign": "fP433ygWVDLVGxYkVnIJj7riGq0U3vyVX+MbBAImxfGLZkZcEAHVEoVYuULZSmXAAXKRSyd67WlDNm+24pougM54ofAoH4HMtCL2tfCoBReFyz3z02AGKkrKE2xWhSpWoqfQoBvzwuN5iGMMu0s9Q1YvqiwJ8WDVIENnmiIyD8qDJN7caHTW2US14/faG+69AvnuIgJ/nu7/jogOlgEYdZdVYU7gcRDE+d47KjlFGswQkJ/h/uzV7cWtUqrtOO7ZnZ3/z33Xx8awokX36QoYcPSWAU0h+Ij9O9402HNhm1eTbYcLU0uI/z8xCAtyAI/tTyiFijpiNlxUKQj+zKsILw==" } } ``` 返回data参数说明 | 参数名 | 类型 | 说明 | | :----------- | :------ | :-------------------------------------------- | | orderId | String | 商户订单号(必须保证唯一性) | | orderNo | String | 平台订单号 | | amount | String | 交易金额 | | actualAmount | String | 收到金额 | | fee | String | 手续费 | | status | Integer | 状态(0未开始,1收款中,2收款成功3:收款失败, -1异常待确认) | | payTime | String | 支付成功时间(当status=2时有值), 格式: yyyy-MM-dd HH:mm:ss | | errorMsg | String | 支付失败原因(当status=3时有值) | | sign | String | 签名 | ### **支付方式** | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | :-- | :--------------- | :--------------- | :---------- | :- | :-------- | | TRY | BANK\_ACCOUNT | IBAN | 1000-500000 | 可用 | 土耳其国际银行支付 | | TRY | PAYMENT\_GATEWAY | PAPARA | 10-99000 | 维护 | Papara钱包 | ## **代付API** ### **代付申请** **简要描述:** * 创建代付订单 **URL:`/try/pay/apply`** **参数:** | 参数名 | 必选 | 类型 | 说明 | | :------------ | :- | :----- | :------------------------------------------------------------------------------------------------------------------------------------- | | appId | 是 | Long | 业务ID(后台获取,需要根据URL中的币种传递对应的业务ID) | | orderId | 是 | String | 商户订单号(必须保证唯一性,长度不超过48) | | amount | 是 | String | 交易金额(单位:本币) | | accountType | 是 | String | 账户类型: BANK\_ACCOUNT,EWALLET | | bankCode | 是 | String | [银行编码](#银行编码) | | identifyType | 否 | String | bankCode为PAPARA时必填 :
PAPARA\_NUMBER(Papara Id)
PHONE(注册Papara的真实手机号)
EMAIL(注册Papara的邮箱)
TURKISH\_ID(注册Papara的身份证号) | | accountNo | 是 | String | 用户账号(BANK\_ACCOUNT为iban) | | name | 是 | String | 收款人姓名 | | phone | 是 | String | 真实手机号 | | email | 是 | String | 真实电子邮件 | | notifyUrl | 否 | String | 回调地址 | | subject | 否 | String | 支付备注(交易标题,商品名称,支付原因) | | body | 否 | String | 备注详情 | | partnerUserId | 是 | String | 用户唯一标识(如用户ID userId),用于风控系统,必须真实有效,否则会影响交易。 格式要求:数字、大小写字母或常用符号-\~!@#\$%&\*()\_。 | | sign | 是 | String | 签名 | ##### request(accountType为BANK\_ACCOUNT类型时) ```json theme={null} { "appId": 1054, "orderId": "M100000450012", "amount": "500", "accountType": "BANK_ACCOUNT", "bankCode": "BDO", "accountNo": "09876543210", "ibanAccount": "09876543210", "name": "john doe", "phone": "09876543210", "email": "johndoe@cashfree.com", "subject": "iphone13", "body": "ProMotion technology with adaptive refresh rates up to 120Hz", "partnerUserId": "149597870", "sign": "I1PeK3eJOVsFFNowxVRqMXpeWm1lr/BcRpBi8WsW4wVo1+5CC3JsrFq/m/L2O69NzKHvtDWi4zia3DL3dPut0yMyUyqL91LNCSaeISbGsQPlhEsQpyTOryS/RKOfsrn2Xo37SCF/phAvndOk2jwwGwqM5xLz1ms9Ukl85wv27QFNrXIMxK2p18oe7MpMYrgf+xvEBE/VqCtKMtN9pO449wWwXzHWNPbZ76s4pAvKwRE9yXQDr7Iw14Dktcnl1FoLM4gWM/obkO+mz6SyAGDuXhVh/+OD/IGNiCyTCNq6ciQY28UnCFV6ZIP40gxsFhfBJKbK+Raw7y1Bh912ifYfug==" } ``` response ```json theme={null} { "status": "1", "error": "00000000", "msg": "", "data": { "orderId": "M100000450013", "orderNo": "3023062014149637", "sign": "LmhUnkw5j0pMiimsG8rKwdNNZGvXH5MpSmD6mdHZwq1SQwuK5BohmdEoqKB/jkMk28o3da4Cxh6Q+tW97+yTCemRrF+dMaHA73rpOeUuujKQl/UcFvJuMhfLBa2tp09L71NzoBqpPD6aXf37mYAz8E1HmERwFPpac5FVxIYanHG8cqmMLJYsVmHTSxWavgWU03ys9UczBePkBiR8sl2FSOhFABB0wAP28lswrV/ABS68IsLKtyd1fyI3GBfSbIK5nDEEnlE+EdElFdLs9taAxJImeVF1x4eT47+bkPJ2qS8z3K8QGzKLF3W+8SiRZGfSwDTsLKH+2Vycvy5auRl+ag==" } } ``` 返回data参数说明 | 参数名 | 必选 | 类型 | | :------ | :----- | :------------- | | orderId | String | 商户订单号(必须保证唯一性) | | orderNo | String | 平台订单号 | | sign | String | 签名 | ### **代付查询** **简要描述:** * 查询代付订单 **URL:`/try/pay/query`** **参数:** | 参数名 | 必选 | 类型 | 说明 | | :------ | :- | :----- | :------------------------------ | | appId | 是 | Long | 业务ID(后台获取,需要根据URL中的币种传递对应的业务ID) | | orderId | 是 | String | 商户订单号 | | orderNo | 否 | String | 平台订单号(响应快) | | sign | 是 | String | 签名 | request ```json theme={null} { "appId": 1000, "orderId": "M1234567111", "orderNo": "3022111516571436", "sign": "ZxkVZL+GAyv0VhvWn4IvuYahTzxgQuthkuV2ONWiqIfIDb2avvHlFOUJVzqZi1q8CPHXZm1ltanRTRVTxfsuftLvGeDioUHglWt46/RU6c1OPznpLGsZ35Q3n5tW2y1EnOsxPynXBFLuDQy+aZ3l9u6AQ30T0zQexMGT+IxuFkmUp02g/6juaHa5ZgNMv7lN67ixIp162wrM7OJuaOif872QijSceRdZhzaMGImAwB0D4MosRV4WMBOKkwgPdmS7GuZN66YUidXk3wTGqX3MYRw6M0kj4eNegSUwPXvp4q4p0KO8Y3xUMld54GY2ApX3WN3CBtC/vpJqEszjGBbbGg==" } ``` response — 订单失败 ```json theme={null} { "status": "1", "error": "00000000", "msg": "", "data": { "orderId": "M1234567111", "orderNo": "3022111516571436", "amount": "100000.00", "fee": "0.00", "status": 3, "errorMsg": "Đơn hàng không tồn tại", "sign": "KKuvCl0SuNANJs+l2ogDaJm8pmV+Hi+Xa7q27vJ6D1Ehs4aOp13kRbITfJAhczh3T81BE9qwHeJaYwf+r0EypKM9TL6pMwfG8Az4gRy1D57wiUaVjl2PWcvbEqrn1hL0b+btkjvAM9I+CcSv+wuOW3/uku17Ws3FhgJLj9sFsQUBAPjDO+758VnwBytCOLBmljLBXyKgNgpmFQ1/DNkqWl0UNzyLK45Zw3yf5NiwhEFbvW0jlOWlfu/ql4hluISUQG573jEoFCBEnQLb2tQoRZj1QYNRCXPf5lbej0vzqbEwvR9h+ZOf255t1MocJkdIe463DTV5U3KZdVT87HMagw==" } } ``` response — 订单成功 ```json theme={null} { "status": "1", "error": "00000000", "msg": "", "data": { "orderId": "M1234567112", "orderNo": "3022111517401574", "amount": "100000.00", "fee": "1003.00", "status": 2, "payTime": "2024-03-01 23:59:59", "sign": "khPtOmGq+cpKX0HFAI/lbP0dx4oVyNAnL5oLsdmhDJdASlQm0yg5I3o+MhImYggEsL6c2bo5fP29t54OZFqSdQDfIuNDvGbAMAr4mRBxc0hoHLkBLyyagfVPBLyQA1JY8XV3ZL4ySzQ3ZQnMCfrh2K39ueUuz6HpZ03Hj0KYijVRCXAZaio/L5jfLBT12QXmvIfAHa8s/k9flhK05ENHPep3zjj/MZGOEaX7jkEJLfjK0duypDCa61BRQjM+oePOdVsgleIl1Yf98UAxMDZ/A3912KFHEb+/jvmdnulNbiJFyuT1fEe+j2teUgw3vFsZAtwNWAgxhC7UO+N0Q5z4EA==" } } ``` 返回data参数说明 | 参数名 | 类型 | 说明 | | :------- | :------ | :-------------------------------------------- | | orderId | String | 商户订单号(必须保证唯一性) | | orderNo | String | 平台订单号 | | amount | String | 交易金额 | | fee | String | 手续费 | | status | Integer | 订单状态(0未开始, 1放款中 2放款成功(终态) 3放款失败(终态) -1异常待确认) | | payTime | String | 支付成功时间(当status=2时有值), 格式: yyyy-MM-dd HH:mm:ss | | errorMsg | String | 支付失败原因(当status=3时有值) | | sign | String | 签名 | ### **支付方式** | 币种 | 支付类型(accountType) | 支付编码(bankCode) | 限额 | 状态 | 说明 | | :-- | :---------------- | :--------------- | :---------- | :- | :----------------------------------- | | TRY | EWALLET | PAPARA | 10-99000 | 维护 | Papara钱包 | | TRY | BANK\_ACCOUNT | AKB | 2000-500000 | 可用 | AKBANK T.A.Ş. | | TRY | BANK\_ACCOUNT | Burgan\_Bank | 2000-500000 | 可用 | AKBANK T.A.Ş. | | TRY | BANK\_ACCOUNT | CITI\_BANK | 2000-500000 | 可用 | CITIBANK A.Ş.. | | TRY | BANK\_ACCOUNT | DENIZ\_BANK | 2000-500000 | 可用 | DENİZBANK A.Ş.. | | TRY | BANK\_ACCOUNT | FIBA\_BANK | 2000-500000 | 可用 | FIBABANKA A.Ş. | | TRY | BANK\_ACCOUNT | FINANS\_BANK | 2000-500000 | 可用 | FİNANS BANK A.Ş.. | | TRY | BANK\_ACCOUNT | QNB | 2000-500000 | 可用 | QNB Finansbank. | | TRY | BANK\_ACCOUNT | HSBC\_BANK | 2000-500000 | 可用 | HSBC BANK A.Ş. | | TRY | BANK\_ACCOUNT | ING\_BANK | 2000-500000 | 可用 | ING BANK A.Ş.. | | TRY | BANK\_ACCOUNT | KUVEYT\_TURK | 2000-500000 | 可用 | KUVEYT TÜRK KATILIM BANKASI A.Ş.. | | TRY | BANK\_ACCOUNT | ODEA\_BANK | 2000-500000 | 可用 | ODEA BANK A.Ş.. | | TRY | BANK\_ACCOUNT | SEKER\_BANK | 2000-500000 | 可用 | ŞEKERBANK T.A.Ş. | | TRY | BANK\_ACCOUNT | TEKFEN\_BANK | 2000-500000 | 可用 | TEKFENBANK A.S.. | | TRY | BANK\_ACCOUNT | YAPI\_KREDI | 2000-500000 | 可用 | Yapıkredi | | TRY | BANK\_ACCOUNT | ZIRAAT\_BANK | 2000-500000 | 可用 | T.C. ZİRAAT BANKASI A.Ş.. | | TRY | BANK\_ACCOUNT | VAKIF\_BANK | 2000-500000 | 可用 | T. VAKIFLAR BANKASI. | | TRY | BANK\_ACCOUNT | ISB | 2000-500000 | 可用 | T. İŞ BANKASI A.Ş.. | | TRY | BANK\_ACCOUNT | GARANTI\_BANK | 2000-500000 | 可用 | T. GARANTİ BANKASI A.Ş.. | | TRY | BANK\_ACCOUNT | TCMB | 10-99000 | 维护 | T.C.MERKEZ BANKASI A.Ş. | | TRY | BANK\_ACCOUNT | ILB | 10-99000 | 维护 | İLLER BANKASI. | | TRY | BANK\_ACCOUNT | HALK\_BANK | 10-99000 | 维护 | T. HALK BANKASI A.Ş.. | | TRY | BANK\_ACCOUNT | TSKB | 10-99000 | 维护 | T.SINAİ KALK. BANKASI A.S.. | | TRY | BANK\_ACCOUNT | TURK\_EXIMB | 10-99000 | 维护 | T.IHRACAT KREDI BANKASI A.S. | | TRY | BANK\_ACCOUNT | KALKINMA\_BANK | 10-99000 | 维护 | T.KALKINMA BANKASI A.S.. | | TRY | BANK\_ACCOUNT | BAYINDIR\_BANK | 10-99000 | 维护 | BAYINDIRBANK A.S.. | | TRY | BANK\_ACCOUNT | EKONOMI\_BANK | 10-99000 | 维护 | T.EKONOMİ BANKASI A.S.. | | TRY | BANK\_ACCOUNT | YAPI\_KREDI | 10-99000 | 维护 | YAPI ve KREDİ BANKASI A.Ş.. | | TRY | BANK\_ACCOUNT | TURK\_TICARET | 10-99000 | 维护 | T.DIŞ TICARET\_BANKASI A.S.. | | TRY | BANK\_ACCOUNT | ROMA\_BANK | 10-99000 | 维护 | BANCA DI ROMA S.P.A.. | | TRY | BANK\_ACCOUNT | ABN\_AMRO | 10-99000 | 维护 | ABN AMRO BANK N.V.. | | TRY | BANK\_ACCOUNT | ATB | 10-99000 | 维护 | ARAP TÜRK BANKASI A.S.. | | TRY | BANK\_ACCOUNT | KOC\_BANK | 10-99000 | 维护 | KOÇBANK A.S. | | TRY | BANK\_ACCOUNT | TURKISH\_BANK | 10-99000 | 维护 | TURKISH BANK A.Ş.. | | TRY | BANK\_ACCOUNT | JPMORGAN\_BANK | 10-99000 | 维护 | JP MORGAN CHASE BANK NA MERK C. | | TRY | BANK\_ACCOUNT | ING\_BANK | 10-99000 | 维护 | ING BANK A.Ş.. | | TRY | BANK\_ACCOUNT | ADA\_BANK | 10-99000 | 维护 | ADABANK A.S.. | | TRY | BANK\_ACCOUNT | DEUTSCHE\_BANK | 10-99000 | 维护 | DEUTSCHE BANK A.S.. | | TRY | BANK\_ACCOUNT | CALYON\_BANK | 10-99000 | 维护 | CALYON BANK T.A.S. | | TRY | BANK\_ACCOUNT | ALTERNATIF\_BANK | 10-99000 | 维护 | ALTERNATİFBANK A.S.. | | TRY | BANK\_ACCOUNT | ANADOLU\_BANK | 10-99000 | 维护 | ANADOLUBANK A.Ş.. | | TRY | BANK\_ACCOUNT | DILER\_BANK | 10-99000 | 维护 | DİLER YATIRIM BANKASI A.S.. | | TRY | BANK\_ACCOUNT | GSD\_BANK | 10-99000 | 维护 | GSD YATIRIM BANKASI A.S.. | | TRY | BANK\_ACCOUNT | NUROL\_BANK | 10-99000 | 维护 | NUROL YATIRIM BANKASI A.S.. | | TRY | BANK\_ACCOUNT | CALIK\_BANK | 10-99000 | 维护 | ÇALIK YATIRIM BANKASI A.S. | | TRY | BANK\_ACCOUNT | TURKLAND\_BANK | 10-99000 | 维护 | TURKLAND BANK A.Ş.. | | TRY | BANK\_ACCOUNT | URGAN\_BANK | 10-99000 | 维护 | URGAN BANK A.Ş.. | | TRY | BANK\_ACCOUNT | AKTIF\_BANK | 10-99000 | 维护 | AKTİF YATIRIM BANKASI A.Ş. | | TRY | BANK\_ACCOUNT | ALBARAKA\_TURK | 10-99000 | 维护 | ALBARAKA TÜRK KATILIM BANKASI A.Ş.. | | TRY | BANK\_ACCOUNT | ASYA\_BANK | 10-99000 | 维护 | ASYA KATILIM BANKASI A.Ş.. | | TRY | BANK\_ACCOUNT | PTT | 10-99000 | 维护 | PTT. | | TRY | BANK\_ACCOUNT | TURKIYE\_FINANS | 10-99000 | 维护 | TÜRKİYE FİNANS KATILIM BANKASI A.Ş.. | | TRY | BANK\_ACCOUNT | ININAL | 10-99000 | 维护 | Ininal. | # 越南支付接口 Source: https://doc.haipay.net/docs/zh/api/version2/Vietnam **阅读该接口文档前,务必先查看 [**接口说明**](/docs/zh/guide/api_description_guide)** ## **限额** | 交易类型 | 限额 | | :--- | ----------------------------------- | | 代收 | 美元: 0.99-2000, 越南盾: 100000-10000000 | | 代付 | 越南盾: 10000-50000000 | ## **代收API** ### **代收申请** **简要描述:** * 创建代收订单 **URL:`/vnd/collect/apply`** 说明:appId需使用越南盾对应的,用户支付成功后增加越南盾余额 **URL:`/usd/collect/apply`** 说明:appId需使用美元对应的,用户支付成功后增加美元余额 **请求方式:** * | 参数名 | 必选 | 类型 | 说明 | | :-------------- | :- | :----- | :------------------------------------------------------------------------------------------- | | appId | 是 | Long | 业务ID(后台获取,需要根据URL中的币种传递对应的业务ID) | | orderId | 是 | String | 商户订单号(必须保证唯一性,长度不超过48) | | name | 是 | String | 付款人姓名(付款人姓名格式:英文或越南语大小写且允许有空格,1-30位,"firstName middleName lastName" (middleName非必填,特殊字符支持!-) | | outBankNo | 否 | String | 付款人卡号, payType为 PAYMENT\_GATEWAY时必填 | | phone | 是 | String | 真实手机号 | | email | 是 | String | 真实电子邮件 | | amount | 是 | String | 交易金额(单位:**₫**,越南盾) 范围:100,000-10,000,000 金额需要是100的倍数 | | payType | 是 | String | 交易类型:QR,PAYMENT\_GATEWAY,BANK\_TRANSFER,EWALLET | | inBankCode | 否 | String | 支付方式,当payType=EWALLET时,支持传MOMO\_VND,代表跳转MoMo钱包支付 | | callBackUrl | 是 | String | 用户支付成功后跳转地址 | | callBackFailUrl | 是 | String | 用户支付失败后跳转地址 | | notifyUrl | 否 | String | 回调地址 | | currency | 否 | String | 币种(默认VND 支持下单币种: USD,VND) | | subject | 否 | String | 支付备注 | | body | 否 | String | 备注详情 | | partnerUserId | 是 | String | 用户唯一标识(如用户ID userId),用于风控系统,必须真实有效,否则会影响交易。 格式要求:数字、大小写字母或常用符号-\~!@#\$%&\*()\_。 | | sign | 是 | String | 签名 | ##### request ```json theme={null} { "appId": 1054, "orderId": "M233323000059", "amount": "300", "phone": "08230219312", "email": "23423@qq.com", "name": "test", "inBankCode": "VCB", "payType": "QR", "partnerUserId": "149597870", "sign": "af0gAHkUOyYHu9owQp8NJ4mPEeUW4vuJcjdxqLIzrVw8AvpLSjD1DXupReSG/CyuSkFRyiIvCp5u703AuGGmfgD2gKDH3Ywau41bAbG2jnHJ8mtjiSJ5iWUzanyd4Kr7d1+rETbzUl7/BkW3t0X8UUFdqpxwG8DPUjAwUKfplWDHV7koG51Ozexd80DCsmW6eWdouAZ1uNXGLYmV3ftE3BmfNRtuv1C5bfTJWrTEIOxbF6g2uYOFZTlIgrQgd7/2PsAYwQQXNz8Q8CYl4OxqCv4pXJxaLWPbR5tqZu9og5kn32C9aHW/NlU1y39vzz+4ef81yPAqUV9oHlSMSPrMmw==" } ``` va-response ```json theme={null} { "status": "1", "error": "00000000", "msg": "", "data": { "orderId": "M233323000059", "orderNo": "6023071013539074", "payUrl": "https://a.api-uat.vnd.com/1L9zQS2", "bankCode": "VCB", "qrCode": "00020101021228760011ph.ppmi.p2m0111OPDVPHM1XXX0315777148000000017041652948137245442930503001520460165303608540810000.vnd Of Mandalu62310010ph.allbank05062110000803***88310012ph.ppmi.qrph0111OPDVPHM1XXX63042763", "sign": "YEoA8Y2JzQFGVzwJSqmemm1Kfv/bfyIfCqv2dp7RNzT5B72AQvdD+nt2nR4sL1HWscvmNHyVt5ovAi7MMhy3ziih/sMph+wPx4YjH3W1h5DyBvSlWvaKfKrK5ViomZ0pPYWydwRHnnRnicxToHK9S6qtSy7Q73O0hdz4hJ9p41Th3ycBl2Q9SeqSZYSY1ohcPDhdyRf2y0prb8rHgpBKzxZ5BKX/1bsE9OmsSEHAEYT8OGgko6aNe8XPAhr4G48cpWTftvnGQuzh0O65nuZRI/PF+Axt2zJCVbFHDDSREI9NlAT82ebDqhlVdxQzKE67D1nxgjb3dPmDUYHOBpmwxQ==" } } ``` 返回data参数说明 | 参数名 | 类型 | 说明 | | :----------- | :----- | :---------------------- | | orderId | String | 商户订单号(必须保证唯一性) | | orderNo | String | 平台订单号 | | payUrl | String | 返回的是收款地址 其他时候返回的是指引或者详情 | | bankNo | String | 收款卡号(,BANK\_TRANSFER) | | bankCode | String | 收款银行 | | bankUserName | String | 收款人姓名(,BANK\_TRANSFER) | | qrCode | String | 二维码内容-可自行生成二维码(QR) | | sign | String | 签名 | ### **代收查询** **简要描述:** * 查询代收订单 * 当"payType=PAYMENT\_GATEWAY" 时同步返回orderNo可以直接查询 * 其他支付方式异步通知后,通过orderNo查询二次确认状态 **URL:`/vnd/collect/query`** **参数:** | 参数名 | 必选 | 类型 | 说明 | | :------ | :- | :----- | :------------------------------ | | appId | 是 | Long | 业务ID(后台获取,需要根据URL中的币种传递对应的业务ID) | | orderId | 是 | String | 商户订单号 | | orderNo | 否 | String | 平台订单号(响应快) | | sign | 是 | String | 签名 | request ```json theme={null} { "appId": 1054, "orderId": "M22222000028", "sign": "EmyJGm3ELzG4FsOd0Krs9ncbSjo4oTGuXWML+7djYla3+VAwd9wS17z38p/7U2ZAjroO04XrE7YXcB1o76Dtyipj3h3bJzs7FYma1QNkMUdt9hh7m8U6hMsMQX7vIWHtXNwz4pbTSC75+kQWXaCew7KoE6LXECdJU8AISgNgeki2TK9R0pCfshr0Z2SZBPeuT6OvIH5LdmqgdZhuqnffGU2qnXk4KMkO848e6/WALLBR+LE1wyKHfPnYVcuKSMVYxkvKyyIL5JIPEgW0o5bh4RCbaUn3NZtyYwrU1uQ3ZDFRThm9j6XAQP+LBlmq3nOePqBtp/VDVarRaV+7FbQg3A==" } ``` response ```json theme={null} { "status": "1", "error": "00000000", "msg": "", "data": { "orderId": "M22222000028", "orderNo": "6023042811314347", "amount": "50000.00", "actualAmount": "0.00", "fee": "0.00", "status": 1, "sign": "fP433ygWVDLVGxYkVnIJj7riGq0U3vyVX+MbBAImxfGLZkZcEAHVEoVYuULZSmXAAXKRSyd67WlDNm+24pougM54ofAoH4HMtCL2tfCoBReFyz3z02AGKkrKE2xWhSpWoqfQoBvzwuN5iGMMu0s9Q1YvqiwJ8WDVIENnmiIyD8qDJN7caHTW2US14/faG+69AvnuIgJ/nu7/jogOlgEYdZdVYU7gcRDE+d47KjlFGswQkJ/h/uzV7cWtUqrtOO7ZnZ3/z33Xx8awokX36QoYcPSWAU0h+Ij9O9402HNhm1eTbYcLU0uI/z8xCAtyAI/tTyiFijpiNlxUKQj+zKsILw==" } } ``` 返回data参数说明 | 参数名 | 类型 | 说明 | | :----------- | :------ | :------------------------------------------------------ | | orderId | String | 商户订单号(必须保证唯一性) | | orderNo | String | 平台订单号 | | amount | String | 交易金额 | | actualAmount | String | 收到金额 | | fee | String | 手续费 | | status | Integer | 状态(0未开始,1收款中,2收款成功3:收款失败,4:部分收款,5:超额收款, -1异常待确认) | | payTime | String | 支付成功时间(当status=2,4,5时有值)(越南时间), 格式: yyyy-MM-dd HH:mm:ss | | errorMsg | String | 失败原因(当status=3时有值) | | sign | String | 签名 | ### **支付方式** | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | --- | -------------- | ---------------- | -------------- | -- | ------ | | VND | QR | QR | 10000-50000000 | 可用 | QR二维码 | | VND | BANK\_TRANSFER | BANK | 10000-50000000 | 可用 | 银行转账 | | VND | EWALLET | MOMO\_VND | 20000-5000000 | 可用 | MOMO钱包 | | USD | QR | VN\_QR\_USD | 0.99-2000 | 可用 | QR二维码 | | USD | BANK\_TRANSFER | VN\_BANK\_USD | 0.99-2000 | 可用 | 银行转账 | ## **代付API** ### **代付申请** **简要描述:** * 创建代付订单 **URL:`/vnd/pay/apply`** **参数:** | 参数名 | 必选 | 类型 | 说明 | | :------------ | :- | :----- | :------------------------------------------------------------------------------------------------- | | appId | 是 | Long | 业务ID(后台获取,需要根据URL中的币种传递对应的业务ID) | | orderId | 是 | String | 商户订单号(必须保证唯一性,长度不超过48) | | amount | 是 | String | 交易金额(单位:**₫**) 范围:50,000-10,000,000 | | accountType | 是 | String | 账户类型: BANK\_ACCOUNT | | bankCode | 是 | String | 银行代码 | | accountNo | 是 | String | 用户银行账号 | | name | 是 | String | 收款人姓名(收款人姓名 格式:英文或越南语大小写且允许有空格,1-30位,"firstName middleName lastName" (middleName 非必填, 特殊字符支持 '.-)) | | phone | 是 | String | 真实手机号 | | email | 是 | String | 真实电子邮件 | | notifyUrl | 否 | String | 回调地址 | | subject | 否 | String | 支付备注(交易标题,商品名称,支付原因) | | body | 否 | String | 备注详情 | | partnerUserId | 是 | String | 用户唯一标识(如用户ID userId),用于风控系统,必须真实有效,否则会影响交易。 格式要求:数字、大小写字母或常用符号-\~!@#\$%&\*()\_。 | | sign | 是 | String | 签名 | ##### request(accountType为BANK\_CARD类型时) ```json theme={null} { "appId": 1054, "orderId": "M100000450012", "amount": "500", "accountType": "BANK_CARD", "bankCode": "BDO", "accountNo": "09876543210", "name": "john doe", "phone": "08276543210", "email": "johndoe@cashfree.com", "subject": "iphone13", "body": "ProMotion technology with adaptive refresh rates up to 120Hz", "partnerUserId": "149597870", "sign": "I1PeK3eJOVsFFNowxVRqMXpeWm1lr/BcRpBi8WsW4wVo1+5CC3JsrFq/m/L2O69NzKHvtDWi4zia3DL3dPut0yMyUyqL91LNCSaeISbGsQPlhEsQpyTOryS/RKOfsrn2Xo37SCF/phAvndOk2jwwGwqM5xLz1ms9Ukl85wv27QFNrXIMxK2p18oe7MpMYrgf+xvEBE/VqCtKMtN9pO449wWwXzHWNPbZ76s4pAvKwRE9yXQDr7Iw14Dktcnl1FoLM4gWM/obkO+mz6SyAGDuXhVh/+OD/IGNiCyTCNq6ciQY28UnCFV6ZIP40gxsFhfBJKbK+Raw7y1Bh912ifYfug==" } ``` response ```json theme={null} { "status": "1", "error": "00000000", "msg": "", "data": { "orderId": "M100000450013", "orderNo": "3023062014149637", "sign": "LmhUnkw5j0pMiimsG8rKwdNNZGvXH5MpSmD6mdHZwq1SQwuK5BohmdEoqKB/jkMk28o3da4Cxh6Q+tW97+yTCemRrF+dMaHA73rpOeUuujKQl/UcFvJuMhfLBa2tp09L71NzoBqpPD6aXf37mYAz8E1HmERwFPpac5FVxIYanHG8cqmMLJYsVmHTSxWavgWU03ys9UczBePkBiR8sl2FSOhFABB0wAP28lswrV/ABS68IsLKtyd1fyI3GBfSbIK5nDEEnlE+EdElFdLs9taAxJImeVF1x4eT47+bkPJ2qS8z3K8QGzKLF3W+8SiRZGfSwDTsLKH+2Vycvy5auRl+ag==" } } ``` 返回data参数说明 | 参数名 | 必选 | 类型 | | :------ | :----- | :------------- | | orderId | String | 商户订单号(必须保证唯一性) | | orderNo | String | 平台订单号 | | sign | String | 签名 | ### **代付查询** **简要描述:** * 查询代付订单 **URL:`/vnd/pay/query`** **参数:** | 参数名 | 必选 | 类型 | 说明 | | :------ | :- | :----- | :------------------------------ | | appId | 是 | Long | 业务ID(后台获取,需要根据URL中的币种传递对应的业务ID) | | orderId | 是 | String | 商户订单号 | | orderNo | 否 | String | 平台订单号(响应快) | | sign | 是 | String | 签名 | request ```json theme={null} { "appId": 1000, "orderId": "M1234567111", "orderNo": "3022111516571436", "sign": "ZxkVZL+GAyv0VhvWn4IvuYahTzxgQuthkuV2ONWiqIfIDb2avvHlFOUJVzqZi1q8CPHXZm1ltanRTRVTxfsuftLvGeDioUHglWt46/RU6c1OPznpLGsZ35Q3n5tW2y1EnOsxPynXBFLuDQy+aZ3l9u6AQ30T0zQexMGT+IxuFkmUp02g/6juaHa5ZgNMv7lN67ixIp162wrM7OJuaOif872QijSceRdZhzaMGImAwB0D4MosRV4WMBOKkwgPdmS7GuZN66YUidXk3wTGqX3MYRw6M0kj4eNegSUwPXvp4q4p0KO8Y3xUMld54GY2ApX3WN3CBtC/vpJqEszjGBbbGg==" } ``` response — 订单失败 ```json theme={null} { "status": "1", "error": "00000000", "msg": "", "data": { "orderId": "M1234567111", "orderNo": "3022111516571436", "amount": "100000.00", "fee": "0.00", "status": 3, "errorMsg": "Đơn hàng không tồn tại", "sign": "KKuvCl0SuNANJs+l2ogDaJm8pmV+Hi+Xa7q27vJ6D1Ehs4aOp13kRbITfJAhczh3T81BE9qwHeJaYwf+r0EypKM9TL6pMwfG8Az4gRy1D57wiUaVjl2PWcvbEqrn1hL0b+btkjvAM9I+CcSv+wuOW3/uku17Ws3FhgJLj9sFsQUBAPjDO+758VnwBytCOLBmljLBXyKgNgpmFQ1/DNkqWl0UNzyLK45Zw3yf5NiwhEFbvW0jlOWlfu/ql4hluISUQG573jEoFCBEnQLb2tQoRZj1QYNRCXPf5lbej0vzqbEwvR9h+ZOf255t1MocJkdIe463DTV5U3KZdVT87HMagw==" } } ``` response — 订单成功 ```json theme={null} { "status": "1", "error": "00000000", "msg": "", "data": { "orderId": "M1234567112", "orderNo": "3022111517401574", "amount": "100000.00", "fee": "1003.00", "status": 2, "payTime": "2024-03-01 23:59:59", "sign": "khPtOmGq+cpKX0HFAI/lbP0dx4oVyNAnL5oLsdmhDJdASlQm0yg5I3o+MhImYggEsL6c2bo5fP29t54OZFqSdQDfIuNDvGbAMAr4mRBxc0hoHLkBLyyagfVPBLyQA1JY8XV3ZL4ySzQ3ZQnMCfrh2K39ueUuz6HpZ03Hj0KYijVRCXAZaio/L5jfLBT12QXmvIfAHa8s/k9flhK05ENHPep3zjj/MZGOEaX7jkEJLfjK0duypDCa61BRQjM+oePOdVsgleIl1Yf98UAxMDZ/A3912KFHEb+/jvmdnulNbiJFyuT1fEe+j2teUgw3vFsZAtwNWAgxhC7UO+N0Q5z4EA==" } } ``` 返回data参数说明 | 参数名 | 类型 | 说明 | | :------- | :------ | :-------------------------------------------------- | | orderId | String | 商户订单号(必须保证唯一性) | | orderNo | String | 平台订单号 | | amount | String | 交易金额 | | fee | String | 手续费 | | status | Integer | 订单状态(0未开始, 1放款中 2放款成功(终态) 3放款失败(终态) -1异常待确认) | | payTime | String | 支付成功时间(当status=2时有值)(越南时间), 格式: yyyy-MM-dd HH:mm:ss | | errorMsg | String | 支付失败原因(当status=3时有值) | | sign | String | 签名 | ### **支付方式** | 币种 | 支付类型(accountType) | 支付编码(bankCode) | 限额 | 状态 | 说明 | | --- | ----------------- | -------------- | -------------- | -- | -------------------------- | | VND | BANK\_ACCOUNT | VCB | 10000-50000000 | 可用 | Vietcombank | | VND | BANK\_ACCOUNT | DAB | 10000-50000000 | 可用 | DongA Bank | | VND | BANK\_ACCOUNT | TCB | 10000-50000000 | 可用 | Techcombank | | VND | BANK\_ACCOUNT | MB | 10000-50000000 | 可用 | Military Bank | | VND | BANK\_ACCOUNT | VIB | 10000-50000000 | 可用 | Vietnam International Bank | | VND | BANK\_ACCOUNT | ICB | 10000-50000000 | 可用 | VietinBank | | VND | BANK\_ACCOUNT | EXB | 10000-50000000 | 可用 | Eximbank | | VND | BANK\_ACCOUNT | ACB | 10000-50000000 | 可用 | Asia Commercial Bank | | VND | BANK\_ACCOUNT | HDB | 10000-50000000 | 可用 | HDBank | | VND | BANK\_ACCOUNT | MSB | 10000-50000000 | 可用 | Maritime Bank | | VND | BANK\_ACCOUNT | NCB | 10000-50000000 | 可用 | National Citizen Bank | | VND | BANK\_ACCOUNT | VAB | 10000-50000000 | 可用 | Viet A Bank | | VND | BANK\_ACCOUNT | VPB | 10000-50000000 | 可用 | VPBank | | VND | BANK\_ACCOUNT | STB | 10000-50000000 | 可用 | Sacombank | | VND | BANK\_ACCOUNT | BAB | 10000-50000000 | 可用 | Bac A Bank | | VND | BANK\_ACCOUNT | GPB | 10000-50000000 | 可用 | GPBank | | VND | BANK\_ACCOUNT | AGB | 10000-50000000 | 可用 | Agribank | | VND | BANK\_ACCOUNT | BIDV | 10000-50000000 | 可用 | BIDV | | VND | BANK\_ACCOUNT | OJB | 10000-50000000 | 可用 | OceanBank | | VND | BANK\_ACCOUNT | PGB | 10000-50000000 | 可用 | PG Bank | | VND | BANK\_ACCOUNT | SHB | 10000-50000000 | 可用 | Saigon - Hanoi Bank | | VND | BANK\_ACCOUNT | TPB | 10000-50000000 | 可用 | TienPhong Bank | | VND | BANK\_ACCOUNT | NAB | 10000-50000000 | 可用 | Nam A Bank | | VND | BANK\_ACCOUNT | SGB | 10000-50000000 | 可用 | Saigon Bank | | VND | BANK\_ACCOUNT | ABB | 10000-50000000 | 可用 | An Binh Bank | | VND | BANK\_ACCOUNT | SCB | 10000-50000000 | 可用 | Saigon Commercial Bank | | VND | BANK\_ACCOUNT | IVB | 10000-50000000 | 可用 | Indovina Bank | | VND | BANK\_ACCOUNT | VCCB | 10000-50000000 | 可用 | Viet Capital Bank | | VND | BANK\_ACCOUNT | OCB | 10000-50000000 | 可用 | Orient Commercial Bank | | VND | BANK\_ACCOUNT | SEA | 10000-50000000 | 可用 | Dong Nam A Bank | | VND | BANK\_ACCOUNT | LVB | 10000-50000000 | 可用 | LienVietPostBank | | VND | BANK\_ACCOUNT | WRB | 10000-50000000 | 可用 | Woori Bank | | VND | BANK\_ACCOUNT | PVCOMBANK | 10000-50000000 | 可用 | PVcomBank | | VND | BANK\_ACCOUNT | SHNB | 10000-50000000 | 可用 | Shinhan Bank | | VND | BANK\_ACCOUNT | KLB | 10000-50000000 | 可用 | Kien Long Bank | | VND | BANK\_ACCOUNT | BVB | 10000-50000000 | 可用 | BaoViet Bank | | VND | BANK\_ACCOUNT | GAB | 10000-50000000 | 可用 | Dai A Bank | | VND | BANK\_ACCOUNT | NVB | 10000-50000000 | 可用 | Navibank | # 支付凭证 PDF/ZIP 接口 Source: https://doc.haipay.net/docs/zh/api/version2/VoucherPdf ## **1. 接口概述** **简要描述:** * **根据代付订单号生成支付凭证 PDF 文件(只有当订单状态为成功或失败时);当只传一个订单号时返回单个 PDF 文件,多笔订单时返回 ZIP 压缩包。** **请求方式:** * **HTTP Method**:`POST` * **Content-Type**:`application/json` **接口地址:** `/common/voucher/pdf` *** ## **2. 请求参数** **请求体:JSON** | 参数名 | 必选 | 类型 | 说明 | | :--------- | :- | :------------ | :------------------------------------------ | | appId | 是 | Long | 业务ID(后台获取) | | orderNos | 是 | List\ | 代付订单号列表,至少 1 个,最多100个;单个订单返回 PDF,多笔订单返回 ZIP | | getFee | 否 | Integer | 是否显示手续费:0-不显示,1-显示,默认:0 | | getSubject | 否 | Integer | 是否显示备注:0-不显示,1-显示,默认:0 | | isAmount | 否 | Integer | 金额显示方式:0-使用实际到账金额,1-使用订单金额,默认:0 | | lang | 否 | String | 凭证语言:`zh` / `en`,默认:`zh` | | sign | 是 | String | 签名,使用商户密钥对上述参数进行签名(签名规则与其它接口一致) | *** ## **3. 请求示例** ### 3.1 单个订单号示例(返回 PDF) **请求体示例:** ```json theme={null} { "appId": 2065, "orderNos": [ "1525121020031156560" ], "getFee": 0, "isAmount": 0, "getSubject": 0, "lang": "zh", "sign": "cvEOw/NyNTvp0NBH+Ef31BP0/UFTEcbkj9Nqh/ek8PqywbbwBKIP5aM5b63BiB8JWxGdVeNvbltMsmKnWVCJOdNVno5xwjJnDFl3NFXy05vIh1OINDPWAbtvm143XrTvv7dD2g1ewrz2Aij9bwM74GvZJwP6QyRMZRjp3rDAMvpxZ/WiASOak9tcp7MPny2wq42irt/4YDY4snjCo8MPqgvhJvjewj0FEjS2YvDED8rmZwCqyW9gqKhYhl101jSLbKQ5rf0WrKZvlc/Y2HZqBQKPjhnOJUJmLe/7gPg6tKzq2pF7FmoxBvGyjQ3sjk9SvyxuD32ugqP1RaI2Q9ukdw==" } ``` ### 3.2 多个订单号示例(返回 ZIP) **请求体示例:** ```json theme={null} { "appId": 2065, "orderNos": [ "1525121020031156560", "1525121020031156561" ], "getFee": 0, "isAmount": 0, "lang": "zh", "sign": "gpIClDa34j0VE/0SKpy/UCzjqN0i8mTDKhI0gu4oO861ajiRk3C0Ei4RogQmZ5fT5UOVKUK9n7wsyt2psCztuP65tJ8OpOzeiLrtAybQxyiE6Fo56sUMqHok9ubZWp+kZGZnCe2N8uCpxLh39P/NUv/bF7TzpIitdTjYAGI7TG2++YKPqyMnsR0wCu7Aqtk0hN+a8KXXDc+WtGbulP4H257gjD7W6YFDuyLv32MGUyx/VxlbmKN0yyI7D8UFnakrEryIlC4Xi5J2B/8dRfb1l/okMwVI8nRjvCuj0b2ORHHfqefMtHYzWSXtWyoRo/2yxvbaEmckxbyb6e2tfsjLLA==" } ``` ## **4. 响应说明** ### 4.1 成功响应 * **HTTP 状态码**:`200` * **响应体**:二进制文件流 * 当 `orderNos` 只有 1 个订单号时: * 返回单个 **PDF** 文件 * `Content-Type` 通常为:`application/pdf` * 当 `orderNos` 包含多个订单号时: * 返回 **ZIP** 压缩包 * `Content-Type` 通常为:`application/zip` > 建议: > > * 根据响应头 `Content-Type` 以及文件大小,将响应体按二进制方式直接保存到本地文件。 > * 文件名可根据业务自行命名,也可从响应头`Content-Disposition` 中 获取:例如 `attachment;filename*=UTF-8''vouchers_20251229200623.zip` 。 > * 该api接口请求时间随订单数量进行增加,可能达到 30s+,注意保持网络的稳定。。 ### 4.2 失败响应 当参数校验失败、签名错误、IP 不在白名单或 PDF/ZIP 生成失败时,接口会返回 JSON 结构的错误信息,示例如下: ```json theme={null} { "status": "0", "error": "1001", "msg": "orderNos can not be empty", "data": null } ``` # 代收支付方式列表 Source: https://doc.haipay.net/docs/zh/api/version2/cashin_code_list 以下是列出了所有支持的国家/地区和币种的所有支付方式以及请求参数、限额等信息。 ## 全球 | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | --- | -------------- | ---------------- | --------- | -- | ---------- | | USD | BANK\_TRANSFER | CREDIT\_CARD | 0.99-1000 | 可用 | VISA | | USD | BANK\_TRANSFER | CREDIT\_CARD | 0.99-1000 | 可用 | MasterCard | | USD | BANK\_TRANSFER | CREDIT\_CARD | 0.99-1000 | 可用 | JCB | | USD | EWALLET | GOOGLE\_PAY | 0.99-1000 | 可用 | Google Pay | | USD | EWALLET | APPLE\_PAY | 0.99-1000 | 可用 | Apple Pay | ## 欧洲 ### 欧洲钱包 | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | --- | -------------- | ---------------- | --------- | -- | ---------------- | | USD | BANK\_TRANSFER | BANCONTACT\_USD | 0.99-1000 | 可用 | 比利时 Bancontact | | USD | BANK\_TRANSFER | EPS\_USD | 0.99-1000 | 可用 | 奥地利 EPS | | USD | BANK\_TRANSFER | IDEAL\_USD | 0.99-1000 | 可用 | 荷兰 IDEAL | | USD | EWALLET | BANCOMATPAY\_USD | 0.99-1000 | 可用 | 意大利 Bancomat Pay | | USD | BANK\_TRANSFER | BLIK\_USD | 0.99-1000 | 可用 | 波兰 BLIK | | EUR | BANK\_TRANSFER | BANCONTACT\_EUR | 0.99-1000 | 可用 | 比利时 Bancontact | | EUR | BANK\_TRANSFER | EPS\_EUR | 0.99-1000 | 可用 | 奥地利 EPS | | EUR | BANK\_TRANSFER | IDEAL\_EUR | 0.99-1000 | 可用 | 荷兰 IDEAL | | EUR | EWALLET | BANCOMATPAY\_EUR | 0.99-1000 | 可用 | 意大利 Bancomat Pay | | USD | BANK\_TRANSFER | PRZELEWY24\_USD | 0.99-1000 | 维护 | 波兰 Przelewy24 | ### 土耳其 | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | --- | ---------------- | ---------------- | ----------- | -- | --------- | | TRY | BANK\_ACCOUNT | IBAN | 1000-500000 | 可用 | 土耳其国际银行支付 | | TRY | PAYMENT\_GATEWAY | PAPARA | 10-99000 | 维护 | Papara钱包 | ## 南美洲 ### 巴西 | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | --- | ------------- | ---------------- | ------- | -- | ------ | | BRL | QR | PIX | 5-20000 | 可用 | PIX二维码 | ## 亚洲 ### 香港 | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | --- | -------------- | ------------------------ | ----------- | -- | -------- | | HKD | EWALLET | WXPAY\_SCANCODE | 1-1000 | 可用 | 香港微信扫码支付 | | HKD | EWALLET | ALIPAY\_HKD | 1-5000 | 可用 | AlipayHK | | USD | EWALLET | HK\_WXPAY\_SCANCODE\_USD | 0.99-120 | 可用 | 香港微信扫码支付 | | USD | BANK\_TRANSFER | ALIPAY\_USD | 0.99-499.99 | 可用 | AlipayHK | | USD | BANK\_TRANSFER | PAYME\_USD | 1-1000 | 维护 | PayMe | ### 新加坡 | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | --- | -------------- | ---------------- | ------ | -- | ---------- | | SGD | EWALLET | PAYNOW\_SGD | 1-3000 | 可用 | PayNow扫码支付 | | USD | BANK\_TRANSFER | PAYNOW\_USD | 1-3000 | 可用 | PayNow扫码支付 | ### 台湾 | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | --- | -------------- | ------------------------- | ------------ | -- | ------------------ | | TWD | QR | JKO\_PAY\_QR | 30-20000 | 可用 | JkoPay QR | | TWD | EWALLET | JKO\_PAY\_TWD | 30-20000 | 可用 | JkoPay | | TWD | BANK\_TRANSFER | ATM | 1000-20000 | 可用 | ATM收银台 | | TWD | BANK\_TRANSFER | STORE\_IBON | 100-20000 | 可用 | 7-11超商 | | TWD | BANK\_TRANSFER | STORE\_HILIFEET | 100-20000 | 可用 | 萊爾富Life-ET | | TWD | BANK\_TRANSFER | STORE\_OKGO | 100-20000 | 可用 | OK超商OK-go | | TWD | BANK\_TRANSFER | STORE\_FAMI | 100-20000 | 可用 | 全家FAMIPORT | | TWD | BANK\_TRANSFER | STORE\_MBC\_HILIFEET | 100-20000 | 可用 | 超商行動掃碼(萊爾富Life-ET) | | TWD | BANK\_TRANSFER | STORE\_MBC\_IBON | 100-20000 | 可用 | 7-11超商行動掃碼 | | USD | EWALLET | JKO\_PAY | 0.99-499.99 | 可用 | JkoPay | | USD | BANK\_TRANSFER | LINE\_PAY\_USD | 2.99-499.99 | 可用 | LinePay | | USD | BANK\_TRANSFER | ATM\_USD | 32.99-499.99 | 可用 | ATM收银台 | | USD | BANK\_TRANSFER | STORE\_IBON\_USD | 2.99-499.99 | 可用 | 7-11超商 | | USD | BANK\_TRANSFER | STORE\_HILIFEET\_USD | 2.99-499.99 | 可用 | 萊爾富Life-ET | | USD | BANK\_TRANSFER | STORE\_OKGO\_USD | 2.99-499.99 | 可用 | OK超商OK-go | | USD | BANK\_TRANSFER | STORE\_FAMI\_USD | 2.99-499.99 | 可用 | 全家FAMIPORT | | USD | BANK\_TRANSFER | STORE\_MBC\_HILIFEET\_USD | 2.99-499.99 | 可用 | 超商行動掃碼(萊爾富Life-ET) | | USD | BANK\_TRANSFER | STORE\_MBC\_IBON\_USD | 2.99-499.99 | 可用 | 超商行動掃碼(7-11) | ### 日本 | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | --- | -------------- | ------------------------------- | ---------- | -- | ------------- | | JPY | EWALLET | AU\_PAY | 100-150000 | 可用 | AuPay | | JPY | EWALLET | MERPAY | 100-150000 | 可用 | MerPay | | JPY | BANK\_TRANSFER | GMO\_AOZORA | 100-150000 | 可用 | GMO Aozora VA | | JPY | BANK\_TRANSFER | KONBINI\_FAMILYMART | 300-150000 | 可用 | 全家便利店 | | JPY | BANK\_TRANSFER | KONBINI\_LAWSON | 300-150000 | 可用 | 罗森便利店 | | JPY | BANK\_TRANSFER | KONBINI\_SEVEN\_ELEVEN | 300-150000 | 可用 | 7-11便利店 | | JPY | BANK\_TRANSFER | KONBINI\_MINISTOP | 300-150000 | 可用 | 迷你岛便利店 | | USD | EWALLET | JP\_AU\_PAY\_USD | 0.99-1000 | 可用 | AuPay | | USD | EWALLET | JP\_MERPAY\_USD | 0.99-1000 | 可用 | MerPay | | USD | BANK\_TRANSFER | JP\_GMO\_AOZORA\_USD | 0.99-1000 | 可用 | GMO Aozora VA | | USD | BANK\_TRANSFER | JP\_KONBINI\_FAMILYMART\_USD | 1.99-1000 | 可用 | 全家便利店 | | USD | BANK\_TRANSFER | JP\_KONBINI\_LAWSON\_USD | 1.99-1000 | 可用 | 罗森便利店 | | USD | BANK\_TRANSFER | JP\_KONBINI\_SEVEN\_ELEVEN\_USD | 1.99-1000 | 可用 | 7-11便利店 | | USD | BANK\_TRANSFER | JP\_KONBINI\_MINISTOP\_USD | 1.99-1000 | 可用 | 迷你岛便利店 | ### 韩国 | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | --- | -------------- | ---------------- | ------------ | -- | ------------------ | | KRW | BANK\_TRANSFER | KAKAOPAY\_KRW | 1000-1500000 | 可用 | Kakao Pay钱包 | | KRW | BANK\_TRANSFER | NAVERPAY\_KRW | 1000-1500000 | 可用 | Naver Pay钱包 | | KRW | BANK\_TRANSFER | TOSS\_KRW | 1000-1500000 | 可用 | Toss Pay钱包 | | KRW | EWALLET | SAMSUNGPAY\_KRW | 1000-1500000 | 可用 | Samsung Pay钱包 | | KRW | EWALLET | PAYCO\_KRW | 1000-1500000 | 可用 | PayCo钱包 | | KRW | BANK\_TRANSFER | BANK\_KRW | 1000-1500000 | 可用 | 银行账号授权支付(支持韩国所有银行) | | USD | BANK\_TRANSFER | KAKAOPAY\_USD | 0.99-1000 | 可用 | Kakao Pay钱包 | | USD | BANK\_TRANSFER | NAVERPAY\_USD | 0.99-1000 | 可用 | Naver Pay钱包 | | USD | BANK\_TRANSFER | TOSS\_USD | 0.99-1000 | 可用 | Toss Pay钱包 | | USD | EWALLET | SAMSUNGPAY\_USD | 0.99-1000 | 可用 | Samsung Pay钱包 | | USD | EWALLET | PAYCO\_USD | 0.99-1000 | 可用 | PayCo钱包 | | USD | BANK\_TRANSFER | KR\_BANK\_USD | 0.99-1000 | 可用 | 银行账号授权支付(支持韩国所有银行) | ### 菲律宾 | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | --- | ---------------- | ----------------- | --------- | -- | ----------- | | PHP | QR | PH\_QRPH\_DYNAMIC | 100-50000 | 可用 | QRPH动态码 | | PHP | PAYMENT\_GATEWAY | GCASH\_QR | 100-50000 | 可用 | Gcash钱包(唤醒) | | PHP | PAYMENT\_GATEWAY | GCASH\_URL | 100-50000 | 可用 | Gcash钱包(直连) | | PHP | PAYMENT\_GATEWAY | GRPY\_URL | 100-50000 | 可用 | GrabPay钱包 | | PHP | PAYMENT\_GATEWAY | PAYMAYA\_URL | 100-50000 | 可用 | PayMaya钱包 | ### 泰国 | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | :-- | :--------------- | :--------------- | :------- | :- | :-------------- | | THB | QR | QR | 1-8000 | 可用 | PromptPay QR二维码 | | THB | PAYMENT\_GATEWAY | TM | 1-8000 | 可用 | TrueMoney钱包 | | USD | QR | TH\_QR\_USD | 0.99-220 | 可用 | PromptPay QR二维码 | | USD | PAYMENT\_GATEWAY | TH\_TM\_USD | 0.99-220 | 可用 | TrueMoney钱包 | ### 越南 | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | :-- | :------------- | :--------------- | :-------------- | :- | :----- | | VND | QR | QR | 100000-10000000 | 可用 | QR二维码 | | VND | BANK\_TRANSFER | BANK | 100000-10000000 | 可用 | 银行转账 | | VND | EWALLET | MOMO\_VND | 100000-10000000 | 可用 | MOMO钱包 | | USD | QR | VN\_QR\_USD | 0.99-2000 | 可用 | QR二维码 | | USD | BANK\_TRANSFER | VN\_BANK\_USD | 0.99-2000 | 可用 | 银行转账 | ### 印尼 | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | :-- | :------------ | :----------------- | :------------- | :- | :---------- | | IDR | QR | dynamic | 10000-10000000 | 可用 | QRIS动态码 | | IDR | EWALLET | DANA | 10000-20000000 | 可用 | Dana钱包 | | IDR | EWALLET | SHOPEEPAY | 10000-20000000 | 可用 | ShopeePay钱包 | | IDR | EWALLET | LINKAJA | 10000-20000000 | 可用 | LinkAja钱包 | | IDR | CASHIER | OVO | 10000-20000000 | 可用 | OVO钱包 | | IDR | VA | 002 | 10000-50000000 | 可用 | BRI银行 | | IDR | VA | 009 | 10000-50000000 | 可用 | BNI银行 | | IDR | VA | 013 | 10000-50000000 | 维护 | PERMATA银行 | | IDR | VA | 022 | 10000-50000000 | 维护 | CIMB银行 | | USD | QR | ID\_QRIS\_USD | 0.99-500 | 可用 | QRIS动态码 | | USD | EWALLET | ID\_DANA\_USD | 0.99-1000 | 可用 | Dana钱包 | | USD | EWALLET | ID\_SHOPEEPAY\_USD | 0.99-1000 | 可用 | ShopeePay钱包 | | USD | EWALLET | ID\_LINKAJA\_USD | 0.99-1000 | 可用 | LinkAja钱包 | | USD | CASHIER | ID\_OVO\_USD | 0.99-1000 | 可用 | OVO钱包 | | USD | VA | ID\_BRI\_USD | 0.99-2500 | 可用 | BRI银行 | | USD | VA | ID\_BNI\_USD | 0.99-2500 | 可用 | BNI银行 | | USD | VA | ID\_PERMATA\_USD | 0.99-2500 | 维护 | PERMATA银行 | | USD | VA | ID\_CIMB\_USD | 0.99-2500 | 维护 | CIMB银行 | ### 马来西亚 | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | :-- | :------------- | :--------------- | :---------- | :- | :------------ | | MYR | QR | QR | 1-3000 | 维护 | DuitNow QR二维码 | | MYR | EWALLET | TNG | 1-3000 | 可用 | Touch N Go | | MYR | EWALLET | GRAB | 1-3000 | 可用 | GrabPay | | MYR | EWALLET | BOOST | 1-3000 | 可用 | Boost | | MYR | EWALLET | SHOPEE | 1-3000 | 可用 | ShopeePay | | MYR | EWALLET | MCash | 1-3000 | 可用 | MCash | | MYR | BANK\_TRANSFER | FPX\_MYR | 1-3000 | 可用 | FPX银行转账 | | USD | BANK\_TRANSFER | TNG\_USD | 0.99-499.99 | 可用 | Touch N Go | | USD | BANK\_TRANSFER | BOOST\_USD | 0.99-499.99 | 可用 | Boost | | USD | BANK\_TRANSFER | FPX\_USD | 0.99-499.99 | 可用 | FPX银行转账 | ### 巴基斯坦 | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | :-- | :--------------- | :--------------- | :-------- | :- | :------------ | | PKR | PAYMENT\_GATEWAY | CASHIER | 10-500000 | 可用 | 收银台模式 | | PKR | EWALLET | JAZZCASH | 10-500000 | 可用 | JazzCash钱包 | | PKR | EWALLET | EASYPAISA | 10-500000 | 可用 | EasyPaisa钱包 | | PKR | EWALLET | ALFA | 10-500000 | 维护 | ALFA钱包 | | PKR | EWALLET | HBL\_KONNECT | 10-500000 | 维护 | HBL KONNECT钱包 | ### 孟加拉 | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | :-- | :------------ | :--------------- | :-------- | :- | :---- | | BDT | EWALLET | BDT\_BKASH | 100-50000 | 可用 | bkash | | BDT | EWALLET | BDT\_NAGAD | 100-50000 | 可用 | nagad | ## 中东 ### 埃及 | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | :-- | :------------ | :--------------- | :------- | :- | :--------------- | | EGP | EWALLET | REFERENCE\_CODE | 10-30000 | 可用 | Fawry钱包 | | EGP | EWALLET | VODAFONE | 5-30000 | 可用 | Vodafone钱包 | | EGP | EWALLET | ORANGE | 5-30000 | 可用 | Orange Cash钱包 | | EGP | EWALLET | ETISALAT | 5-30000 | 可用 | Etisalat Cash钱包 | | EGP | EWALLET | WEPAY | 5-30000 | 可用 | WE Pay钱包 | | EGP | EWALLET | R2P | 5-30000 | 维护 | MWallet USSD推送支付 | | EGP | EWALLET | OTP | 5-30000 | 维护 | Vodafone OTP验证支付 | ### 沙特阿拉伯 | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | :-- | :--------------- | :--------------- | :------- | :- | :--------- | | SAR | PAYMENT\_GATEWAY | CARD | 0.5-5000 | 可用 | VISA | | SAR | PAYMENT\_GATEWAY | CARD | 0.5-5000 | 可用 | MasterCard | | SAR | PAYMENT\_GATEWAY | CARD | 0.5-5000 | 可用 | Mada | | SAR | PAYMENT\_GATEWAY | STCPAY | 0.5-300 | 可用 | STCPay钱包 | | SAR | EWALLET | APPLE\_PAY | 0.5-5000 | 可用 | Apple Pay | ### 阿联酋 | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | :-- | :--------------- | :--------------- | :------- | :- | :--------- | | AED | PAYMENT\_GATEWAY | CARD | 0.5-5000 | 可用 | VISA | | AED | PAYMENT\_GATEWAY | CARD | 0.5-5000 | 可用 | MasterCard | | AED | EWALLET | APPLE\_PAY | 0.5-5000 | 可用 | Apple Pay | ### 科威特 | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | :-- | :--------------- | :--------------- | :------ | :- | :--------- | | KWD | PAYMENT\_GATEWAY | CARD | 0.5-800 | 可用 | VISA | | KWD | PAYMENT\_GATEWAY | CARD | 0.5-800 | 可用 | MasterCard | | KWD | PAYMENT\_GATEWAY | CARD | 0.5-800 | 可用 | KNET | | KWD | EWALLET | APPLE\_PAY | 0.5-800 | 可用 | Apple Pay | ### 卡塔尔 | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | :-- | :--------------- | :--------------- | :------- | :- | :--------- | | QAR | PAYMENT\_GATEWAY | CARD | 0.5-5000 | 可用 | VISA | | QAR | PAYMENT\_GATEWAY | CARD | 0.5-5000 | 可用 | MasterCard | | QAR | PAYMENT\_GATEWAY | CARD | 0.5-5000 | 可用 | NAPS | | QAR | EWALLET | APPLE\_PAY | 0.5-5000 | 可用 | Apple Pay | ### 阿曼 | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | :-- | :--------------- | :--------------- | :------ | :- | :--------- | | OMR | PAYMENT\_GATEWAY | CARD | 0.5-800 | 可用 | VISA | | OMR | PAYMENT\_GATEWAY | CARD | 0.5-800 | 可用 | MasterCard | | OMR | EWALLET | APPLE\_PAY | 0.5-800 | 可用 | Apple Pay | ### 巴林 | 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | :-- | :--------------- | :--------------- | :------ | :- | :--------- | | BHD | PAYMENT\_GATEWAY | CARD | 0.5-800 | 可用 | VISA | | BHD | PAYMENT\_GATEWAY | CARD | 0.5-800 | 可用 | MasterCard | | BHD | PAYMENT\_GATEWAY | CARD | 0.5-800 | 可用 | BENEFIT | | BHD | EWALLET | APPLE\_PAY | 0.5-800 | 可用 | Apple Pay | # 代付支付方式列表 Source: https://doc.haipay.net/docs/zh/api/version2/cashout_code_list 以下是列出了所有支持的国家/地区和币种的所有支付方式以及请求参数、限额等信息。 ## 全球 ## 美国 | 币种 | 支付类型(accountType) | 支付编码(bankCode) | 限额 | 状态 | 说明 | | --- | ----------------- | -------------- | --------- | -- | --------- | | USD | EWALLET | VENMO | 1-800 | 可用 | Venmo钱包 | | USD | BANK\_ACCOUNT | ACH | 10-200000 | 可用 | ACH转账 | | USD | EWALLET | ECASHAPP | 30-800 | 可用 | CashApp钱包 | ## 欧洲 ### 土耳其 | 币种 | 支付类型(accountType) | 支付编码(bankCode) | 限额 | 状态 | 说明 | | --- | ----------------- | ---------------- | ----------- | -- | ------------------------------------ | | TRY | EWALLET | PAPARA | 10-99000 | 维护 | Papara钱包 | | TRY | BANK\_ACCOUNT | AKB | 2000-500000 | 可用 | AKBANK T.A.Ş. | | TRY | BANK\_ACCOUNT | Burgan\_Bank | 2000-500000 | 可用 | AKBANK T.A.Ş. | | TRY | BANK\_ACCOUNT | CITI\_BANK | 2000-500000 | 可用 | CITIBANK A.Ş.. | | TRY | BANK\_ACCOUNT | DENIZ\_BANK | 2000-500000 | 可用 | DENİZBANK A.Ş.. | | TRY | BANK\_ACCOUNT | FIBA\_BANK | 2000-500000 | 可用 | FIBABANKA A.Ş. | | TRY | BANK\_ACCOUNT | FINANS\_BANK | 2000-500000 | 可用 | FİNANS BANK A.Ş.. | | TRY | BANK\_ACCOUNT | QNB | 2000-500000 | 可用 | QNB Finansbank. | | TRY | BANK\_ACCOUNT | HSBC\_BANK | 2000-500000 | 可用 | HSBC BANK A.Ş. | | TRY | BANK\_ACCOUNT | ING\_BANK | 2000-500000 | 可用 | ING BANK A.Ş.. | | TRY | BANK\_ACCOUNT | KUVEYT\_TURK | 2000-500000 | 可用 | KUVEYT TÜRK KATILIM BANKASI A.Ş.. | | TRY | BANK\_ACCOUNT | ODEA\_BANK | 2000-500000 | 可用 | ODEA BANK A.Ş.. | | TRY | BANK\_ACCOUNT | SEKER\_BANK | 2000-500000 | 可用 | ŞEKERBANK T.A.Ş. | | TRY | BANK\_ACCOUNT | TEKFEN\_BANK | 2000-500000 | 可用 | TEKFENBANK A.S.. | | TRY | BANK\_ACCOUNT | YAPI\_KREDI | 2000-500000 | 可用 | Yapıkredi | | TRY | BANK\_ACCOUNT | ZIRAAT\_BANK | 2000-500000 | 可用 | T.C. ZİRAAT BANKASI A.Ş.. | | TRY | BANK\_ACCOUNT | VAKIF\_BANK | 2000-500000 | 可用 | T. VAKIFLAR BANKASI. | | TRY | BANK\_ACCOUNT | ISB | 2000-500000 | 可用 | T. İŞ BANKASI A.Ş.. | | TRY | BANK\_ACCOUNT | GARANTI\_BANK | 2000-500000 | 可用 | T. GARANTİ BANKASI A.Ş.. | | TRY | BANK\_ACCOUNT | TCMB | 10-99000 | 维护 | T.C.MERKEZ BANKASI A.Ş. | | TRY | BANK\_ACCOUNT | ILB | 10-99000 | 维护 | İLLER BANKASI. | | TRY | BANK\_ACCOUNT | HALK\_BANK | 10-99000 | 维护 | T. HALK BANKASI A.Ş.. | | TRY | BANK\_ACCOUNT | TSKB | 10-99000 | 维护 | T.SINAİ KALK. BANKASI A.S.. | | TRY | BANK\_ACCOUNT | TURK\_EXIMB | 10-99000 | 维护 | T.IHRACAT KREDI BANKASI A.S. | | TRY | BANK\_ACCOUNT | KALKINMA\_BANK | 10-99000 | 维护 | T.KALKINMA BANKASI A.S.. | | TRY | BANK\_ACCOUNT | BAYINDIR\_BANK | 10-99000 | 维护 | BAYINDIRBANK A.S.. | | TRY | BANK\_ACCOUNT | EKONOMI\_BANK | 10-99000 | 维护 | T.EKONOMİ BANKASI A.S.. | | TRY | BANK\_ACCOUNT | TURK\_TICARET | 10-99000 | 维护 | T.DIŞ TICARET\_BANKASI A.S.. | | TRY | BANK\_ACCOUNT | ROMA\_BANK | 10-99000 | 维护 | BANCA DI ROMA S.P.A.. | | TRY | BANK\_ACCOUNT | ABN\_AMRO | 10-99000 | 维护 | ABN AMRO BANK N.V.. | | TRY | BANK\_ACCOUNT | ATB | 10-99000 | 维护 | ARAP TÜRK BANKASI A.S.. | | TRY | BANK\_ACCOUNT | KOC\_BANK | 10-99000 | 维护 | KOÇBANK A.S. | | TRY | BANK\_ACCOUNT | TURKISH\_BANK | 10-99000 | 维护 | TURKISH BANK A.Ş.. | | TRY | BANK\_ACCOUNT | JPMORGAN\_BANK | 10-99000 | 维护 | JP MORGAN CHASE BANK NA MERK C. | | TRY | BANK\_ACCOUNT | ADA\_BANK | 10-99000 | 维护 | ADABANK A.S.. | | TRY | BANK\_ACCOUNT | DEUTSCHE\_BANK | 10-99000 | 维护 | DEUTSCHE BANK A.S.. | | TRY | BANK\_ACCOUNT | CALYON\_BANK | 10-99000 | 维护 | CALYON BANK T.A.S. | | TRY | BANK\_ACCOUNT | ALTERNATIF\_BANK | 10-99000 | 维护 | ALTERNATİFBANK A.S.. | | TRY | BANK\_ACCOUNT | ANADOLU\_BANK | 10-99000 | 维护 | ANADOLUBANK A.Ş.. | | TRY | BANK\_ACCOUNT | DILER\_BANK | 10-99000 | 维护 | DİLER YATIRIM BANKASI A.S.. | | TRY | BANK\_ACCOUNT | GSD\_BANK | 10-99000 | 维护 | GSD YATIRIM BANKASI A.S.. | | TRY | BANK\_ACCOUNT | NUROL\_BANK | 10-99000 | 维护 | NUROL YATIRIM BANKASI A.S.. | | TRY | BANK\_ACCOUNT | CALIK\_BANK | 10-99000 | 维护 | ÇALIK YATIRIM BANKASI A.S. | | TRY | BANK\_ACCOUNT | TURKLAND\_BANK | 10-99000 | 维护 | TURKLAND BANK A.Ş.. | | TRY | BANK\_ACCOUNT | URGAN\_BANK | 10-99000 | 维护 | URGAN BANK A.Ş.. | | TRY | BANK\_ACCOUNT | AKTIF\_BANK | 10-99000 | 维护 | AKTİF YATIRIM BANKASI A.Ş. | | TRY | BANK\_ACCOUNT | ALBARAKA\_TURK | 10-99000 | 维护 | ALBARAKA TÜRK KATILIM BANKASI A.Ş.. | | TRY | BANK\_ACCOUNT | ASYA\_BANK | 10-99000 | 维护 | ASYA KATILIM BANKASI A.Ş.. | | TRY | BANK\_ACCOUNT | PTT | 10-99000 | 维护 | PTT. | | TRY | BANK\_ACCOUNT | TURKIYE\_FINANS | 10-99000 | 维护 | TÜRKİYE FİNANS KATILIM BANKASI A.Ş.. | | TRY | BANK\_ACCOUNT | ININAL | 10-99000 | 维护 | Ininal. | ## 南美洲 ### 巴西 | 币种 | 支付类型(accountType) | 支付编码(bankCode) | 限额 | 状态 | 说明 | | --- | ----------------- | -------------- | ------- | -- | --- | | BRL | EWALLET | PIX | 5-20000 | 可用 | PIX | ## 亚洲 ### 韩国 | 币种 | 支付类型(accountType) | 支付编码(bankCode) | 限额 | 状态 | 说明 | | --- | ----------------- | -------------- | ------------ | -- | ---------------------------------- | | KRW | BANK\_ACCOUNT | SAMCKRSL | 1000-1500000 | 可用 | Samsung Securities | | KRW | BANK\_ACCOUNT | KOPOKRS1 | 1000-1500000 | 可用 | Korea Post(Epost) | | KRW | BANK\_ACCOUNT | KWABKRSE | 1000-1500000 | 可用 | Kwangju Bank(KJ) | | KRW | BANK\_ACCOUNT | KYBOKRSE | 1000-1500000 | 可用 | Kyobo Securities | | KRW | BANK\_ACCOUNT | KYNAKR22 | 1000-1500000 | 可用 | Kyongnam Bank | | KRW | BANK\_ACCOUNT | MHCBKRSE | 1000-1500000 | 可用 | Mirae Asset Daewoo | | KRW | BANK\_ACCOUNT | NACFKRSE | 1000-1500000 | 可用 | Nonghyup Bank(NH) | | KRW | BANK\_ACCOUNT | NFFCKRSE | 1000-1500000 | 可用 | Suhyup Local Cooperatives | | KRW | BANK\_ACCOUNT | PUSBKR2P | 1000-1500000 | 可用 | Busan Bank(BNK) | | KRW | BANK\_ACCOUNT | KODBKRSE | 1000-1500000 | 可用 | Korea Development Bank(KDB) | | KRW | BANK\_ACCOUNT | SCBLKRSE | 1000-1500000 | 可用 | Standard Chartered Korea(SC First) | | KRW | BANK\_ACCOUNT | SECDKRS1 | 1000-1500000 | 可用 | Daishin Securities | | KRW | BANK\_ACCOUNT | SEOSKRS1 | 1000-1500000 | 可用 | Eugene Investment and Securities | | KRW | BANK\_ACCOUNT | SHBKKRSE | 1000-1500000 | 可用 | Shinhan Bank | | KRW | BANK\_ACCOUNT | SHHEKRS1 | 1000-1500000 | 可用 | Hyundai Motor Securities | | KRW | BANK\_ACCOUNT | SKSEKRS1 | 1000-1500000 | 可用 | SK Securities | | KRW | BANK\_ACCOUNT | SSISKRSS | 1000-1500000 | 可用 | Shinhan Investment | | KRW | BANK\_ACCOUNT | WISHKRSE | 1000-1500000 | 可用 | NH Investment and Securities | | KRW | BANK\_ACCOUNT | HVBKKRSE | 1000-1500000 | 可用 | Woori Bank | | KRW | BANK\_ACCOUNT | CITIKRSXKAK | 1000-1500000 | 可用 | K Bank | | KRW | BANK\_ACCOUNT | CZNBKRSE | 1000-1500000 | 可用 | Kookmin-Bank(KB) | | KRW | BANK\_ACCOUNT | DAEBKR22 | 1000-1500000 | 可用 | Daegu Bank(DGB) | | KRW | BANK\_ACCOUNT | DEUTKRSE | 1000-1500000 | 可用 | Deutsche Bank | | KRW | BANK\_ACCOUNT | ETSIKRS1 | 1000-1500000 | 可用 | eBEST Investment and Securities | | KRW | BANK\_ACCOUNT | HNBNKRSE | 1000-1500000 | 可用 | KEB Hana Bank | | KRW | BANK\_ACCOUNT | HNWSKRSS | 1000-1500000 | 可用 | Hanhwa Investment and Securities | | KRW | BANK\_ACCOUNT | HSBCKRSE | 1000-1500000 | 可用 | HSBC | | KRW | BANK\_ACCOUNT | CITIKRSX | 1000-1500000 | 可用 | Citibank Korea | | KRW | BANK\_ACCOUNT | HYSEKRSE | 1000-1500000 | 可用 | KB Securities | | KRW | BANK\_ACCOUNT | IBKOKRSE | 1000-1500000 | 可用 | Industrial Bank of Korea(IBK) | | KRW | BANK\_ACCOUNT | JEONKRSE | 1000-1500000 | 可用 | Jeonbuk Bank(JB) | | KRW | BANK\_ACCOUNT | JJBKKR22 | 1000-1500000 | 可用 | Jeju Bank | | KRW | BANK\_ACCOUNT | KAKOKR22 | 1000-1500000 | 可用 | KAKAO Bank | | KRW | BANK\_ACCOUNT | KFBCKRSE | 1000-1500000 | 可用 | Meritz Securities | | KRW | BANK\_ACCOUNT | KISEKRSE | 1000-1500000 | 可用 | Korea Investment and Securities | | KRW | BANK\_ACCOUNT | KIWCKRSE | 1000-1500000 | 可用 | Kiwoom Securities | ### 菲律宾 | 币种 | 支付类型(accountType) | 支付编码(bankCode) | 限额 | 状态 | 说明 | | --- | ----------------- | -------------- | ------- | -- | -------------------------------------- | | PHP | EWALLET | GCASH | 1-50000 | 可用 | Gcash钱包 | | PHP | EWALLET | COINS | 1-50000 | 可用 | Coins钱包 | | PHP | EWALLET | PAYMAYA | 1-50000 | 可用 | PayMaya钱包 | | PHP | EWALLET | GRABPAY | 1-50000 | 可用 | GrabPay钱包 | | PHP | EWALLET | SHOPEE | 1-50000 | 可用 | ShopeePay钱包 | | PHP | EWALLET | OMNIPAY | 1-50000 | 可用 | OmniPay钱包 | | PHP | BANK\_ACCOUNT | ABP | 1-50000 | 可用 | AllBank Inc. | | PHP | BANK\_ACCOUNT | ALIP | 1-50000 | 可用 | Alipay Philippines Inc | | PHP | BANK\_ACCOUNT | AUB | 1-50000 | 可用 | Asia United Bank | | PHP | BANK\_ACCOUNT | BDO | 1-50000 | 可用 | Banco de Oro | | PHP | BANK\_ACCOUNT | BMB | 1-50000 | 可用 | Bangko Mabuhay | | PHP | BANK\_ACCOUNT | BOC | 1-50000 | 可用 | Bank Of Commerce | | PHP | BANK\_ACCOUNT | BPI | 1-50000 | 可用 | Bank of the Philippine Islands | | PHP | BANK\_ACCOUNT | BPIDB | 1-50000 | 可用 | BPI Direct BanKO, Inc., A Savings Bank | | PHP | BANK\_ACCOUNT | BRB | 1-50000 | 可用 | Binangonan Rural Bank (BRBDigital) | | PHP | BANK\_ACCOUNT | CBC | 1-50000 | 可用 | China Banking Corporation(China Bank) | | PHP | BANK\_ACCOUNT | CBS | 1-50000 | 可用 | China Bank Savings, Inc | | PHP | BANK\_ACCOUNT | CCI | 1-50000 | 可用 | CIS BAYAD CENTER INC | | PHP | BANK\_ACCOUNT | CEBRUR | 1-50000 | 可用 | Cebuana Lhuillier Rural Bank, Inc. | | PHP | BANK\_ACCOUNT | CIMB | 1-50000 | 可用 | CIMB Bank Philippines, Inc. | | PHP | BANK\_ACCOUNT | CMG | 1-50000 | 可用 | CAMALIG BANK | | PHP | BANK\_ACCOUNT | CRB | 1-50000 | 可用 | COMMUNITY RURAL BANK OF ROMBLON, INC | | PHP | BANK\_ACCOUNT | CRD | 1-50000 | 可用 | CARD Bank | | PHP | BANK\_ACCOUNT | CSB | 1-50000 | 可用 | Citystate Savings Bank | | PHP | BANK\_ACCOUNT | CSI | 1-50000 | 可用 | CARD SME BANK INC | | PHP | BANK\_ACCOUNT | CTBC | 1-50000 | 可用 | Ctbc Bank (Philippines) Corp. | | PHP | BANK\_ACCOUNT | DBI | 1-50000 | 可用 | Dungganon Bank | | PHP | BANK\_ACCOUNT | DBP | 1-50000 | 可用 | Development Bank of the Philippines | | PHP | BANK\_ACCOUNT | DCI | 1-50000 | 可用 | DUMAGUETE CITY DEVELOPMENT BANK, INC. | | PHP | BANK\_ACCOUNT | DCP | 1-50000 | 可用 | DCPay Philippines Inc. | | PHP | BANK\_ACCOUNT | DOP | 1-50000 | 可用 | DEVT. BANK OF THE PHILIPPINES | | PHP | BANK\_ACCOUNT | EQB | 1-50000 | 可用 | Equicom Savings Bank | | PHP | BANK\_ACCOUNT | EWB | 1-50000 | 可用 | East-West Banking Corporation | | PHP | BANK\_ACCOUNT | EWR | 1-50000 | 可用 | East West Rural Bank (Green Bank) | | PHP | BANK\_ACCOUNT | GTB | 1-50000 | 可用 | GoTyme Bank | | PHP | BANK\_ACCOUNT | IBI | 1-50000 | 可用 | ISLA Bank | | PHP | BANK\_ACCOUNT | ING | 1-50000 | 可用 | ING Bank N.V. | | PHP | BANK\_ACCOUNT | JPM | 1-50000 | 可用 | JP Morgan Chase Bank, N.A. | | PHP | BANK\_ACCOUNT | LBP | 1-50000 | 可用 | Land Bank of the Philippines | | PHP | BANK\_ACCOUNT | LSB | 1-50000 | 可用 | LEGAZPI SAVINGS BANK INC | | PHP | BANK\_ACCOUNT | LUL | 1-50000 | 可用 | LULU FINANCIAL SERVICES (PHILS), INC. | | PHP | BANK\_ACCOUNT | MBP | 1-50000 | 可用 | Maybank Philippines | | PHP | BANK\_ACCOUNT | MCC | 1-50000 | 可用 | MINDANAO CONSOLIDATED COOPERATIVE | | PHP | BANK\_ACCOUNT | MET | 1-50000 | 可用 | Metrobank | | PHP | BANK\_ACCOUNT | MSB | 1-50000 | 可用 | Malayan Bank | | PHP | BANK\_ACCOUNT | ONB | 1-50000 | 可用 | One Network Bank | | PHP | BANK\_ACCOUNT | OWN | 1-50000 | 可用 | ownbank | | PHP | BANK\_ACCOUNT | PAP | 1-50000 | 可用 | PalawanPay | | PHP | BANK\_ACCOUNT | PAR | 1-50000 | 可用 | Partner Rural Bank(Cotabato) Inc. | | PHP | BANK\_ACCOUNT | PBB | 1-50000 | 可用 | Philippine Business Bank | | PHP | BANK\_ACCOUNT | PBCOM | 1-50000 | 可用 | Philippine Bank of Communications | | PHP | BANK\_ACCOUNT | PNB | 1-50000 | 可用 | Philippine National Bank | | PHP | BANK\_ACCOUNT | PNS | 1-50000 | 可用 | PNB Savings Bank | | PHP | BANK\_ACCOUNT | PRB | 1-50000 | 可用 | Producers Bank | | PHP | BANK\_ACCOUNT | PSB | 1-50000 | 可用 | Philippine Savings Bank | | PHP | BANK\_ACCOUNT | PTC | 1-50000 | 可用 | Philippine Trust Company | | PHP | BANK\_ACCOUNT | PVB | 1-50000 | 可用 | Philippine Veterans Bank | | PHP | BANK\_ACCOUNT | QCB | 1-50000 | 可用 | Queen City Development Bank, Inc. | | PHP | BANK\_ACCOUNT | QRB | 1-50000 | 可用 | Quezon Capital Rural Bank | | PHP | BANK\_ACCOUNT | RBG | 1-50000 | 可用 | RURAL BANK OF GUINOBATAN, INC. | | PHP | BANK\_ACCOUNT | RCBC | 1-50000 | 可用 | Rizal Commercial Banking Corp. (RCBC) | | PHP | BANK\_ACCOUNT | RSB | 1-50000 | 可用 | Robinsons Bank | | PHP | BANK\_ACCOUNT | RSBI | 1-50000 | 可用 | Rcbc Savings Bank Inc. | | PHP | BANK\_ACCOUNT | SBA | 1-50000 | 可用 | Sterling Bank Of Asia | | PHP | BANK\_ACCOUNT | SBC | 1-50000 | 可用 | Security Bank | | PHP | BANK\_ACCOUNT | SEB | 1-50000 | 可用 | SEABANK PH | | PHP | BANK\_ACCOUNT | SPY | 1-50000 | 可用 | Starpay Corporation | | PHP | BANK\_ACCOUNT | SSB | 1-50000 | 可用 | Sun Savings Bank | | PHP | BANK\_ACCOUNT | TSB | 1-50000 | 可用 | THE STANDARD CHARTERED BANK | | PHP | BANK\_ACCOUNT | TYC | 1-50000 | 可用 | Tayocash | | PHP | BANK\_ACCOUNT | UBP | 1-50000 | 可用 | Union Bank Of The Philippines | | PHP | BANK\_ACCOUNT | UCBSB | 1-50000 | 可用 | UCBP Savings bank | | PHP | BANK\_ACCOUNT | UCPB | 1-50000 | 可用 | United Coconut Planters Bank (UCPB) | | PHP | BANK\_ACCOUNT | USS | 1-50000 | 可用 | USSC Money Services | | PHP | BANK\_ACCOUNT | WDB | 1-50000 | 可用 | Wealth Development Bank | | PHP | BANK\_ACCOUNT | YUANSB | 1-50000 | 可用 | Yuanta Savings Bank | | PHP | BANK\_ACCOUNT | ZTI | 1-50000 | 可用 | ZYBI TECH, INC. | ### 泰国 | 币种 | 支付类型(accountType) | 支付编码(bankCode) | 限额 | 状态 | 说明 | | --- | ----------------- | -------------- | ------ | -- | ------------------------------------------------ | | THB | BANK\_ACCOUNT | BAAC | 1-8000 | 可用 | BAAC ธนาคารเพื่อการเกษตรและสหกรณ์การเกษตร | | THB | BANK\_ACCOUNT | BAY | 1-8000 | 可用 | Bank of Ayudhya (Krungsri / กรุงศรี) | | THB | BANK\_ACCOUNT | BBL | 1-8000 | 可用 | Bangkok Bank ธนาคารกรุงเทพ | | THB | BANK\_ACCOUNT | CIMB | 1-8000 | 可用 | CIMB Thai ธนาคารซีไอเอ็มบีไทย | | THB | BANK\_ACCOUNT | CITI | 1-8000 | 可用 | Citibank N.A. ซิตี้แบงก์ ประเทศไทย | | THB | BANK\_ACCOUNT | GHB | 1-8000 | 可用 | GHB ธนาคารอาคารสงเคราะห์ | | THB | BANK\_ACCOUNT | GSB | 1-8000 | 可用 | GSB ธนาคารออมสิน | | THB | BANK\_ACCOUNT | HSBC | 1-8000 | 可用 | HSBC เอชเอสบีซี | | THB | BANK\_ACCOUNT | ICBC | 1-8000 | 可用 | ICBC(Thai) ธนาคารไอซีบีซี(ประเทศไทย)จำกัด(มหาชน) | | THB | BANK\_ACCOUNT | IBANK | 1-8000 | 可用 | Islamic Bank ธนาคารอิสลามแห่งประเทศไทย | | THB | BANK\_ACCOUNT | KBANK | 1-8000 | 可用 | Kasikorn Bank ธนาคารกสิกรไทย | | THB | BANK\_ACCOUNT | KKP | 1-8000 | 可用 | Kiatnakin Phatra Bank ธนาคารเกียรตินาคินภัทร | | THB | BANK\_ACCOUNT | KTB | 1-8000 | 可用 | KTB ธนาคารกรุงไทย | | THB | BANK\_ACCOUNT | LHB | 1-8000 | 可用 | Land and Houses Bank ธนาคารแลนด์ แอนด์ เฮ้าส์ | | THB | BANK\_ACCOUNT | SCB | 1-8000 | 可用 | SCB ธนาคารไทยพาณิชย์ | | THB | BANK\_ACCOUNT | SCBT | 1-8000 | 可用 | SCBT สแตนดาร์ดชาร์เตอร์ด | | THB | BANK\_ACCOUNT | TBANK | 1-8000 | 可用 | TBank ธนาคารธนชาต จำกัด (มหาชน) | | THB | BANK\_ACCOUNT | TISCO | 1-8000 | 可用 | TISCO ธนาคารทิสโก้ จำกัด (มหาชน) | | THB | BANK\_ACCOUNT | TMB | 1-8000 | 可用 | TTB ธนาคารทีเอ็มบีธนชาต จำกัด (มหาชน) | | THB | BANK\_ACCOUNT | UOB | 1-8000 | 可用 | UOB ธนาคารยูโอบี จำกัด (มหาชน) | | THB | BANK\_ACCOUNT | ABN | 1-8000 | 可用 | ABN AMRO ธนาคารเอบีเอ็น แอมโร เอ็น.วี. | | THB | BANK\_ACCOUNT | MHCB | 1-8000 | 可用 | Mizuho ธนาคารมิสึโฮ คอร์ปอเรต จำกัด | ### 越南 | 币种 | 支付类型(accountType) | 支付编码(bankCode) | 限额 | 状态 | 说明 | | --- | ----------------- | -------------- | -------------- | -- | -------------------------- | | VND | BANK\_ACCOUNT | VCB | 10000-50000000 | 可用 | Vietcombank | | VND | BANK\_ACCOUNT | DAB | 10000-50000000 | 可用 | DongA Bank | | VND | BANK\_ACCOUNT | TCB | 10000-50000000 | 可用 | Techcombank | | VND | BANK\_ACCOUNT | MB | 10000-50000000 | 可用 | Military Bank | | VND | BANK\_ACCOUNT | VIB | 10000-50000000 | 可用 | Vietnam International Bank | | VND | BANK\_ACCOUNT | ICB | 10000-50000000 | 可用 | VietinBank | | VND | BANK\_ACCOUNT | EXB | 10000-50000000 | 可用 | Eximbank | | VND | BANK\_ACCOUNT | ACB | 10000-50000000 | 可用 | Asia Commercial Bank | | VND | BANK\_ACCOUNT | HDB | 10000-50000000 | 可用 | HDBank | | VND | BANK\_ACCOUNT | MSB | 10000-50000000 | 可用 | Maritime Bank | | VND | BANK\_ACCOUNT | NCB | 10000-50000000 | 可用 | National Citizen Bank | | VND | BANK\_ACCOUNT | VAB | 10000-50000000 | 可用 | Viet A Bank | | VND | BANK\_ACCOUNT | VPB | 10000-50000000 | 可用 | VPBank | | VND | BANK\_ACCOUNT | STB | 10000-50000000 | 可用 | Sacombank | | VND | BANK\_ACCOUNT | BAB | 10000-50000000 | 可用 | Bac A Bank | | VND | BANK\_ACCOUNT | GPB | 10000-50000000 | 可用 | GPBank | | VND | BANK\_ACCOUNT | AGB | 10000-50000000 | 可用 | Agribank | | VND | BANK\_ACCOUNT | BIDV | 10000-50000000 | 可用 | BIDV | | VND | BANK\_ACCOUNT | OJB | 10000-50000000 | 可用 | OceanBank | | VND | BANK\_ACCOUNT | PGB | 10000-50000000 | 可用 | PG Bank | | VND | BANK\_ACCOUNT | SHB | 10000-50000000 | 可用 | Saigon - Hanoi Bank | | VND | BANK\_ACCOUNT | TPB | 10000-50000000 | 可用 | TienPhong Bank | | VND | BANK\_ACCOUNT | NAB | 10000-50000000 | 可用 | Nam A Bank | | VND | BANK\_ACCOUNT | SGB | 10000-50000000 | 可用 | Saigon Bank | | VND | BANK\_ACCOUNT | ABB | 10000-50000000 | 可用 | An Binh Bank | | VND | BANK\_ACCOUNT | SCB | 10000-50000000 | 可用 | Saigon Commercial Bank | | VND | BANK\_ACCOUNT | IVB | 10000-50000000 | 可用 | Indovina Bank | | VND | BANK\_ACCOUNT | VCCB | 10000-50000000 | 可用 | Viet Capital Bank | | VND | BANK\_ACCOUNT | OCB | 10000-50000000 | 可用 | Orient Commercial Bank | | VND | BANK\_ACCOUNT | SEA | 10000-50000000 | 可用 | Dong Nam A Bank | | VND | BANK\_ACCOUNT | LVB | 10000-50000000 | 可用 | LienVietPostBank | | VND | BANK\_ACCOUNT | WRB | 10000-50000000 | 可用 | Woori Bank | | VND | BANK\_ACCOUNT | PVCOMBANK | 10000-50000000 | 可用 | PVcomBank | | VND | BANK\_ACCOUNT | SHNB | 10000-50000000 | 可用 | Shinhan Bank | | VND | BANK\_ACCOUNT | KLB | 10000-50000000 | 可用 | Kien Long Bank | | VND | BANK\_ACCOUNT | BVB | 10000-50000000 | 可用 | BaoViet Bank | | VND | BANK\_ACCOUNT | GAB | 10000-50000000 | 可用 | Dai A Bank | | VND | BANK\_ACCOUNT | NVB | 10000-50000000 | 可用 | Navibank | ### 印尼 | 币种 | 支付类型(accountType) | 支付编码(bankCode) | 限额 | 状态 | 说明 | | --- | ----------------- | ---------------------- | -------------- | -- | ------------------------------------------------------- | | IDR | EWALLET | DANA | 10000-20000000 | 可用 | Dana钱包 | | IDR | EWALLET | OVO | 10000-20000000 | 可用 | OVO钱包 | | IDR | EWALLET | GOPAY | 10000-20000000 | 可用 | GoPay钱包 | | IDR | EWALLET | LINKAJA | 10000-20000000 | 可用 | LinkAja钱包 | | IDR | EWALLET | SHOPEEPAY | 10000-20000000 | 可用 | ShopeePay钱包 | | IDR | BANK\_ACCOUNT | 002 | 10000-50000000 | 可用 | BRI | | IDR | BANK\_ACCOUNT | 008 | 10000-50000000 | 可用 | MANDIRI | | IDR | BANK\_ACCOUNT | 009 | 10000-50000000 | 可用 | BNI | | IDR | BANK\_ACCOUNT | 011 | 10000-50000000 | 可用 | BANK DANAMON | | IDR | BANK\_ACCOUNT | 013 | 10000-50000000 | 可用 | PERMATA/SYARIAH | | IDR | BANK\_ACCOUNT | 014 | 10000-50000000 | 可用 | BCA | | IDR | BANK\_ACCOUNT | 016 | 10000-50000000 | 可用 | MAYBANK INDONESIA/SYARIAH | | IDR | BANK\_ACCOUNT | 019 | 10000-50000000 | 可用 | BANK PAN INDONESIA | | IDR | BANK\_ACCOUNT | 022 | 10000-50000000 | 可用 | CIMB NIAGA/SYARIAH | | IDR | BANK\_ACCOUNT | 023 | 10000-50000000 | 可用 | UOB INDONESIA | | IDR | BANK\_ACCOUNT | 028 | 10000-50000000 | 可用 | OCBC NISP/SYARIAH | | IDR | BANK\_ACCOUNT | 031 | 10000-50000000 | 可用 | CITIBANK NA | | IDR | BANK\_ACCOUNT | 033 | 10000-50000000 | 可用 | BANK OF AMERICA NA | | IDR | BANK\_ACCOUNT | 036 | 10000-50000000 | 可用 | BANK CHINA CONSTRUCTION | | IDR | BANK\_ACCOUNT | 037 | 10000-50000000 | 可用 | BANK ARTHA GRAHA INTERNASIONAL | | IDR | BANK\_ACCOUNT | 041 | 10000-50000000 | 可用 | PT. BANK HSBC INDONESIA | | IDR | BANK\_ACCOUNT | 042 | 10000-50000000 | 可用 | MUFG BANK | | IDR | BANK\_ACCOUNT | 046 | 10000-50000000 | 可用 | DBS | | IDR | BANK\_ACCOUNT | 047 | 10000-50000000 | 可用 | BANK RESONA PERDANIA | | IDR | BANK\_ACCOUNT | 050 | 10000-50000000 | 可用 | STANDARD CHARTERED BANK | | IDR | BANK\_ACCOUNT | 054 | 10000-50000000 | 可用 | BANK CAPITAL INDONESIA | | IDR | BANK\_ACCOUNT | 068 | 10000-50000000 | 可用 | PT BANK WOORI SAUDARA INDONESIA 1906 | | IDR | BANK\_ACCOUNT | 069 | 10000-50000000 | 可用 | BANK OF CHINA | | IDR | BANK\_ACCOUNT | 076 | 10000-50000000 | 可用 | BANK BUMI ARTA | | IDR | BANK\_ACCOUNT | 097 | 10000-50000000 | 可用 | BANK MAYAPADA | | IDR | BANK\_ACCOUNT | 110 | 10000-50000000 | 可用 | BPD JABAR BANTEN | | IDR | BANK\_ACCOUNT | 111 | 10000-50000000 | 可用 | BANK DKI | | IDR | BANK\_ACCOUNT | 112 | 10000-50000000 | 可用 | BPD DIY | | IDR | BANK\_ACCOUNT | 113 | 10000-50000000 | 可用 | BPD JAWA TENGAH | | IDR | BANK\_ACCOUNT | 114 | 10000-50000000 | 可用 | BPD JAWA TIMUR/SYARIAH | | IDR | BANK\_ACCOUNT | 115 | 10000-50000000 | 可用 | BPD JAMBI/SYARIAH | | IDR | BANK\_ACCOUNT | 116 | 10000-50000000 | 可用 | BANK ACEH SYARIAH | | IDR | BANK\_ACCOUNT | 117 | 10000-50000000 | 可用 | BPD SUMATERA UTARA | | IDR | BANK\_ACCOUNT | 118 | 10000-50000000 | 可用 | BPD SUMATERA BARAT/NAGARI SYARIAH | | IDR | BANK\_ACCOUNT | 119 | 10000-50000000 | 可用 | BPD RIAU KEPRI | | IDR | BANK\_ACCOUNT | 120 | 10000-50000000 | 可用 | BPD SUMSEL BABEL/SYR | | IDR | BANK\_ACCOUNT | 122 | 10000-50000000 | 可用 | BPD KALIMANTAN SELATAN | | IDR | BANK\_ACCOUNT | 123 | 10000-50000000 | 可用 | BPD KALIMANTAN BARAT | | IDR | BANK\_ACCOUNT | 124 | 10000-50000000 | 可用 | BPD KALTIM KALTARA | | IDR | BANK\_ACCOUNT | 125 | 10000-50000000 | 可用 | BPD KALIMANTAN TENGAH | | IDR | BANK\_ACCOUNT | 126 | 10000-50000000 | 可用 | BPD SULSEL BAR | | IDR | BANK\_ACCOUNT | 127 | 10000-50000000 | 可用 | BPD SULAWESI UTARA DAN GORONTALO | | IDR | BANK\_ACCOUNT | 128 | 10000-50000000 | 可用 | BPD NUSA TENGGARA BARAT SYARIAH | | IDR | BANK\_ACCOUNT | 129 | 10000-50000000 | 可用 | BPD BALI | | IDR | BANK\_ACCOUNT | 130 | 10000-50000000 | 可用 | BPD NTT | | IDR | BANK\_ACCOUNT | 131 | 10000-50000000 | 可用 | BPD MALUKU DAN MALUKU UTARA | | IDR | BANK\_ACCOUNT | 132 | 10000-50000000 | 可用 | PT.BANK PEMBANGUNAN DAERAH PAPUA | | IDR | BANK\_ACCOUNT | 133 | 10000-50000000 | 可用 | BPD BENGKULU | | IDR | BANK\_ACCOUNT | 135 | 10000-50000000 | 可用 | BPD SULAWESI TENGGARA | | IDR | BANK\_ACCOUNT | 137 | 10000-50000000 | 可用 | BPD BANTEN | | IDR | BANK\_ACCOUNT | 147 | 10000-50000000 | 可用 | BANK MUAMALAT | | IDR | BANK\_ACCOUNT | 151 | 10000-50000000 | 可用 | MESTIKA DHARMA | | IDR | BANK\_ACCOUNT | 153 | 10000-50000000 | 可用 | SINARMAS | | IDR | BANK\_ACCOUNT | 157 | 10000-50000000 | 可用 | MASPION | | IDR | BANK\_ACCOUNT | 161 | 10000-50000000 | 可用 | GANESHA | | IDR | BANK\_ACCOUNT | 164 | 10000-50000000 | 可用 | BANK ICBC INDONESIA | | IDR | BANK\_ACCOUNT | 167 | 10000-50000000 | 可用 | BANK QNB INDONESIA | | IDR | BANK\_ACCOUNT | 200 | 10000-50000000 | 可用 | BTN/SYARIAH | | IDR | BANK\_ACCOUNT | 213 | 10000-50000000 | 可用 | BANK BTPN | | IDR | BANK\_ACCOUNT | 425 | 10000-50000000 | 可用 | BPD JABAR BANTEN SYR | | IDR | BANK\_ACCOUNT | 426 | 10000-50000000 | 可用 | MEGA | | IDR | BANK\_ACCOUNT | 451 | 10000-50000000 | 可用 | BANK SYARIAH INDONESIA | | IDR | BANK\_ACCOUNT | 472 | 10000-50000000 | 可用 | BANK JASA JAKARTA | | IDR | BANK\_ACCOUNT | 484 | 10000-50000000 | 可用 | PT BANK KEB HANA INDONESIA | | IDR | BANK\_ACCOUNT | 485 | 10000-50000000 | 可用 | MNC BANK | | IDR | BANK\_ACCOUNT | 490 | 10000-50000000 | 可用 | NEO COMMERCE | | IDR | BANK\_ACCOUNT | 494 | 10000-50000000 | 可用 | BANK RAYA INDONESIA | | IDR | BANK\_ACCOUNT | 501 | 10000-50000000 | 可用 | BCA Digital | | IDR | BANK\_ACCOUNT | 503 | 10000-50000000 | 可用 | NATIONALNOBU | | IDR | BANK\_ACCOUNT | 506 | 10000-50000000 | 可用 | BANK MEGA SYARIAH | | IDR | BANK\_ACCOUNT | 513 | 10000-50000000 | 可用 | BANK INA PERDANA | | IDR | BANK\_ACCOUNT | 523 | 10000-50000000 | 可用 | PT BANK SAHABAT SAMPOERNA | | IDR | BANK\_ACCOUNT | 535 | 10000-50000000 | 可用 | SEABANK | | IDR | BANK\_ACCOUNT | 536 | 10000-50000000 | 可用 | BCA SYARIAH | | IDR | BANK\_ACCOUNT | 542 | 10000-50000000 | 可用 | BANK JAGO/SYARIAH | | IDR | BANK\_ACCOUNT | 547 | 10000-50000000 | 可用 | BANK BTPN SYARIAH | | IDR | BANK\_ACCOUNT | 548 | 10000-50000000 | 可用 | BANK MULTI ARTA SENTOSA | | IDR | BANK\_ACCOUNT | 553 | 10000-50000000 | 可用 | BANK MAYORA | | IDR | BANK\_ACCOUNT | 555 | 10000-50000000 | 可用 | BANK INDEX SELINDO | | IDR | BANK\_ACCOUNT | 564 | 10000-50000000 | 可用 | PT BANK MANDIRI TASPEN POS | | IDR | BANK\_ACCOUNT | 566 | 10000-50000000 | 可用 | BANK VICTORIA INTERNASIONAL | | IDR | BANK\_ACCOUNT | 567 | 10000-50000000 | 可用 | ALLO BANK INDONESIA | | IDR | BANK\_ACCOUNT | 722 | 10000-50000000 | 可用 | BANK DANAMON SYARIAH | | IDR | BANK\_ACCOUNT | 724 | 10000-50000000 | 可用 | BANK DKI SYARIAH | | IDR | BANK\_ACCOUNT | 725 | 10000-50000000 | 可用 | BPD JAWA TENGAH SYARIAH | | IDR | BANK\_ACCOUNT | 727 | 10000-50000000 | 可用 | BPD KALIMANTAN BARAT SYARIAH | | IDR | BANK\_ACCOUNT | 728 | 10000-50000000 | 可用 | BPD KALIMANTAN SELATAN SYARIAH | | IDR | BANK\_ACCOUNT | 729 | 10000-50000000 | 可用 | BPD KALTIM KALTARA SYR | | IDR | BANK\_ACCOUNT | 733 | 10000-50000000 | 可用 | BPD SUMATERA UTARA SYARIAH | | IDR | BANK\_ACCOUNT | 734 | 10000-50000000 | 可用 | SINARMAS SYARIAH | | IDR | BANK\_ACCOUNT | 735 | 10000-50000000 | 可用 | BPD SULSEL BAR SYR | | IDR | BANK\_ACCOUNT | 736 | 10000-50000000 | 可用 | BPD DIY SYARIAH | | IDR | BANK\_ACCOUNT | 945 | 10000-50000000 | 可用 | BANK IBK INDONESIA | | IDR | BANK\_ACCOUNT | 947 | 10000-50000000 | 可用 | BANK ALADIN SYARIAH | | IDR | BANK\_ACCOUNT | 949 | 10000-50000000 | 可用 | BANK CTBC | | IDR | BANK\_ACCOUNT | VICTORIA\_SYAR | 10000-50000000 | 可用 | PT. BANK VICTORIA SYARIAH | | IDR | BANK\_ACCOUNT | VICTORIA | 10000-50000000 | 可用 | PT. BANK VICTORIA INTERNATIONAL | | IDR | BANK\_ACCOUNT | SUMUT\_SYAR | 10000-50000000 | 可用 | PT. BANK PEMBANGUNAN DAERAH SUMUT UUS | | IDR | BANK\_ACCOUNT | SUMUT | 10000-50000000 | 可用 | PT. BANK PEMBANGUNAN DAERAH SUMUT | | IDR | BANK\_ACCOUNT | SUMSEL\_BABEL\_SYAR | 10000-50000000 | 可用 | PT. BPD SUMSEL DAN BABEL UNIT USAHA SYARIAH | | IDR | BANK\_ACCOUNT | SUMSEL\_BABEL | 10000-50000000 | 可用 | PT. BPD SUMSEL DAN BABEL | | IDR | BANK\_ACCOUNT | SUMITOMO | 10000-50000000 | 可用 | PT. BANK SUMITOMO MITSUI INDONESIA | | IDR | BANK\_ACCOUNT | SULUT | 10000-50000000 | 可用 | PT. BANK SULUTGO | | IDR | BANK\_ACCOUNT | SULTENG | 10000-50000000 | 可用 | PT. BPD SULAWESI TENGAH | | IDR | BANK\_ACCOUNT | SULSELBAR\_SYAR | 10000-50000000 | 可用 | PT. BANK SULSELBAR UNIT USAHA SYARIAH | | IDR | BANK\_ACCOUNT | SULSELBAR | 10000-50000000 | 可用 | PT. BANK SULSELBAR | | IDR | BANK\_ACCOUNT | SHINHAN | 10000-50000000 | 可用 | PT. BANK SHINHAN INDONESIA | | IDR | BANK\_ACCOUNT | SBI | 10000-50000000 | 可用 | PT. BANK SBI INDONESIA | | IDR | BANK\_ACCOUNT | RIAU\_SYAR | 10000-50000000 | 可用 | PT. BANK PEMBANGUNAN DAERAH RIAU KEPRI SYARIAH | | IDR | BANK\_ACCOUNT | RIAU | 10000-50000000 | 可用 | PT. BANK PEMBANGUNAN DAERAH RIAU KEPRI | | IDR | BANK\_ACCOUNT | RBOS | 10000-50000000 | 可用 | THE ROYAL BANK OF SCOTLAND N.V. | | IDR | BANK\_ACCOUNT | RABOBANK | 10000-50000000 | 可用 | PT. BANK RABOBANK INTERNATIONAL INDONESIA | | IDR | BANK\_ACCOUNT | PURBA | 10000-50000000 | 可用 | PT. BANK PURBA DANARTA | | IDR | BANK\_ACCOUNT | PUNDI | 10000-50000000 | 可用 | PT. BANK PUNDI INDONESIA | | IDR | BANK\_ACCOUNT | PRIMA\_MASTER | 10000-50000000 | 可用 | PT. PRIMA MASTER BANK | | IDR | BANK\_ACCOUNT | PERMATA\_VA | 10000-50000000 | 可用 | PT. BANK PERMATA TBK. - VIRTUAL ACCOUNT | | IDR | BANK\_ACCOUNT | PERMATA | 10000-50000000 | 可用 | PT. BANK PERMATA TBK. | | IDR | BANK\_ACCOUNT | PANIN\_SYAR | 10000-50000000 | 可用 | PT. BANK PANIN SYARIAH | | IDR | BANK\_ACCOUNT | OK | 10000-50000000 | 可用 | PT. BANK OKE INDONESIA | | IDR | BANK\_ACCOUNT | OCBC | 10000-50000000 | 可用 | PT. BANK OCBC NISP TBK. | | IDR | BANK\_ACCOUNT | NTT | 10000-50000000 | 可用 | PT.BANK PEMBANGUNAN DAERAH NTT | | IDR | BANK\_ACCOUNT | NTB | 10000-50000000 | 可用 | PT. BANK PEMBANGUNAN DAERAH NTB | | IDR | BANK\_ACCOUNT | NAGARI\_SYAR | 10000-50000000 | 可用 | PT. BANK NAGARI UNIT USAHA SYARIAH | | IDR | BANK\_ACCOUNT | NAGARI | 10000-50000000 | 可用 | PT. BANK NAGARI | | IDR | BANK\_ACCOUNT | NIAGA\_SYAR | 10000-50000000 | 可用 | PT. BANK NIAGA TBK. SYARIAH | | IDR | BANK\_ACCOUNT | MUTIARA | 10000-50000000 | 可用 | PT. BANK JTRUST INDONESIA, TBK | | IDR | BANK\_ACCOUNT | MIZUHO | 10000-50000000 | 可用 | PT. BANK MIZUHO INDONESIA | | IDR | BANK\_ACCOUNT | MITRANIAGA | 10000-50000000 | 可用 | PT. BANK MITRANIAGA | | IDR | BANK\_ACCOUNT | METRO | 10000-50000000 | 可用 | PT. BANK METRO EXPRESS | | IDR | BANK\_ACCOUNT | MAYBANK\_UUS | 10000-50000000 | 可用 | PT. BANK MAYBANK INDONESIA TBK. UNIT USAHA SYARIAH | | IDR | BANK\_ACCOUNT | MAYBANK | 10000-50000000 | 可用 | PT. BANK MAYBANK INDONESIA TBK. | | IDR | BANK\_ACCOUNT | MANDIRI\_TASPEN | 10000-50000000 | 可用 | PT. BANK MANDIRI TASPEN POS | | IDR | BANK\_ACCOUNT | MALUKU | 10000-50000000 | 可用 | PT.BANK PEMBANGUNAN DAERAH MALUKU | | IDR | BANK\_ACCOUNT | LAMPUNG | 10000-50000000 | 可用 | PT.BANK PEMBANGUNAN DAERAH LAMPUNG | | IDR | BANK\_ACCOUNT | KALTIM\_SYAR | 10000-50000000 | 可用 | PT.BANK PEMBANGUNAN DAERAH KALTIM - UNIT USAHA SYARIAH | | IDR | BANK\_ACCOUNT | KALTIM | 10000-50000000 | 可用 | PT.BANK PEMBANGUNAN DAERAH KALTIM | | IDR | BANK\_ACCOUNT | KALSEL\_SYAR | 10000-50000000 | 可用 | PT. BANK PEMBANGUNAN DAERAH KALSEL - UNIT USAHA SYARIAH | | IDR | BANK\_ACCOUNT | KALSEL | 10000-50000000 | 可用 | PT. BANK PEMBANGUNAN DAERAH KALSEL | | IDR | BANK\_ACCOUNT | KALBAR\_SYAR | 10000-50000000 | 可用 | PT.BANK PEMBANGUNAN DAERAH KALBAR UUS | | IDR | BANK\_ACCOUNT | KALBAR | 10000-50000000 | 可用 | PT.BANK PEMBANGUNAN DAERAH KALBAR | | IDR | BANK\_ACCOUNT | JTRUST | 10000-50000000 | 可用 | PT. BANK JTRUST INDONESIA TBK. | | IDR | BANK\_ACCOUNT | JATIM\_SYAR | 10000-50000000 | 可用 | PT.BANK PEMBANGUNAN DAERAH JATIM - UNIT USAHA SYARIAH | | IDR | BANK\_ACCOUNT | JATIM | 10000-50000000 | 可用 | PT. BANK PEMBANGUNAN DAERAH JATIM | | IDR | BANK\_ACCOUNT | JATENG\_SYAR | 10000-50000000 | 可用 | PT. BANK PEMBANGUNAN DAERAH JAWA TENGAH | | IDR | BANK\_ACCOUNT | JATENG | 10000-50000000 | 可用 | PT. BANK PEMBANGUNAN DAERAH JAWA TENGAH | | IDR | BANK\_ACCOUNT | JAMBI | 10000-50000000 | 可用 | PT.BANK PEMBANGUNAN DAERAH JAMBI | | IDR | BANK\_ACCOUNT | JAGO | 10000-50000000 | 可用 | PT. BANK JAGO TBK. | | IDR | BANK\_ACCOUNT | INDIA | 10000-50000000 | 可用 | PT. BANK OF INDIA INDONESIA TBK. | | IDR | BANK\_ACCOUNT | HS\_1906 | 10000-50000000 | 可用 | PT. BANK WOORI SAUDARA INDONESIA 1906,TBK | | IDR | BANK\_ACCOUNT | HANA | 10000-50000000 | 可用 | PT. BANK KEB HANA INDONESIA | | IDR | BANK\_ACCOUNT | FAMA | 10000-50000000 | 可用 | PT. BANK FAMA INTERNATIONAL | | IDR | BANK\_ACCOUNT | EKONOMI | 10000-50000000 | 可用 | PT. BANK EKONOMI RAHARJA | | IDR | BANK\_ACCOUNT | DKI\_SYAR | 10000-50000000 | 可用 | PT. BANK DKI UNIT USAHA SYARIAH | | IDR | BANK\_ACCOUNT | DIY\_SYAR | 10000-50000000 | 可用 | PT.BANK PEMBANGUNAN DAERAH DIY UNIT USAHA SYARIAH | | IDR | BANK\_ACCOUNT | DIY | 10000-50000000 | 可用 | PT. BANK PEMBANGUNAN DAERAH DIY | | IDR | BANK\_ACCOUNT | DIPO | 10000-50000000 | 可用 | PT. BANK DIPO INTERNATIONAL | | IDR | BANK\_ACCOUNT | DEUTSCHE | 10000-50000000 | 可用 | DEUTSCHE BANK AG. | | IDR | BANK\_ACCOUNT | DANAMON\_SYAR | 10000-50000000 | 可用 | PT. BANK DANAMON INDONESIA UNIT USAHA SYARIAH | | IDR | BANK\_ACCOUNT | COMMONWEALTH | 10000-50000000 | 可用 | PT. BANK OCBC NISP, Tbk. | | IDR | BANK\_ACCOUNT | CIMB\_VA | 10000-50000000 | 可用 | PT. BANK CIMB NIAGA TBK. - VIRTUAL ACCOUNT. | | IDR | BANK\_ACCOUNT | CIMB\_REKENING\_PONSEL | 10000-50000000 | 可用 | PT. BANK CIMB NIAGA TBK. - REKENING PONSEL | | IDR | BANK\_ACCOUNT | CIMB | 10000-50000000 | 可用 | PT. BANK CIMB NIAGA TBK. | | IDR | BANK\_ACCOUNT | CHASE | 10000-50000000 | 可用 | JP MORGAN CHASE BANK, N.A | | IDR | BANK\_ACCOUNT | CENTRATAMA | 10000-50000000 | 可用 | PT. CENTRATAMA NASIONAL BANK | | IDR | BANK\_ACCOUNT | BUMIPUTERA | 10000-50000000 | 可用 | PT. BANK BUMIPUTERA | | IDR | BANK\_ACCOUNT | BUKOPIN\_SYAR | 10000-50000000 | 可用 | PT. BANK SYARIAH BUKOPIN | | IDR | BANK\_ACCOUNT | BUKOPIN | 10000-50000000 | 可用 | PT BANK KB BUKOPIN TBK. | | IDR | BANK\_ACCOUNT | BTPN\_SYAR | 10000-50000000 | 可用 | PT. BANK TABUNGAN PENSIUNAN NASIONAL SYARIAH | | IDR | BANK\_ACCOUNT | BTPN | 10000-50000000 | 可用 | PT. BANK SMBC Indonesia Tbk | | IDR | BANK\_ACCOUNT | BTN\_SYAR | 10000-50000000 | 可用 | PT. BANK TABUNGAN NEGARA (PERSERO) UNIT USAHA SYARIAH | | IDR | BANK\_ACCOUNT | BTN | 10000-50000000 | 可用 | PT. BANK TABUNGAN NEGARA (PERSERO) | | IDR | BANK\_ACCOUNT | BRI\_VA | 10000-50000000 | 可用 | PT. BANK RAKYAT INDONESIA (PERSERO) - VIRTUAL ACCOUNT | | IDR | BANK\_ACCOUNT | BNP\_PARIBAS | 10000-50000000 | 可用 | PT. BANK BNP PARIBAS INDONESIA | | IDR | BANK\_ACCOUNT | BNP | 10000-50000000 | 可用 | PT. BANK NUSANTARA PARAHYANGAN | | IDR | BANK\_ACCOUNT | BISNIS | 10000-50000000 | 可用 | PT. BANK BISNIS INTERNASIONAL | | IDR | BANK\_ACCOUNT | BCA\_VA | 10000-50000000 | 可用 | PT. BANK CENTRAL ASIA TBK. - VIRTUAL ACCOUNT | | IDR | BANK\_ACCOUNT | BARCLAYS | 10000-50000000 | 可用 | PT BANK BARCLAYS INDONESIA | | IDR | BANK\_ACCOUNT | BANTEN | 10000-50000000 | 可用 | PT. BANK BANTEN | | IDR | BANK\_ACCOUNT | BANGKOK | 10000-50000000 | 可用 | BANGKOK BANK PUBLIC CO.LTD | | IDR | BANK\_ACCOUNT | BALI | 10000-50000000 | 可用 | PT. BANK PEMBANGUNAN DAERAH BALI | | IDR | BANK\_ACCOUNT | ARTAJASA | 10000-50000000 | 可用 | PT. ARTAJASA | | IDR | BANK\_ACCOUNT | ANZ | 10000-50000000 | 可用 | PT. BANK ANZ INDONESIA | | IDR | BANK\_ACCOUNT | ANTAR\_DAERAH | 10000-50000000 | 可用 | PT. BANK ANTAR DAERAH | | IDR | BANK\_ACCOUNT | ANGLOMAS | 10000-50000000 | 可用 | PT. BANK AMAR INDONESIA | | IDR | BANK\_ACCOUNT | ANDARA | 10000-50000000 | 可用 | PT. BANK ANDARA | | IDR | BANK\_ACCOUNT | AMAR | 10000-50000000 | 可用 | PT. BANK AMAR INDONESIA | | IDR | BANK\_ACCOUNT | ACEH\_SYAR | 10000-50000000 | 可用 | PT. BPD ISTIMEWA ACEH SYARIAH | | IDR | BANK\_ACCOUNT | ACEH | 10000-50000000 | 可用 | PT. BANK ACEH | ### 马来西亚 | 币种 | 支付类型(accountType) | 支付编码(bankCode) | 限额 | 状态 | 说明 | | --- | ----------------- | -------------- | -------- | -- | ---------------------- | | MYR | EWALLET | TNG | 10-50000 | 可用 | Touch 'n Go eWallet | | MYR | EWALLET | BIGPAY | 10-50000 | 可用 | BigPay | | MYR | EWALLET | FINEXUS | 10-50000 | 可用 | FINEXUS | | MYR | EWALLET | BOOST | 10-50000 | 可用 | BOOST | | MYR | EWALLET | SHOPEE | 10-50000 | 可用 | SHOPEE | | MYR | EWALLET | GXB | 10-50000 | 可用 | GXB | | MYR | EWALLET | MASB | 10-50000 | 可用 | MASB | | MYR | BANK\_ACCOUNT | BIMB | 10-50000 | 可用 | Bank Islam | | MYR | BANK\_ACCOUNT | CIMB | 10-50000 | 可用 | CIMB Bank | | MYR | BANK\_ACCOUNT | UOB | 10-50000 | 可用 | United Oversea Bank | | MYR | BANK\_ACCOUNT | MBB | 10-50000 | 可用 | Maybank | | MYR | BANK\_ACCOUNT | HSBC | 10-50000 | 可用 | HSBC Bank | | MYR | BANK\_ACCOUNT | RHB | 10-50000 | 可用 | RHB Bank | | MYR | BANK\_ACCOUNT | OCBC | 10-50000 | 可用 | OCBC Bank | | MYR | BANK\_ACCOUNT | PBB | 10-50000 | 可用 | Public Bank | | MYR | BANK\_ACCOUNT | SCB | 10-50000 | 可用 | Standard Chartered | | MYR | BANK\_ACCOUNT | AMB | 10-50000 | 可用 | AmBank | | MYR | BANK\_ACCOUNT | BKRM | 10-50000 | 可用 | Bank Kerjasama Rakyat | | MYR | BANK\_ACCOUNT | BSN | 10-50000 | 可用 | Bank Simpanan Nasional | | MYR | BANK\_ACCOUNT | AFB | 10-50000 | 可用 | Affin Bank | | MYR | BANK\_ACCOUNT | HLB | 10-50000 | 可用 | Hong Leong Bank | | MYR | BANK\_ACCOUNT | ALB | 10-50000 | 可用 | Alliance Bank | ### 巴基斯坦 | 币种 | 支付类型(accountType) | 支付编码(bankCode) | 限额 | 状态 | 说明 | | --- | ----------------- | -------------- | --------- | -- | ------------------------- | | PKR | EWALLET | ALFA | 10-100000 | 可用 | ALFA钱包 | | PKR | EWALLET | BAFL | 10-100000 | 可用 | Bank Alfalah Limited | | PKR | EWALLET | EASYPAISA | 10-100000 | 可用 | EasyPaisa钱包 | | PKR | EWALLET | JAZZCASH | 10-100000 | 可用 | JazzCash钱包 | | PKR | EWALLET | HBL\_KONNECT | 10-100000 | 可用 | HBL KONNECT钱包 | | PKR | BANK\_ACCOUNT | ABBL | 10-100000 | 可用 | Al Baraka Bank Limited | | PKR | BANK\_ACCOUNT | ABHI | 10-100000 | 可用 | Abhi Finance | | PKR | BANK\_ACCOUNT | ABL | 10-100000 | 可用 | Allied Bank Limited | | PKR | BANK\_ACCOUNT | ACBL | 10-100000 | 可用 | Askari Commercial Bank | | PKR | BANK\_ACCOUNT | ADVANS | 10-100000 | 可用 | Advans Pakistan | | PKR | BANK\_ACCOUNT | APNA | 10-100000 | 可用 | Apna Microfinance Bank | | PKR | BANK\_ACCOUNT | BAHL | 10-100000 | 可用 | Bank AL Habib Limited | | PKR | BANK\_ACCOUNT | BARWAQT | 10-100000 | 可用 | Barwaqt | | PKR | BANK\_ACCOUNT | BIPL | 10-100000 | 可用 | BankIslami Pakistan | | PKR | BANK\_ACCOUNT | BOK | 10-100000 | 可用 | Bank of Khyber | | PKR | BANK\_ACCOUNT | BOP | 10-100000 | 可用 | Bank of Punjab | | PKR | BANK\_ACCOUNT | BYKEA | 10-100000 | 可用 | BYKEA | | PKR | BANK\_ACCOUNT | CDNS | 10-100000 | 可用 | CDNS | | PKR | BANK\_ACCOUNT | CITI | 10-100000 | 可用 | Citi Bank | | PKR | BANK\_ACCOUNT | DIBPL | 10-100000 | 可用 | Dubai Islamic Bank | | PKR | BANK\_ACCOUNT | FAYSAL | 10-100000 | 可用 | Faysal Bank Limited | | PKR | BANK\_ACCOUNT | FINCA | 10-100000 | 可用 | FINCA Microfinance Bank | | PKR | BANK\_ACCOUNT | FINJA | 10-100000 | 可用 | FINJA EMI | | PKR | BANK\_ACCOUNT | FMB | 10-100000 | 可用 | First Microfinance Bank | | PKR | BANK\_ACCOUNT | FWBL | 10-100000 | 可用 | First Women Bank Limited | | PKR | BANK\_ACCOUNT | HBL | 10-100000 | 可用 | Habib Bank Limited | | PKR | BANK\_ACCOUNT | HBLASSET | 10-100000 | 可用 | HBL ASSET MANAGEMENT | | PKR | BANK\_ACCOUNT | HMBL | 10-100000 | 可用 | Habib Metropolitan Bank | | PKR | BANK\_ACCOUNT | ICBC | 10-100000 | 可用 | ICBC | | PKR | BANK\_ACCOUNT | JSB | 10-100000 | 可用 | JS Bank | | PKR | BANK\_ACCOUNT | KHUSHALI | 10-100000 | 可用 | Khushali Bank | | PKR | BANK\_ACCOUNT | MCB | 10-100000 | 可用 | MCB Bank Limited | | PKR | BANK\_ACCOUNT | MCBARIF | 10-100000 | 可用 | MCB ARIF HABIB | | PKR | BANK\_ACCOUNT | MCIB | 10-100000 | 可用 | MCB Islamic Banking | | PKR | BANK\_ACCOUNT | MEEZAN | 10-100000 | 可用 | Meezan Bank Limited | | PKR | BANK\_ACCOUNT | MOD | 10-100000 | 可用 | MOD | | PKR | BANK\_ACCOUNT | NAYAPAY | 10-100000 | 可用 | NayaPay Private Limited | | PKR | BANK\_ACCOUNT | NBP | 10-100000 | 可用 | National Bank of Pakistan | | PKR | BANK\_ACCOUNT | NBPF | 10-100000 | 可用 | NBP Funds | | PKR | BANK\_ACCOUNT | NRSP | 10-100000 | 可用 | NRSP Microfinance | | PKR | BANK\_ACCOUNT | PAYMAX | 10-100000 | 可用 | PayMax (Zong) | | PKR | BANK\_ACCOUNT | SADAPAY | 10-100000 | 可用 | SadaPay | | PKR | BANK\_ACCOUNT | SAMBA | 10-100000 | 可用 | SAMBA | | PKR | BANK\_ACCOUNT | SCB | 10-100000 | 可用 | Standard Chartered Bank | | PKR | BANK\_ACCOUNT | SILK | 10-100000 | 可用 | Silk Bank | | PKR | BANK\_ACCOUNT | SIMPAISA | 10-100000 | 可用 | SimPaisa | | PKR | BANK\_ACCOUNT | SINDH | 10-100000 | 可用 | Sindh Bank | | PKR | BANK\_ACCOUNT | SME | 10-100000 | 可用 | SME Bank Limited | | PKR | BANK\_ACCOUNT | SONERI | 10-100000 | 可用 | Soneri Bank Limited | | PKR | BANK\_ACCOUNT | SUMMIT | 10-100000 | 可用 | Summit Bank | | PKR | BANK\_ACCOUNT | UBANK | 10-100000 | 可用 | Ubank | | PKR | BANK\_ACCOUNT | UBL | 10-100000 | 可用 | United Bank Limited | | PKR | BANK\_ACCOUNT | WHITE | 10-100000 | 可用 | WHITE LABEL ATM | | PKR | BANK\_ACCOUNT | ZARAI | 10-100000 | 可用 | Zarai Taraqiati Bank | ### 孟加拉 | 币种 | 支付类型(accountType) | 支付编码(bankCode) | 限额 | 状态 | 说明 | | --- | ----------------- | -------------- | --------- | -- | ----- | | BDT | EWALLET | BDT\_BKASH | 100-50000 | 可用 | bkash | | BDT | EWALLET | BDT\_NAGAD | 100-50000 | 可用 | nagad | ## 中东 ### 埃及 | 币种 | 支付类型(accountType) | 支付编码(bankCode) | 限额 | 状态 | 说明 | | --- | ----------------- | -------------- | -------- | -- | ----------------------------------------------------------------------------------------------------- | | EGP | EWALLET | MEEZA | 20-30000 | 可用 | MeezaWallet 为埃及 Meeza 网络下的手机号电子钱包,支持根据号码识别账户类型,并向 Vodafone Cash、Orange Money、Etisalat Cash 等本地钱包进行代付。 | | EGP | EWALLET | OPAY | 20-30000 | 可用 | OpayCard | | EGP | BANK\_ACCOUNT | ABP | 20-30000 | 可用 | AllBank Inc | | EGP | BANK\_ACCOUNT | AAIB | 20-30000 | 可用 | Arab African International Bank | | EGP | BANK\_ACCOUNT | ABC | 20-30000 | 可用 | Arab Banking Corporation - Egypt | | EGP | BANK\_ACCOUNT | ABK | 20-30000 | 可用 | Al Ahli Bank of Kuwait – Egypt | | EGP | BANK\_ACCOUNT | ABRK | 20-30000 | 可用 | Al Baraka Bank Egypt | | EGP | BANK\_ACCOUNT | ADIB | 20-30000 | 可用 | Abu Dhabi Islamic Bank – Egypt | | EGP | BANK\_ACCOUNT | AIB | 20-30000 | 可用 | Arab Investment Bank | | EGP | BANK\_ACCOUNT | ARAB | 20-30000 | 可用 | Arab Bank | | EGP | BANK\_ACCOUNT | ARIB | 20-30000 | 可用 | Arab International Bank | | EGP | BANK\_ACCOUNT | AUB | 20-30000 | 可用 | Ahly United Bank | | EGP | BANK\_ACCOUNT | AUDI | 20-30000 | 可用 | Audi Bank | | EGP | BANK\_ACCOUNT | BBE | 20-30000 | 可用 | ATTIJARIWAFA BANK EGYPT S.A.E | | EGP | BANK\_ACCOUNT | BDC | 20-30000 | 可用 | Banque Du Caire | | EGP | BANK\_ACCOUNT | BLOM | 20-30000 | 可用 | Blom Bank Egypt | | EGP | BANK\_ACCOUNT | BOA | 20-30000 | 可用 | Bank of Alexandria | | EGP | BANK\_ACCOUNT | CAE | 20-30000 | 可用 | Credit Agricole | | EGP | BANK\_ACCOUNT | CIB | 20-30000 | 可用 | Commercial International Bank | | EGP | BANK\_ACCOUNT | CITI | 20-30000 | 可用 | Citibank | | EGP | BANK\_ACCOUNT | EALB | 20-30000 | 可用 | Egyptian Arab Land Bank | | EGP | BANK\_ACCOUNT | EDBE | 20-30000 | 可用 | Export Development Bank of Egypt | | EGP | BANK\_ACCOUNT | EGB | 20-30000 | 可用 | Egyptian Gulf Bank | | EGP | BANK\_ACCOUNT | ENBD | 20-30000 | 可用 | Emirates National Bank of Dubai | | EGP | BANK\_ACCOUNT | FAIB | 20-30000 | 可用 | Faisal Islamic Bank of Egypt | | EGP | BANK\_ACCOUNT | HDB | 20-30000 | 可用 | Housing And Development Bank | | EGP | BANK\_ACCOUNT | HSBC | 20-30000 | 可用 | HSBC | | EGP | BANK\_ACCOUNT | IDBE | 20-30000 | 可用 | Industrial Development Bank of Egypt | | EGP | BANK\_ACCOUNT | MASH | 20-30000 | 可用 | Mashreq Bank | | EGP | BANK\_ACCOUNT | MIDB | 20-30000 | 可用 | Misr Iran Development Bank | | EGP | BANK\_ACCOUNT | MISR | 20-30000 | 可用 | Banque Misr | | EGP | BANK\_ACCOUNT | NBAD | 20-30000 | 可用 | National Bank of Abu Dhabi | | EGP | BANK\_ACCOUNT | NBE | 20-30000 | 可用 | National Bank of Egypt | | EGP | BANK\_ACCOUNT | NBG | 20-30000 | 可用 | National Bank of Greece | | EGP | BANK\_ACCOUNT | NBK | 20-30000 | 可用 | National Bank of Kuwait – Egypt | | EGP | BANK\_ACCOUNT | NSB | 20-30000 | 可用 | Nasser Social Bank | | EGP | BANK\_ACCOUNT | PDAC | 20-30000 | 可用 | The Principal Bank for Development and Agri. | | EGP | BANK\_ACCOUNT | QNB | 20-30000 | 可用 | Qatar National Bank Alahli | | EGP | BANK\_ACCOUNT | SAIB | 20-30000 | 可用 | Societe Arabe Internationale De Banque | | EGP | BANK\_ACCOUNT | SCB | 20-30000 | 可用 | Suez Canal Bank | | EGP | BANK\_ACCOUNT | UB | 20-30000 | 可用 | The United Bank | | EGP | BANK\_ACCOUNT | UNB | 20-30000 | 可用 | United National Bank | # 国际信用卡(VISA/MASTER)支付接口 Source: https://doc.haipay.net/docs/zh/api/version2/creditcard 阅读该接口文档前,务必先查看 [**接口说明**](/docs/zh/guide/api_description_guide) * **针对信用卡交易,消费者有权在交易发生后180天内发起争议申请。当争议被提起时,每笔交易将产生20美元的争议处理费。** * **在收到争议通知后,您有两种应对方式可供选择** * **其一:您可以选择接受争议,即向发卡银行提交回复,确认您不对退款金额提出异议。** * **其二:您可以选择对争议进行抗辩,通过完成一个引导式的提交流程,根据提示提供相关证据和支持性文件来阐述您的立场。** * **若您选择对争议进行抗辩,将额外收取20美元的抗辩费。如果发卡银行不接受您提交的抗辩材料并判定消费者胜诉,抗辩费将被扣除,同时消费者的付款将被退还。** * **关于费用退还政策,如果您成功赢得争议,Haipay将退还抗辩费。然而,除非您的Haipay合同中另有明确规定,否则最初收取的争议处理费在任何情况下均不予退还。** 1. PCI 合规性:直接违反 PCI DSS 要求 2. 安全风险:WebView 和 iframe 可能无法提供足够的安全隔离 3. 中间人攻击:恶意应用可能拦截或篡改支付数据 4. 钓鱼风险:无法确保用户是在可信的环境中输入敏感信息 ## 设备环境要求 如果您在支付页面中看不到您想要的钱包,则您的设备或浏览器可能不符合以下 Apple Pay 或 Google Pay 条件。 * 钱包里必须至少有一张卡。 * 您必须使用兼容的 [Apple Pay 设备](https://support.apple.com/zh-cn/102896) 和 [Google Pay 设备](https://developers.google.com/pay/issuers/overview/supported-devices#compatibility_requirements)。 * 您必须使用 必须使用**HTTPS**和[支持的浏览器](#supported-browsers) 来测试您正在测试的钱包。 * 允许适用的浏览器访问您的钱包。 * Chrome:**设置** > **自动填充和密码** > **付款方式** > **允许网站检查您是否已保存付款方式** * Safari:**设置** > **高级** > **允许网站检查 Apple Pay 和 Apple 卡** * 不要使用 Chrome 隐身窗口或 Safari 私人窗口。 * 确认您在受支持的 Apple Pay 地区 和 Google Pay 地区 进行操作。 * 对于 Apple Pay,请确认您的设备支持[生物识别身份验证](https://support.apple.com/zh-cn/102626#:~:text=iPhone%20or%20.iPad,on%20all%20devices.)。
**桌面浏览器** * Chrome 38+ * Safari 10.1+ * Firefox 29+ * Edge 15+ * Opera 25+ **移动浏览器** * iOS Safari 9+ 以及其他使用系统提供的 WebKit 引擎的浏览器和 Web 视图 * Android Chrome 38+ * 三星浏览器 7.1+ **其他说明** 对于未明确支持的浏览器,我们限制支持如下: * 要求浏览器支持 **TLS 1.2** * 需要足够现代的浏览器来支持 JavaScript 中的 **Promises** * 我们会响应错误报告,但不会主动测试其他浏览器 ## 地区限制 AD-安道尔 AE-阿拉伯联合酋长国 AF-阿富汗 AG-安提瓜和巴布达 AI-安圭拉 AL-阿尔巴尼亚 AM-亚美尼亚 AO-安哥拉 AQ-南极洲 AR-阿根廷 AS-美属萨摩亚 AW-阿鲁巴 AX-奥兰群岛 BA-波斯尼亚和黑塞哥维那 BB-巴巴多斯 BD-孟加拉国 BF-布基纳法索 BH-巴林 BI-布隆迪 BJ-贝宁 BL-圣巴泰勒米 BM-百慕大 BN-文莱 BQ-博内尔、圣尤斯特歇斯和萨巴 BS-巴哈马 BT-不丹 BV-布韦岛 BW-博茨瓦纳 BY-白俄罗斯 BZ-伯利兹 CC-科科斯(基林)群岛 CD-刚果民主共和国 CF-中非共和国 CG-刚果共和国 CI-科特迪瓦 CK-库克群岛 CM-喀麦隆 CO-哥伦比亚 CU-古巴 CV-佛得角 CW-库拉索 CX-圣诞岛 CY-塞浦路斯 DJ-吉布提 DM-多米尼克 DO-多米尼加共和国 DZ-阿尔及利亚 EC-厄瓜多尔 EE-爱沙尼亚 EG-埃及 EH-西撒哈拉 ER-厄立特里亚 ET-埃塞俄比亚 FJ-斐济 FK-福克兰群岛 FM-密克罗尼西亚联邦 FO-法罗群岛 GA-加蓬 GD-格林纳达 GE-格鲁吉亚 GF-法属圭亚那 GG-根西岛 GH-加纳 GI-直布罗陀 GL-格陵兰 GM-冈比亚 GN-几内亚 GP-瓜德罗普 GQ-赤道几内亚 GS-南乔治亚和南桑威奇群岛 GT-危地马拉 GW-几内亚比绍 HK-香港 HM-赫德岛和麦克唐纳群岛 HN-洪都拉斯 HT-海地 ID-印度尼西亚 IL-以色列 IM-马恩岛 IN-印度 IO-英属印度洋领地 IQ-伊拉克 IR-伊朗 JM-牙买加 JO-约旦 JP-日本 KE-肯尼亚 KH-柬埔寨 KI-基里巴斯 KM-科摩罗 KN-圣基茨和尼维斯 KP-朝鲜 KR-韩国 KW-科威特 KY-开曼群岛 KZ-哈萨克斯坦 LA-老挝 LB-黎巴嫩 LC-圣卢西亚 LI-列支敦士登 LK-斯里兰卡 LR-利比里亚 LS-莱索托 LV-拉脱维亚 LY-利比亚 MD-摩尔多瓦 ME-黑山 MF-法属圣马丁 MG-马达加斯加 MH-马绍尔群岛 MK-北马其顿 ML-马里 MM-缅甸 MN-蒙古 MP-北马里亚纳群岛 MQ-马提尼克 MR-毛里塔尼亚 MS-蒙特塞拉特 MU-毛里求斯 MV-马尔代夫 MW-马拉维 MY-马来西亚 MZ-莫桑比克 NA-纳米比亚 NC-新喀里多尼亚 NE-尼日尔 NF-诺福克岛 NG-尼日利亚 NI-尼加拉瓜 NP-尼泊尔 NR-瑙鲁 NU-纽埃 OM-阿曼 PA-巴拿马 PE-秘鲁 PF-法属波利尼西亚 PG-巴布亚新几内亚 PH-菲律宾 PK-巴基斯坦 PM-圣皮埃尔和密克隆 PN-皮特凯恩群岛 PR-波多黎各 PS-巴勒斯坦 PW-帕劳 RE-留尼汪 RU-俄罗斯 RW-卢旺达 SA-沙特阿拉伯 SB-所罗门群岛 SC-塞舌尔 SD-苏丹 SH-圣赫勒拿 SJ-斯瓦尔巴和扬马延 SK-斯洛伐克 SL-塞拉利昂 SM-圣马力诺 SN-塞内加尔 SO-索马里 SR-苏里南 SS-南苏丹 ST-圣多美和普林西比 SV-萨尔瓦多 SX-荷属圣马丁 SY-叙利亚 SZ-斯威士兰 TC-特克斯和凯科斯群岛 TD-乍得 TF-法属南部领地 TG-多哥 TH-泰国 TK-托克劳 TL-东帝汶 TM-土库曼斯坦 TN-突尼斯 TO-汤加 TR-土耳其 TT-特立尼达和多巴哥 TV-图瓦卢 TW-台湾 TZ-坦桑尼亚 UA-乌克兰 UG-乌干达 UM-美国本土外小岛屿 UY-乌拉圭 UZ-乌兹别克斯坦 VA-梵蒂冈 VC-圣文森特和格林纳丁斯 VE-委内瑞拉 VG-英属维尔京群岛 VI-美属维尔京群岛 VN-越南 VU-瓦努阿图 WF-瓦利斯和富图纳 WS-萨摩亚 YE-也门 YT-马约特 ZA-南非 ZM-赞比亚 ZW-津巴布韦 ## **HaiPay.js 对接(Apple Pay & Google Pay)** HaiPay 提供了便捷的 Apple Pay 和 Google Pay 支付集成方案,通过简单配置即可在网页中快速集成支付功能。 * 引入 HaiPay 脚本(\[[https://cashier.haipay.top/js/applePayGooglePay\_1.0.0.min.js](https://cashier.haipay.top/js/applePayGooglePay_1.0.0.min.js)]) * 页面结构要求 * 支付按钮容器:用于 Apple Pay/Google Pay 按钮的渲染。 * 快速集成示例 ```javascript theme={null}
// 创建实列 const elements = applePayGooglePay.create('applePayGooglePay', { sandbox: true, clientToken: '6cgjnxvc6kdb', buttonType: 'buy', buttonTheme: 'black', buttonHeight: 50 }); // 挂载组件 elements.mount('#applePay-googlePay'); // 支付按钮渲染完成回调函数 elements.on('ready', (data) => { console.log('Button rendered successfully:', data); }); // 错误信息 elements.on('error', (data) => { console.error('Payment error:', data); }); ``` * 参数说明 * 1.初始化配置参数(HaiPay 构造函数参数) | 参数名 | 必选 | 类型 | 说明 | | | :----------- | :- | :------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | | sandbox | 是 | Boolean | 环境类型,默认值 true,可选值 :
- true:测试环境(用于联调测试)
- false:生产环境(上线使用) | | | clientToken | 是 | String | 客户端令牌clientToken | | | buttonType | 否 | String | 按钮文本类型,默认值 buy, 可选值:
- plain:"只显示支付徽标,无文字"
- add-money:"添加资金"
- book:"预定"
- buy:"购买"(默认)
- check-out:"结账"
- contribute:"捐款"
- order:"下单"
- reload:"重新加载"
- rent: "租赁"
-subscribe: "订阅"
-support: "支持"
-tip: "付小费"
-top-up: "充值" | | | buttonTheme | 否 | String | 按钮主题样式,默认值 black,可选值:
- black:黑色背景
- white:白色背景 | | | buttonHeight | 否 | number | 按钮高度,默认值 50 | | * 2.常见错误类型及解决方案 | 错误信息 | 错误原因 | 解决方案 | | :---------------------------------------- | :----------- | :--------------------- | | Missing required parameters: env, orderNo | 缺少必需的初始化参数 | 检查 clientToken 等参数是否传入 | | Unsupported region: CN | 生产环境下不支持中国地区 | | ## **HaiPay.js 对接(creditCard)**
HaiPay 提供了便捷的 creditCard 支付集成方案,通过简单配置即可在网页中快速集成支付功能。 * 引入 HaiPay 脚本(\[[https://cashier.haipay.top/js/creditCard\_1.0.0.min.js](https://cashier.haipay.top/js/creditCard_1.0.0.min.js)]) * 页面结构要求 * 页面容器:用于 creditCard 页面的渲染。 * 快速集成示例 ```javascript theme={null}
// 创建实列 const elements = creditCard.create('card', { sandbox: true, clientToken: '6cgjnxvc6kdb' }); // 挂载组件 elements.mount('#creditCard'); // 信用卡页面渲染完成回调函数 elements.on('ready', (data) => { console.log('Card rendered successfully:', data); }); // 错误信息 elements.on('error', (data) => { console.error('Payment error:', data); }); // 提交表单信息 elements.submit() ``` * 参数说明 * 1.初始化配置参数(HaiPay 构造函数参数) | 参数名 | 必选 | 类型 | 说明 | | | :---------- | :- | :------ | :---------------------------------------------------------------------- | - | | sandbox | 是 | Boolean | 环境类型,默认值 true,可选值 :
- true:测试环境(用于联调测试)
- false:生产环境(上线使用) | | | clientToken | 是 | String | 客户端令牌clientToken | | | cardTheme | 否 | String | 主题样式,默认值 white,可选值:
- black:黑色背景
- white:白色背景 | | * 2.常见错误类型及解决方案 | 错误信息 | 错误原因 | 解决方案 | | :---------------------------------------- | :----------- | :--------------------- | | Missing required parameters: env, orderNo | 缺少必需的初始化参数 | 检查 clientToken 等参数是否传入 | | Unsupported region: CN | 生产环境下不支持中国地区 | | ## **限额** | 交易类型 | 限额(单位:USD) | | :--- | ---------- | | 代收 | 0.99-1000 | ## **代收API** ### **1.代收申请** **简要描述:** * 创建代收订单 **URL:** 美元: `/usd/collect/apply` 说明:appId需使用美元对应的,用户支付成功后增加美元余额 **参数:** | 参数名 | 必选 | 类型 | 说明 | | :-------------- | :- | :----- | :------------------------------------------------------------------------------ | | appId | 是 | Long | 业务ID(后台获取,需要根据URL中的币种传递对应的业务ID) | | orderId | 是 | String | 商户订单号(必须保证唯一性,长度不超过48) | | name | 否 | String | 用户姓名,推荐使用真实姓名,格式:包含firstName和lastName,以空格分割的,示例:Donald John Trump | | phone | 是 | String | 真实手机号(格式参考 [电话号码格式](/docs/zh/guide/frequently_asked_question#phone_format) ) | | email | 否 | String | 真实电子邮件 | | amount | 是 | String | 交易金额(精确到小数点后两位;禁止添加标点符号,例如:”,”) | | payType | 是 | String | [支付方式类型](#inBankCode) | | inBankCode | 是 | String | [支付方式编码](#inBankCode) | | clientIp | 否 | String | 用户端ip | | callBackUrl | 是 | String | 用户支付成功后跳转地址 | | callBackFailUrl | 是 | String | 用户支付失败后跳转地址 | | notifyUrl | 否 | String | 回调地址 | | subject | 是 | String | 支付备注 | | body | 否 | String | 备注详情 | | partnerUserId | 是 | String | 用户唯一标识(如用户ID userId),用于风控系统,必须真实有效,否则会影响交易。 格式要求:数字、大小写字母或常用符号-\~!@#\$%&\*()\_。 | | sign | 是 | String | 签名 | **请求示例** ```json theme={null} { "appId": 1054, "orderId": "M233323000059", "amount": "300", "phone": "09230219312", "email": "23423@qq.com", "name": "test", "inBankCode": "USA", "payType": "BANK_TRANSFER", "partnerUserId": "149597870", "sign": "af0gAHkUOyYHu9owQp8NJ4mPEeUW4vuJcjdxqLIzrVw8AvpLSjD1DXupReSG/CyuSkFRyiIvCp5u703AuGGmfgD2gKDH3Ywau41bAbG2jnHJ8mtjiSJ5iWUzanyd4Kr7d1+rETbzUl7/BkW3t0X8UUFdqpxwG8DPUjAwUKfplWDHV7koG51Ozexd80DCsmW6eWdouAZ1uNXGLYmV3ftE3BmfNRtuv1C5bfTJWrTEIOxbF6g2uYOFZTlIgrQgd7/2PsAYwQQXNz8Q8CYl4OxqCv4pXJxaLWPbR5tqZu9og5kn32C9aHW/NlU1y39vzz+4ef81yPAqUV9oHlSMSPrMmw==" } ``` **响应示例** ```json theme={null} { "status": "1", "error": "00000000", "msg": "", "data": { "orderId": "M233323000059", "orderNo": "6023071013539074", "payUrl": "", "clientToken": "", "sign": "YEoA8Y2JzQFGVzwJSqmemm1Kfv/bfyIfCqv2dp7RNzT5B72AQvdD+nt2nR4sL1HWscvmNHyVt5ovAi7MMhy3ziih/sMph+wPx4YjH3W1h5DyBvSlWvaKfKrK5ViomZ0pPYWydwRHnnRnicxToHK9S6qtSy7Q73O0hdz4hJ9p41Th3ycBl2Q9SeqSZYSY1ohcPDhdyRf2y0prb8rHgpBKzxZ5BKX/1bsE9OmsSEHAEYT8OGgko6aNe8XPAhr4G48cpWTftvnGQuzh0O65nuZRI/PF+Axt2zJCVbFHDDSREI9NlAT82ebDqhlVdxQzKE67D1nxgjb3dPmDUYHOBpmwxQ==" } } ``` 返回data参数说明 | 参数名 | 类型 | 说明 | | :---------- | :----- | :-------------------------------------------------------- | | orderId | String | 商户订单号(必须保证唯一性) | | orderNo | String | 平台订单号 | | payUrl | String | 支付链接 | | bankCode | String | 支付方式编码 | | clientToken | String | 在JavaScript Web SDK中使用的客户端令牌(见[HaiPaySDK.js](#haipaysdk)) | | sign | String | 签名 | ### **2.代收申请 [MIT模式](#mit)** **简要描述:** * 创建MIT模式代收订单 **URL:** 美元: `/usd/mit/apply` 说明:appId需使用美元对应的,用户支付成功后增加美元余额 **参数:** | 参数名 | 必选 | 类型 | 说明 | | :-------------- | :- | :------ | :----------------------------------------------------------------------------------------- | | appId | 是 | Long | 业务ID(后台获取,需要根据URL中的币种传递对应的业务ID) | | orderId | 是 | String | 商户订单号(必须保证唯一性,长度不超过48) | | name | 否 | String | 用户姓名,推荐使用真实姓名,格式:包含firstName和lastName,以空格分割的,示例:Donald John Trump | | phone | 否 | String | 真实手机号(格式参考 [电话号码格式](/docs/zh/guide/frequently_asked_question#zh_faq_phone-number-format) ) | | email | 否 | String | 真实电子邮件 | | amount | 是 | String | 交易金额(精确到小数点后两位;禁止添加标点符号,例如:”,”) | | payType | 是 | String | [支付方式类型](#inBankCode) | | inBankCode | 是 | String | [支付方式编码](#inBankCode) | | clientIp | 否 | String | 用户端ip | | callBackUrl | 是 | String | 用户支付成功后跳转地址 | | callBackFailUrl | 是 | String | 用户支付失败后跳转地址 | | notifyUrl | 否 | String | 回调地址 | | subject | 是 | String | 支付备注 | | body | 否 | String | 备注详情 | | partnerUserId | 是 | String | 用户唯一标识(如用户ID userId),用于风控系统,必须真实有效,否则会影响交易。 格式要求:数字、大小写字母或常用符号-\~!@#\$%&\*()\_。 | | tokenID | 否 | String | 支付令牌,首次交易不需要,后续主动扣款需要,通过回调获取 | | token | 否 | String | Apple Pay / Google Pay Token,自行获取传递或使用HaiPay页面,[如何获取?](#token) | | loadingType | 否 | Integer | 0(默认) – 显示正常的支付结果页面; 1 – 显示加载中动画(loading 转圈),不展示订单信息。 | | cancelUrl | 否 | String | 用户取消支付URL,如果传递,用户可在支付页面点击返回到此页面 | | sign | 是 | String | 签名 | **请求示例** ```json theme={null} { "appId": 1054, "orderId": "M233323000059", "amount": "300", "phone": "09230219312", "email": "23423@qq.com", "name": "test", "inBankCode": "USA", "payType": "BANK_TRANSFER", "partnerUserId": "149597870", "sign": "af0gAHkUOyYHu9owQp8NJ4mPEeUW4vuJcjdxqLIzrVw8AvpLSjD1DXupReSG/CyuSkFRyiIvCp5u703AuGGmfgD2gKDH3Ywau41bAbG2jnHJ8mtjiSJ5iWUzanyd4Kr7d1+rETbzUl7/BkW3t0X8UUFdqpxwG8DPUjAwUKfplWDHV7koG51Ozexd80DCsmW6eWdouAZ1uNXGLYmV3ftE3BmfNRtuv1C5bfTJWrTEIOxbF6g2uYOFZTlIgrQgd7/2PsAYwQQXNz8Q8CYl4OxqCv4pXJxaLWPbR5tqZu9og5kn32C9aHW/NlU1y39vzz+4ef81yPAqUV9oHlSMSPrMmw==" } ``` **响应示例** ```json theme={null} { "status": "1", "error": "00000000", "msg": "", "data": { "orderId": "M233323000059", "orderNo": "6023071013539074", "payUrl": "", "clientToken": "", "sign": "YEoA8Y2JzQFGVzwJSqmemm1Kfv/bfyIfCqv2dp7RNzT5B72AQvdD+nt2nR4sL1HWscvmNHyVt5ovAi7MMhy3ziih/sMph+wPx4YjH3W1h5DyBvSlWvaKfKrK5ViomZ0pPYWydwRHnnRnicxToHK9S6qtSy7Q73O0hdz4hJ9p41Th3ycBl2Q9SeqSZYSY1ohcPDhdyRf2y0prb8rHgpBKzxZ5BKX/1bsE9OmsSEHAEYT8OGgko6aNe8XPAhr4G48cpWTftvnGQuzh0O65nuZRI/PF+Axt2zJCVbFHDDSREI9NlAT82ebDqhlVdxQzKE67D1nxgjb3dPmDUYHOBpmwxQ==" } } ``` 返回data参数说明 | 参数名 | 类型 | 说明 | | :---------- | :----- | :-------------------------------------------------------- | | orderId | String | 商户订单号(必须保证唯一性) | | orderNo | String | 平台订单号 | | payUrl | String | 支付链接 | | clientToken | String | 在JavaScript Web SDK中使用的客户端令牌(见[HaiPaySDK.js](#haipaysdk)) | | sign | String | 签名 | ### **3.代收查询** **简要描述:** * 查询代收订单 **URL:** 美元: `/usd/collect/query` **参数:** | 参数名 | 必选 | 类型 | 说明 | | :------ | :- | :----- | :------------------------------ | | appId | 是 | Long | 业务ID(后台获取,需要根据URL中的币种传递对应的业务ID) | | orderId | 是 | String | 商户订单号 | | orderNo | 否 | String | 平台订单号(响应快) | | sign | 是 | String | 签名 | **请求示例** ```json theme={null} { "appId": 1054, "orderId": "M22222000028", "sign": "EmyJGm3ELzG4FsOd0Krs9ncbSjo4oTGuXWML+7djYla3+VAwd9wS17z38p/7U2ZAjroO04XrE7YXcB1o76Dtyipj3h3bJzs7FYma1QNkMUdt9hh7m8U6hMsMQX7vIWHtXNwz4pbTSC75+kQWXaCew7KoE6LXECdJU8AISgNgeki2TK9R0pCfshr0Z2SZBPeuT6OvIH5LdmqgdZhuqnffGU2qnXk4KMkO848e6/WALLBR+LE1wyKHfPnYVcuKSMVYxkvKyyIL5JIPEgW0o5bh4RCbaUn3NZtyYwrU1uQ3ZDFRThm9j6XAQP+LBlmq3nOePqBtp/VDVarRaV+7FbQg3A==" } ``` **响应示例** ```json theme={null} { "status": "1", "error": "00000000", "msg": "", "data": { "orderId": "M22222000028", "orderNo": "6023042811314347", "amount": "50.00", "actualAmount": "0.00", "fee": "0.00", "status": 1, "sign": "fP433ygWVDLVGxYkVnIJj7riGq0U3vyVX+MbBAImxfGLZkZcEAHVEoVYuULZSmXAAXKRSyd67WlDNm+24pougM54ofAoH4HMtCL2tfCoBReFyz3z02AGKkrKE2xWhSpWoqfQoBvzwuN5iGMMu0s9Q1YvqiwJ8WDVIENnmiIyD8qDJN7caHTW2US14/faG+69AvnuIgJ/nu7/jogOlgEYdZdVYU7gcRDE+d47KjlFGswQkJ/h/uzV7cWtUqrtOO7ZnZ3/z33Xx8awokX36QoYcPSWAU0h+Ij9O9402HNhm1eTbYcLU0uI/z8xCAtyAI/tTyiFijpiNlxUKQj+zKsILw==" } } ``` 返回data参数说明 | 参数名 | 类型 | 说明 | | :----------- | :------ | :-------------------------------------------------- | | orderId | String | 商户订单号(必须保证唯一性) | | orderNo | String | 平台订单号 | | amount | String | 交易金额 | | actualAmount | String | 收到金额 | | fee | String | 手续费 | | status | Integer | 状态(0未开始,1支付中,2成功(终态),3失败(终态), -1异常待确认) | | payTime | String | 支付成功时间(当status=2时有值)(本地时间), 格式: yyyy-MM-dd HH:mm:ss | | errorMsg | String | 支付失败原因(当status=3时有值) | | sign | String | 签名 | ### **4.退款申请** **简要描述:** * 发起原信用卡交易订单的退款操作,同步返回的退款状态请注意状态值,建议以查询接口为主。 **URL:** 美元: `/usd/refund/apply` **参数:** | 参数名 | 必选 | 类型 | 说明 | | :----------- | :- | :----- | :------------------------------- | | appId | 是 | Long | 业务ID(后台获取,需要根据URL中的币种传递对应的业务ID) | | orderId | 是 | String | 商户申请退款订单号(商户新的订单号,不能使用原代收的商户订单号) | | orderNo | 是 | String | 平台订单号(原代收返回的平台单号) | | refundAmount | 否 | String | 可选,不传则全额退款 | | sign | 是 | String | 签名 | 返回data参数说明 | 参数名 | 类型 | 说明 | | :------- | :----- | :------------------------------------------------------ | | appId | String | 业务ID | | orderNo | String | 平台订单号 (原代收返回的平台单号) | | orderId | String | 商户退款申请订单号 | | refundNo | String | 本次退款平台单号 | | status | String | 退款状态,1表示退款申请成功,0表示处理中,2表示失败,正常下发起就是返回处理中,后续需要调用查询接口查询状态 | | errorMsg | String | 错误信息,不一定有值 | | sign | String | 签名 | ### **5.退款查询** **简要描述:** * 发起退款的订单的结果查询。 **URL:** 美元: `/usd/refund/refundQuery` **参数:** | 参数名 | 必选 | 类型 | 说明 | | :------- | :- | :----- | :------------------------------ | | appId | 是 | Long | 业务ID(后台获取,需要根据URL中的币种传递对应的业务ID) | | orderId | 否 | String | 商户退款申请订单号 | | refundNo | 否 | String | 平台退款单号(申请退款返回的平台单号,如果有值优先查询此字段) | | sign | 是 | String | 签名 | 返回data参数说明 | 参数名 | 类型 | 说明 | | :----------- | :----- | :------------------------------------- | | appId | String | 商户订单号(必须保证唯一性) | | orderNo | String | 平台订单号(原代收返回的平台单号) | | orderId | String | 商户申请订单号 | | refundNo | String | 平台退款单号 | | status | String | 退款状态,1表示退款申请成功,0表示处理中,2表示失败,退款结果以此状态为准 | | errorMsg | String | 错误信息,不一定有值 | | refundAmount | String | 退款金额 | | sign | String | 签名 | ### **6.支付方式**
| 币种 | 支付类型(payType) | 支付编码(inBankCode) | 限额 | 状态 | 说明 | | :-- | :------------- | :--------------- | :-------- | :- | :--------- | | USD | BANK\_TRANSFER | CREDIT\_CARD | 0.99-1000 | 可用 | VISA | | USD | BANK\_TRANSFER | CREDIT\_CARD | 0.99-1000 | 可用 | MasterCard | | USD | BANK\_TRANSFER | CREDIT\_CARD | 0.99-1000 | 可用 | JCB | | USD | EWALLET | GOOGLE\_PAY | 0.99-1000 | 可用 | Google Pay | | USD | EWALLET | APPLE\_PAY | 0.99-1000 | 可用 | Apple Pay | ### 7.测试卡号 **只能在测试环境使用** #### 模拟成功支付 使用以下测试卡号,输入任意 CVC(3位数字)和有效期(未来日期)来模拟支付成功: * 卡号 1:4242424242424242 #### 模拟支付失败 使用以下测试卡号、无效数据来模拟支付失败: * 卡号 1:4000000000009995 * 无效月份:13 * 无效 CVV:99 ### 8.MIT(Merchant Initiated Transaction)模式说明 **MIT(Merchant Initiated Transaction,商户发起交易)**\ 指在用户完成一次性支付授权后,商户可在用户不在场的情况下主动发起的扣款。\ 该模式广泛应用于 **订阅支付、分期付款、会员续费、延迟扣款** 等业务场景。 #### 基本流程 1. **用户授权** * 用户在首次支付时输入支付信息,并完成必要的身份验证。 * 商户保存用户的支付凭证,用于后续的扣款请求。 2. **商户发起扣款** * 商户根据约定的周期或条件,直接使用已保存的支付凭证发起扣款请求。 * 由于交易为 **离线场景(off-session)**,即用户不参与交易,系统会依据用户授权和合规要求完成处理。 3. **认证要求** * 在大多数情况下,交易会直接完成。 * 若发卡行或风控系统要求再次验证,交易可能进入待用户确认的状态,需要用户补充验证才能完成。 #### 模式特点 * **提升体验**:用户无需每次手动输入支付信息。 * **合规安全**:符合国际支付法规和强客户认证(SCA)等要求。 * **应用广泛**:适用于订阅收费、自动续费、分期扣款、延迟结算等场景。 #### MIT流程图 ```mermaid theme={null} flowchart TD A[用户:在商户平台下单] --> B{交易类型判断} subgraph S2 [场景二:后续交易] direction TB I[后续交易] --> J[商户:向Haipay发送
交易请求与“令牌”] J --> K{Haipay:验证“令牌”} K -- 有效 --> L[Haipay:执行自动扣款] L --> N K -- 无效/失败 --> M[支付失败] M --> P[商户:通知用户支付失败] end subgraph S1 [场景一:首次交易] direction TB C[首次交易] --> D[Haipay:提供支付链接] D --> E[用户:确认支付] E --> F[支付成功] F --> G[Haipay:生成安全“令牌”
(绑定用户与商户)] G --> N[支付回调] N --> O[商户:提供服务/发货] end B --> C B --> I ``` ### 9.Apple Pay / Google Pay Token 获取方式说明
* [Apple Pay && Google Pay](https://uat-cashier.haipay.top/pay/mit/apple-google/) #### 对接流程 * 无需申请Apple Pay/Google Pay开发者账号,由HaiPay完成 * 引入 JavaScript 脚本(\[[https://js.stripe.com/v3/](https://js.stripe.com/v3/)]) * 页面结构要求 * 支付按钮容器:用于 Apple Pay/Google Pay 按钮的渲染。 * 快速集成示例 ```javascript theme={null}
initApplePayGooglePay() { const stripe = Stripe('需要一个密钥,请联系HaiPay获取'); //此密钥生产和测试不共用 const paymentRequest = stripe.paymentRequest({ country: "HK", currency: "usd", total: { label: "Haipay", amount: 0.99 * 100, // 单位是分 }, requestPayerName: true, requestPayerEmail: true, }); // 用 paymentRequestButton 创建一个 Apple Pay / Goole Pay 按钮 const elements = stripe.elements(); const prButton = elements.create("paymentRequestButton", { paymentRequest: paymentRequest, }); // 检查浏览器是否支持 Apple Pay Goole Pay paymentRequest.canMakePayment().then((result) => { if (result && (result.applePay || result.googlePay)) { prButton.mount("#applePay-googlePay"); } else { document.getElementById("applePay-googlePay").style.display = "none"; document.getElementById("applePay-googlePay-not-supported").style.display = 'block'; } }); paymentRequest.on("paymentmethod", async (ev) => { //ev.paymentMethod.id 这个就是需要的token,用于调用/usd/mit/apply接口传参 }); } ``` ```html theme={null} Google Pay and Apple Pay Demo

Google Pay And Apple Pay Demo

体验安全快捷的支付方式

{/* 不支持Apple Pay时显示 */}
```
# 订阅支付流程图 Source: https://doc.haipay.net/docs/zh/api/version2/subscription-process 用更清晰的阶段拆解 HaiPay 订阅支付全流程,包括创建订阅、周期扣款、取消订阅和异常重试逻辑。 这个页面用于帮助你快速理解 HaiPay 订阅业务的完整生命周期。建议先看流程摘要,再看分阶段图示,最后回到 [订阅支付接口](/docs/zh/api/version2/Subscription) 和 API Reference 做具体接入。 用户授权订阅,完成首笔支付,并生成平台订阅号。 HaiPay 按周期自动扣款,并把结果异步通知给商户。 用户取消、超过最大周期或重试失败时,订阅结束。 ## 流程摘要 商户调用订阅申请接口,HaiPay 返回授权地址或前端组件所需的支付令牌,用户完成授权与首笔支付。 首次支付成功后,平台生成 `subscriptionNo`,后续自动扣款都围绕这个订阅号进行。 到达扣款周期后,HaiPay 自动发起扣款,并通过异步通知将结果同步给商户。 当用户主动取消、达到最大循环次数,或连续失败达到终止条件时,订阅结束。 ## 关键状态理解 | 阶段 | 你需要关注什么 | | :--- | :---------------------------- | | 创建订阅 | 是否成功返回授权入口、用户是否完成首次授权与首笔支付 | | 订阅成功 | 是否拿到 `subscriptionNo` 并完成本地落库 | | 周期扣款 | 是否正确接收并处理每次异步扣款通知 | | 取消订阅 | 是否为用户提供清晰的退订入口,并同步取消结果 | | 异常重试 | 是否对失败扣款做好风控、通知和业务补偿策略 | * 首次支付成功后,立即保存 `subscriptionNo`、商户订阅号和用户标识之间的关系。 * 不要只依赖前端结果页,订阅状态与扣款结果都应以服务端通知和查询接口为准。 * 订阅业务务必向用户展示周期、金额、取消方式和服务协议。
## 创建订阅 **目标**:完成用户授权与首笔订阅支付,并建立订阅关系。 ```mermaid theme={null} sequenceDiagram participant 用户 participant 商户 participant HaiPay 用户->>商户: 1. 选择订阅服务 商户->>HaiPay: 2. 调用 apply API 创建订阅 HaiPay-->>商户: 3. 返回授权 URL / 前端支付能力 商户-->>用户: 4. 引导用户进入授权页面 用户->>HaiPay: 5. 完成支付认证与授权 HaiPay->>HaiPay: 6. 校验授权状态 HaiPay->>HaiPay: 7. 发起首笔订阅扣款 HaiPay-->>商户: 8. 通知订阅结果 商户-->>用户: 9. 展示订阅开通结果 ``` **这一阶段的落地重点** * 商户侧要保存商户订阅号与平台订阅号映射 * 首笔支付结果不要只看前端页面,要结合通知或查询接口确认 * 用户侧要清楚知道订阅金额、周期和取消方式 ## 周期扣款 **目标**:在订阅有效期间,按约定周期自动续费。 ```mermaid theme={null} sequenceDiagram participant 用户 participant 商户 participant HaiPay HaiPay->>HaiPay: 1. 到期后自动发起周期扣款 HaiPay-->>商户: 2. 异步发送扣款结果 商户-->>用户: 3. 更新订阅权益或发送续费通知 ``` **这一阶段的落地重点** * 服务端必须处理异步通知,并返回大写 `SUCCESS` * 建议在每次扣款前后都向用户发送站外提醒 * 如果扣款失败,商户侧要定义好重试、降级或暂停服务策略 如果只依赖用户是否打开结果页,你会漏掉真实的周期扣款状态。订阅续费场景必须以服务端通知和查询接口做最终确认。 ## 取消订阅 **目标**:在用户申请退订或业务终止时,及时停止后续扣款。 ```mermaid theme={null} sequenceDiagram participant 用户 participant 商户 participant HaiPay 用户->>商户: 1. 发起取消订阅 商户->>HaiPay: 2. 调用 cancel API HaiPay-->>商户: 3. 返回取消结果 商户-->>用户: 4. 展示取消状态 ``` **这一阶段的落地重点** * 用户侧必须有清晰、可访问的取消入口 * 取消成功后,要同步更新本地订阅状态 * 如果取消前存在待处理扣款,需要在业务上明确最终权益边界 ## 完整生命周期图 ```mermaid theme={null} graph TD A[创建订阅] --> B[首次支付] B --> C[支付成功] B --> D[支付失败] D --> E[订阅失败] E --> A C --> F[订阅成功] F --> G[到达扣款周期,检查最大循环次数] G --> N[超过最大次数] N --> M[取消订阅] G --> L[未超过最大次数] L --> O[发起自动扣款] O --> H[扣款成功] H --> G O --> I[扣款失败] I --> G I --> K[失败后进入重试/终止判断] K --> M[取消订阅] ``` ## 推荐阅读顺序 1. 先看 [订阅支付接口](/docs/zh/api/version2/Subscription),确认你选择的前端集成模式。 2. 再进入 [订阅申请](/docs/zh/api-reference/subscription/api/subscriptionApply) 和 [查询订阅](/docs/zh/api-reference/subscription/api/subscriptionQuery) 理解字段与返回结构。 3. 最后确认 [取消订阅](/docs/zh/api-reference/subscription/api/subscriptionCancel) 的业务处理方式,退款统一使用 [信用卡退款接口](/docs/zh/api-reference/card/api/refundApply)。 # HaiPay 商户指南 Source: https://doc.haipay.net/docs/zh/guide/README 浏览 HaiPay 商户接入的核心入口,快速找到接入流程、配置签名、集成步骤、测试验收与上线清单。 围绕商户接入旅程组织的核心文档入口,从准备接入到测试上线都可以从这里进入。 从商户申请、技术准备到联调执行,先了解整体接入路径。 查看商户参数、签名算法、请求格式和关键配置规则。 按实施顺序了解接口接入、参数对接与回调处理流程。 快速理解字段含义、公共规则、签名机制和返回结构。 对照测试链路和验收动作,确认联调与提单前的检查项。 核对生产前必查项、资料提交项和上线准备事项。 查看常见报错、配置疑问和接入排查建议。 通过 HaiPay MCP 连接 HaiPay 文档知识库。 # HaiPay 接口说明与公共规则 Source: https://doc.haipay.net/docs/zh/guide/api_description_guide 了解 HaiPay 接口类型、公共字段、签名规则、回调机制和通用返回结构,帮助快速理解整体 API 设计。 如果您要快速理解 HaiPay API,这一页主要回答 3 个问题:支持哪些接入方式、接口通信要遵循什么规则、以及请求结构是什么。 ## 1. 接入方式 | 接口类型 | API文档路径 | 适用业务范围 | 功能说明 | | :------- | :-------------------- | :----- | :--------------------------------------------------- | | 全球收银台 | 全球(收银台) | 全球业务 | 一次对接,支持全球多种支付方式。系统根据用户IP自动跳转至对应国家支付页面,用户可选择支付方式完成付款。 | | 本地收银台 | 北美、南美、欧洲、亚洲、中东等单一国家业务 | 单一国家业务 | 独立对接,API同步返回指定国家支持的支付页面,供用户选择并完成支付。 | | 纯API支付接口 | 北美、南美、欧洲、亚洲、中东等单一国家业务 | 单一国家业务 | 独立对接,API同步返回指定支付方式的相关信息,便于客户自定义支付页面。 | | 其他支付接口 | 全球(国际信用卡、信用卡订阅 | 全球业务 | 独立对接,API同步返回支付页面,一次性支付; 信用卡支持订阅扣款。 | ## 2. 通信协议 商户接入HaiPay服务,调用API须遵循以下规则: | 类型 | 说明 | | :---------- | :-------------------------------------------------------------------------------------- | | 传输方式 | 为保证交易安全性,采用HTTPS传输 | | 提交方式 | 采用POST方法提交 | | 数据格式 | 提交和返回数据都为application/json格式 | | 字符编码 | 统一采用UTF-8字符编码 | | 签名算法 | SHA256WithRSA | | 签名要求 | 请求和接受数据均需要校验签名,详细方法参考 [配置与签名](/docs/zh/guide/config_settings_and_signature_rules_guide) | | SSL/TLS协议版本 | TLSv1.2 TLSv1.3 | ## 3. 接口结构 如下是调用HaiPay接口的http结构,接口名称放到请求地址后面,data里边的内容为不同业务结构拼接而成的报文 ```json theme={null} POST https://uat-interface.haipay.asia/{币种}/{接口地址} { "appId": 1054, "orderId": "M233323000059", ... "sign": "af0gAHkUOyYHu9owQp8NJ4mPEeUW4vuJcjdxqLIzrVw8AvpLSjD1DXupReSG/CyuSkFRyiIvCp5u703AuGGmfgD2gKDH3Ywau41bAbG2jnHJ8mtjiSJ5iWUzanyd4Kr7d1+rETbzUl7/BkW3t0X8UUFdqpxwG8DPUjAwUKfplWDHV7koG51Ozexd80DCsmW6eWdouAZ1uNXGLYmV3ftE3BmfNRtuv1C5bfTJWrTEIOxbF6g2uYOFZTlIgrQgd7/2PsAYwQQXNz8Q8CYl4OxqCv4pXJxaLWPbR5tqZu9og5kn32C9aHW/NlU1y39vzz+4ef81yPAqUV9oHlSMSPrMmw==" } ``` 请求地址: | 联调环境 | 请求地址 | | :--- | :--------------------------------------------------------------------- | | 测试 | [https://uat-interface.haipay.asia](https://uat-interface.haipay.asia) | | 生产 | 上线提供 | ## 4. 接口列表 | 产品 | 接口名称 | 接口地址 | 描述 | | ---- | -------------- | --------------- | ------------- | | 代收 | 代收申请 | /collect/apply | 用户向商户进行付款(充值) | | 代收查询 | /collect/query | | | | 退款申请 | /refund/apply | | | | 代付 | 代付申请 | /pay/apply | 商户向用户进行付款(提现) | | 代付查询 | /pay/query | | | | 账户余额 | 查询账户 | /account/ledger | 商户进行余额查询 | 详情查看 [接口文档](/docs/zh/guide/api_doc_list) 。 ## 5. 参数 **请求接口公共参数** | 参数名 | 必选 | 类型 | 说明 | | :---- | :- | :------ | :------------------------------------------------------------------------- | | appId | 是 | Integer | 业务ID(后台获取,需要根据URL中的币种传递对应的业务ID) | | sign | 是 | String | 签名(详情查看 [配置与签名](/docs/zh/guide/config_settings_and_signature_rules_guide)) | **请求示例:** ```json theme={null} { "appId": 1000, ...... "sign": "fCywFPOojpRIPi4ph81+CwoAvMXV1va2XR1DQVJeGnZwzNVd0hmvpud7nbP/3lc5JeTVELomruwVTGLtr+BTGT0IweAFTGNvNUuqOs3I4KG5tjvhPM7wm9NtwK2uAX1niLoylt4DcLfy2TeaxPQYDCJJRf7Qm7sDwJX5VoFt8RO9EC2ih+0Ike2+cAyRpIfKENPoIGQbUwvH6KkzHzjljcuvcSqq4D+iZid7up58A866RFrrJH9vkwaF+2mYxa/7awQIwAq8HPOxHkzLfVg74MZC8I1TOKvQAxkAquoNMMyrcAqRIopURfrgEaAtyW/ThPdyduYVlFeMg7BkpGLqZQ==" } ``` **响应接口公共参数** | 参数名 | 必选 | 类型 | 说明 | | :----- | :- | :----- | :------------- | | status | 是 | String | 1:正常,0:异常 | | error | 是 | String | 错误编码 | | msg | 是 | String | 错误描述 | | data | 是 | Object | 业务数据(**参与验签**) | **响应示例:** ```json theme={null} { "status": "1", "error": "00000000", "msg": "", "data": { "...": "...", "sign": "PWA7B2u1hGr1VRxOCZbRuXQXtJiA6BgPExFnFv73hKJ+zcZfOe/R+y+inlwWcdDBzfix35+dl6raEs/yG/hcYyQOwDQ+mVjIt5wFk6iX7GPw557138yBdAmuMqvWM2IF+omLFcQFJvzfbR84rCyOmebDJlhkYMga5TTFHVLicUx3bPIrOJLoWJHrnZfcVFAJ+P5mUQhMH/cf+YmYZvrqq34pMJh6PcP5vyruJ8aNV0QfyHR42AHLIgp+HnOcZpA0aUzFXM5zpsgXK3QR/KO3vLiKd77UaZNO6g5TN/Ck2MtLkBVxyvIHstgXFXKF1e+uc91FdBHK5nfmrjLQ2wyeUA==" } } ``` **错误编码** | 错误编码 | 英文回复 | 中文含义 | | :--- | :------------------------------------------------------------- | :----------------------------------- | | 1001 | param is null | 参数为空 | | 1002 | Illegal Param | 非法参数 | | 1003 | system exception | 系统异常(**订单可能已入库,等待异步通知或者查询结果确定最终状态**) | | 1004 | system is busy | 系统繁忙(**订单可能已入库,等待异步通知或者查询结果确定最终状态**) | | 4005 | order already exit | 订单已存在 | | 4011 | appId do not exit | 业务ID不存在 | | 4012 | you do not have an available product, please connect admin | 商户业务产品不可用,联系管理员 | | 4013 | order not exit | 订单不存在 | | 4014 | order is already end status | 订单为终态 | | 4015 | this merchant do not have a collect bank | 没有可用的收款账号 | | 4016 | your account do not have enough money | 账号余额不足 | | 4031 | ip adress is Forbidden | 非法IP | | 5012 | pay in channel not functional, please connect customer service | 系统异常 | # HaiPay 支付接口文档列表 Source: https://doc.haipay.net/docs/zh/guide/api_doc_list 汇总 HaiPay 各国家和地区的支付接口文档,便于按业务场景快速定位公共接口、全球支付和本地支付能力。 HaiPay 当前已覆盖全球通用能力与多个本地市场的支付接口。你可以从这里按产品能力或地区快速进入对应文档,而不必逐个查找页面。 优先阅读 [配置与签名说明](/docs/zh/guide/config_settings_and_signature_rules_guide) 和 [接口说明](/docs/zh/guide/api_description_guide),再进入具体国家或产品接口页进行联调。 ## 快速入口 查看公共参数、支付凭证和商户支付配置等通用能力入口。 覆盖收银台、国际信用卡、订阅与订阅流程等通用支付场景。 按国家和地区浏览本地收单、代付与钱包支付能力。 ## 产品能力 [公共接口](/docs/zh/api/version2/CommonApi) · [支付凭证 PDF/ZIP](/docs/zh/api/version2/VoucherPdf) · [商户支付配置](/docs/zh/api/version2/MerchantPaymentConfig) [收银台](/docs/zh/api/version2/GlobalCashier) · [国际信用卡](/docs/zh/api/version2/creditcard) · [信用卡订阅](/docs/zh/api/version2/Subscription) · [订阅流程](/docs/zh/api/version2/subscription-process) 先看 [API 文档简介](/docs/zh/api-reference/overview),再按业务类型进入对应接口页,效率更高。 ## 按地区浏览 [墨西哥](/docs/zh/api/version2/Mexico) [土耳其](/docs/zh/api/version2/Turkey) [巴西](/docs/zh/api/version2/Brazil) [埃及](/docs/zh/api/version2/Egypt) · [中东六国](/docs/zh/api/version2/Middle_East) 覆盖香港、新加坡、台湾、日本、韩国、菲律宾、泰国、越南、印尼、印度、马来西亚、巴基斯坦、孟加拉等主要市场。 [香港](/docs/zh/api/version2/HongKong) · [新加坡](/docs/zh/api/version2/Singapore) · [台湾](/docs/zh/api/version2/Taiwan) · [日本](/docs/zh/api/version2/Japan) · [韩国](/docs/zh/api/version2/SouthKorea) · [菲律宾](/docs/zh/api/version2/Philippines) · [泰国](/docs/zh/api/version2/Thailand) · [越南](/docs/zh/api/version2/Vietnam) · [印尼](/docs/zh/api/version2/Indonesia) · [印度](/docs/zh/api/version2/India) · [马来西亚](/docs/zh/api/version2/Malaysia) · [巴基斯坦](/docs/zh/api/version2/Pakistan) · [孟加拉](/docs/zh/api/version2/Bangladesh) ## 文档覆盖 * 28 个核心文档入口,覆盖公共能力、全球支付、本地支付 * 支持按产品能力浏览,也支持按地区和国家快速进入 * 适合在接入初期做能力筛选,也适合联调阶段做页面直达 # HaiPay 配置与签名指南 Source: https://doc.haipay.net/docs/zh/guide/config_settings_and_signature_rules_guide 了解 HaiPay 商户平台账号、appId、公私钥、签名算法和请求参数配置要求,确保联调与上线配置正确。 ## 1. 获取商户自助平台账号 合作确认后,HaiPay 将根据《商户接入申请表》中所填写的“管理员账号信息”,创建可供商户登录商户管理自助平台的管理员账号。 届时,请注意查收 HaiPay 下发的激活邮件,接入方可根据邮件指引激活管理员账号。 首次登录需要更改密码,请确保密码安全,以防外泄。 ## 2. 获取密钥appId和密钥 联调接入所需的商户appId,可通过商户管理平台获取。 签名使用的是SHA256WithRSA签名算法,需要商户自行生成公私钥信息,并将公钥通过商户管理平台上传,同时下载HaiPay的公钥。请妥善保管密钥信息,若不慎泄漏密钥,请及时更新密钥。 配置入口:「业务管理」-「支付产品配置」 **商户appId和密钥是配套的,区分币种、区分测试环境与正式环境。** ## 3. 公钥和私钥配置 ### 3.1 公钥和私钥的作用 ```mermaid theme={null} flowchart LR %% 节点样式 classDef entity fill:#f9fbff,stroke:#cbd5e1,stroke-width:1px,rx:8px; classDef key fill:#e6f7ff,stroke:#94a3b8,stroke-width:1px,rx:8px; classDef arrow stroke:#60a5fa,stroke-width:1.5px; %% 分组 subgraph 商户["商户"] A[商户私钥]:::key B[平台公钥]:::key end subgraph 平台["平台"] C[商户公钥]:::key D[平台私钥]:::key end %% 流程 A -->|私钥对body进行签章,请求发送到平台| C:::arrow D -->|平台会用私钥将回传数据签章后发给商户| B:::arrow C -->|平台会用商户公钥进行验签| A:::arrow B -->|商户需要拿平台公钥进行验签| D:::arrow %% 每条箭头颜色(可自定义) linkStyle 0 stroke:#3b82f6,color:#2563eb,stroke-width:1.5px; linkStyle 1 stroke:#22c55e,color:#15803d,stroke-width:1.5px; linkStyle 2 stroke:#f97316,color:#c2410c,stroke-width:1.5px; linkStyle 3 stroke:#a855f7,color:#7e22ce,stroke-width:1.5px; ``` ### 3.2 生成公钥私钥 私钥自行保存,公钥请添加到HaiPay后台,请去掉前后的`-----BEGIN XXX KEY-----`和`-----END XXX KEY-----`,以及换行和空格 #### 方式一:使用openssl生成 请参考网上示例,需安装openssl,密钥位数2048位 #### 方式二:在线生成密钥对 RSA密钥也可通过其他在线生成工具生成。 #### 方式三:通过代码生成 商户公私钥可通过以下SDK生成,生成的商户私钥请商户自己妥善保管,用于请求haipay报文的加签操作,商户公钥通过平台上传给haipay用于验证商户签名防止报文在网络传输过程中被篡改,同时在平台上获取haipay公钥放到自己程序中,用于验证haipay加签报文的签名。 ```java Java theme={null} /** * 生成2048位的RSA密钥对,并将公钥和私钥转为PEM格式 * * @return 一个包含公钥和私钥的Map,键为"publicKey"和"privateKey" */ public static Map generateRSAKeyPair() { try { // 创建 KeyPairGenerator 对象,并指定 RSA 算法 KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); // 初始化密钥长度为 2048 keyPairGenerator.initialize(2048); // 生成密钥对 KeyPair keyPair = keyPairGenerator.generateKeyPair(); // 获取公钥和私钥 PublicKey publicKey = keyPair.getPublic(); PrivateKey privateKey = keyPair.getPrivate(); // 转换公钥和私钥为 PEM 格式 String publicKeyPem = convertPublicKeyToPEM(publicKey); String privateKeyPem = convertPrivateKeyToPEM(privateKey); // 将公钥和私钥存入 Map Map keyPairMap = new HashMap<>(); keyPairMap.put("publicKey", publicKeyPem); keyPairMap.put("privateKey", privateKeyPem); return keyPairMap; } catch (NoSuchAlgorithmException e) { throw new RuntimeException("Failed to generate RSA key pair", e); } } /** * 将公钥转换为 PEM 格式 * * @param publicKey 公钥对象 * @return PEM 格式的公钥字符串 */ private static String convertPublicKeyToPEM(PublicKey publicKey) { String encodedPublicKey = Base64.getMimeEncoder(64, "\n".getBytes()) .encodeToString(publicKey.getEncoded()); return "-----BEGIN PUBLIC KEY-----\n" + encodedPublicKey + "\n-----END PUBLIC KEY-----"; } /** * 将私钥转换为 PEM 格式 * * @param privateKey 私钥对象 * @return PEM 格式的私钥字符串 */ private static String convertPrivateKeyToPEM(PrivateKey privateKey) { String encodedPrivateKey = Base64.getMimeEncoder(64, "\n".getBytes()) .encodeToString(privateKey.getEncoded()); return "-----BEGIN PRIVATE KEY-----\n" + encodedPrivateKey + "\n-----END PRIVATE KEY-----"; } ``` ```php PHP theme={null} /** * 初始化RSA算法密钥对 * * @param int $keysize RSA1024已经不安全了,建议2048 * * 使用示例 * 调用函数生成 RSA 密钥对,指定密钥长度为 2048 位 $result = initRSAKey(2048); echo "私钥:\n"; echo $result['private_key'] . "\n"; echo "公钥:\n"; echo $result['public_key'] . "\n"; */ public function initRSAKey($keysize) { $config = array( "digest_alg" => "sha256", "private_key_bits" => $keysize, "private_key_type" => OPENSSL_KEYTYPE_RSA, ); // 生成新的 RSA 密钥对,使用 SHA256 算法 $rsaKey = openssl_pkey_new($config); // 获取私钥 openssl_pkey_export($rsaKey, $privateKey); // 获取公钥 $publicKey = openssl_pkey_get_details($rsaKey); $publicKey = $publicKey["key"]; return array( 'public_key' => $publicKey, 'private_key' => $privateKey ); } ``` ## 4. 签名 | 类型 | 说明 | | :--- | :------------ | | 算法 | RSA | | 签名算法 | SHA256WithRSA | | 密钥长度 | 2048 | 签名统一生成规则: 基于RSA的签名验证方式 将所有非空参数的key按照ASCII排序后,取key(不包含sign)和value进行拼接,k1=v1\&k2=v2&...,在结尾再拼接\&key=merchantSecretKey(加密字段,后台获取) 采用RAS算法对字符串计算,算出签名字符串 **接口可能增加响应字段,验证签名时必须支持增加的扩展字段** ```java Java theme={null} import lombok.extern.slf4j.Slf4j; import org.apache.tomcat.util.http.fileupload.IOUtils; import javax.crypto.Cipher; import java.io.ByteArrayOutputStream; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.security.Key; import java.security.KeyFactory; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.NoSuchAlgorithmException; import java.security.PrivateKey; import java.security.PublicKey; import java.security.Signature; import java.security.spec.PKCS8EncodedKeySpec; import java.security.spec.X509EncodedKeySpec; import java.util.Base64; import java.util.HashMap; import java.util.Map; /** * @ClassName SHA256WithRSAUtils * @Description (SHA256WithRSA 签名工具类) * @Author Finlay * @Date 2021-02-01 * @Version 1.0.0 */ @Slf4j public class SHA256WithRSAUtils { public static final Charset CHARSET = StandardCharsets.UTF_8; /** * 密钥算法 */ public static final String ALGORITHM_RSA = "RSA"; /** * RSA 签名算法 */ public static final String ALGORITHM_RSA_SIGN = "SHA256WithRSA"; public static final int ALGORITHM_RSA_PRIVATE_KEY_LENGTH = 2048; private SHA256WithRSAUtils() { } /** * RSA算法公钥加密数据 * * @param data 待加密的明文字符串 * @param key RSA公钥字符串 * @return RSA公钥加密后的经过Base64编码的密文字符串 */ public static String buildRSAEncryptByPublicKey(String data, String key) { try { //通过X509编码的Key指令获得公钥对象 X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(Base64.getDecoder().decode(key)); KeyFactory keyFactory = KeyFactory.getInstance(ALGORITHM_RSA); Key publicKey = keyFactory.generatePublic(x509KeySpec); Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm()); cipher.init(Cipher.ENCRYPT_MODE, publicKey); return Base64.getEncoder().encodeToString(rsaSplitCodec(cipher, Cipher.ENCRYPT_MODE, data.getBytes(CHARSET))); } catch (Exception e) { throw new RuntimeException("加密字符串[" + data + "]时遇到异常", e); } } /** * RSA算法公钥解密数据 * * @param data 待解密的经过Base64编码的密文字符串 * @param key RSA公钥字符串 * @return RSA公钥解密后的明文字符串 */ public static String buildRSADecryptByPublicKey(String data, String key) { try { //通过X509编码的Key指令获得公钥对象 X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(Base64.getDecoder().decode(key)); KeyFactory keyFactory = KeyFactory.getInstance(ALGORITHM_RSA); Key publicKey = keyFactory.generatePublic(x509KeySpec); Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm()); cipher.init(Cipher.DECRYPT_MODE, publicKey); return new String(rsaSplitCodec(cipher, Cipher.DECRYPT_MODE, Base64.getDecoder().decode(data)), CHARSET); } catch (Exception e) { throw new RuntimeException("解密字符串[" + data + "]时遇到异常", e); } } /** * RSA算法私钥加密数据 * * @param data 待加密的明文字符串 * @param key RSA私钥字符串 * @return RSA私钥加密后的经过Base64编码的密文字符串 */ public static String buildRSAEncryptByPrivateKey(String data, String key) { try { //通过PKCS#8编码的Key指令获得私钥对象 PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(Base64.getDecoder().decode(key)); KeyFactory keyFactory = KeyFactory.getInstance(ALGORITHM_RSA); Key privateKey = keyFactory.generatePrivate(pkcs8KeySpec); Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm()); cipher.init(Cipher.ENCRYPT_MODE, privateKey); return Base64.getEncoder().encodeToString(rsaSplitCodec(cipher, Cipher.ENCRYPT_MODE, data.getBytes(CHARSET))); } catch (Exception e) { throw new RuntimeException("加密字符串[" + data + "]时遇到异常", e); } } /** * RSA算法私钥解密数据 * * @param data 待解密的经过Base64编码的密文字符串 * @param key RSA私钥字符串 * @return RSA私钥解密后的明文字符串 */ public static String buildRSADecryptByPrivateKey(String data, String key) { try { //通过PKCS#8编码的Key指令获得私钥对象 PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(Base64.getDecoder().decode(key)); KeyFactory keyFactory = KeyFactory.getInstance(ALGORITHM_RSA); Key privateKey = keyFactory.generatePrivate(pkcs8KeySpec); Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm()); cipher.init(Cipher.DECRYPT_MODE, privateKey); return new String(rsaSplitCodec(cipher, Cipher.DECRYPT_MODE, Base64.getDecoder().decode(data)), CHARSET); } catch (Exception e) { throw new RuntimeException("解密字符串[" + data + "]时遇到异常", e); } } /** * RSA算法使用私钥对数据生成数字签名 * * @param data 待签名的明文字符串 * @param key RSA私钥字符串 * @return RSA私钥签名后的经过Base64编码的字符串 */ public static String buildRSASignByPrivateKey(String data, String key) { try { //通过PKCS#8编码的Key指令获得私钥对象 PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(Base64.getDecoder().decode(key)); KeyFactory keyFactory = KeyFactory.getInstance(ALGORITHM_RSA); PrivateKey privateKey = keyFactory.generatePrivate(pkcs8KeySpec); Signature signature = Signature.getInstance(ALGORITHM_RSA_SIGN); signature.initSign(privateKey); signature.update(data.getBytes(CHARSET)); return Base64.getEncoder().encodeToString(signature.sign()); } catch (Exception e) { throw new RuntimeException("签名字符串[" + data + "]时遇到异常", e); } } /** * RSA算法使用公钥校验数字签名 * * @param data 参与签名的明文字符串 * @param key RSA公钥字符串 * @param sign RSA签名得到的经过Base64编码的字符串 * @return true--验签通过,false--验签未通过 */ public static boolean buildRSAverifyByPublicKey(String data, String key, String sign) { try { //通过X509编码的Key指令获得公钥对象 X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(Base64.getDecoder().decode(key)); KeyFactory keyFactory = KeyFactory.getInstance(ALGORITHM_RSA); PublicKey publicKey = keyFactory.generatePublic(x509KeySpec); Signature signature = Signature.getInstance(ALGORITHM_RSA_SIGN); signature.initVerify(publicKey); signature.update(data.getBytes(CHARSET)); return signature.verify(Base64.getDecoder().decode(sign)); } catch (Exception e) { e.printStackTrace(); } } /** * RSA算法分段加解密数据 * * @param cipher 初始化了加解密工作模式后的javax.crypto.Cipher对象 * @param opmode 加解密模式,值为javax.crypto.Cipher.ENCRYPT_MODE/DECRYPT_MODE * @return 加密或解密后得到的数据的字节数组 */ private static byte[] rsaSplitCodec(Cipher cipher, int opmode, byte[] datas) { int maxBlock = 0; if (opmode == Cipher.DECRYPT_MODE) { maxBlock = ALGORITHM_RSA_PRIVATE_KEY_LENGTH / 8; } else { maxBlock = ALGORITHM_RSA_PRIVATE_KEY_LENGTH / 8 - 11; } ByteArrayOutputStream out = new ByteArrayOutputStream(); int offSet = 0; byte[] buff; int i = 0; try { while (datas.length > offSet) { if (datas.length - offSet > maxBlock) { buff = cipher.doFinal(datas, offSet, maxBlock); } else { buff = cipher.doFinal(datas, offSet, datas.length - offSet); } out.write(buff, 0, buff.length); i++; offSet = i * maxBlock; } } catch (Exception e) { throw new RuntimeException("加解密阀值为[" + maxBlock + "]的数据时发生异常", e); } byte[] resultDatas = out.toByteArray(); IOUtils.closeQuietly(out); return resultDatas; } } ``` ```php PHP theme={null} /*使用示例 require 'SHA256WithRSAUtils.php'; $rsa = new SHA256WithRSAUtils(); $publicKey = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiqoMbM2+Dm7qCeVPA3c9srThRXPNX5p4kRaPo7zbaznoDFKXfYAT7zBGgc3XiQu+AoPx7ABO3/btuADy4tKC2GQsLYYbNNcUyIQIrPIeyGAknVq3G5/IKQe2qUnuFHdHUus5LkXA01RrCza8zTjCh30/Etd3bbKg8gwQYUqZAcHvU5Hi0AfCuWYw2CfLk7bK3HsveXjRXttq/KgIb+etslAUxtD42aUJoiVg9E+lESy8zWBDlxM7FVWYDygTVklWbzIy4N9nhb/9jMPsfN5+OMN/RS8ehN+OwOYVUGFmwS7hw8hVM1v3p3TpjEo9WCZhg4XLYBCvlCANWzW3sWKN9wIDAQAB'; $privateKey = 'MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCKqgxszb4ObuoJ5U8Ddz2ytOFFc81fmniRFo+jvNtrOegMUpd9gBPvMEaBzdeJC74Cg/HsAE7f9u24APLi0oLYZCwthhs01xTIhAis8h7IYCSdWrcbn8gpB7apSe4Ud0dS6zkuRcDTVGsLNrzNOMKHfT8S13dtsqDyDBBhSpkBwe9TkeLQB8K5ZjDYJ8uTtsrcey95eNFe22r8qAhv562yUBTG0PjZpQmiJWD0T6URLLzNYEOXEzsVVZgPKBNWSVZvMjLg32eFv/2Mw+x83n44w39FLx6E347A5hVQYWbBLuHDyFUzW/endOmMSj1YJmGDhctgEK+UIA1bNbexYo33AgMBAAECggEAZlZ6NRLjYeOZ9xO17OjkMDAu0gNVX2mx8eKkwENx7QEfsXiDNayBCdanMsWofQydf13B/lt72u9zIooQuDaFOw8zS6XeDnFudU582KcY8OmEHF4HJewW3bFDrk1R2OjvStMvsGbqmQ2EsxIC5bMuXrChDFbZXayn+/vLWwKjShetqPkN2cRHcKWaASqOnWOAnpgHm5VuGu2ttaR5K14pmMq7a0TOaj7lDYyHelWejCfqFFiWfYLefNj3oFVAfiNxwsxj8q42xWwPZ/Xzhn8p0cInja//1AMuNLIadyC4r6VR7cOIKm4F7XwCTCRCSmPbhDu5pOEA//pERFTTNtE7gQKBgQDdzbujAJRqkn0WwPtbKE7ZxR2KFjc4fM1LyPyODz4tbXhtXtZeMcjjsKn8pTpzbgj+Cfmhz9X8sKAqdxe1WJTtkgg5zbvPQ8A+Q0Su19LZMfFCuC0RCp1SX/asl4XeQe6fQZCft3AG7RgA5HjHET0/7Mpwb3C7A/xBwMfn51T0+wKBgQCgCuy9NmpG2bG/MEz1gDojYe08yKOGgTLp6v/UZcn+U6Oit37/sFe0vU7n9NMtkCLdhf2mqF1cNCUv+rzHkvtgG8FaNlsuozOMXuTNCJ6nj/IypMOnU8vV9DL9zUq5cUnny7HKwCTuS8FYZTjI75GfDDwrxIhhzOIkh2leQD+iNQKBgDV1xOgA18ToEeZOFUdfa8HpVLlXqW+gBQtjIhxLaD0iyYfy99A0R6s5hX8zg+cWemxgkx6BLZ5+I9yYX8qB00N/kyP7hmzqc4eORxutQVDATNo78gDNgiW8o4Pt8YIkehNAhk84s3O36bUtXD7+1Lh3pkN7WLx6tW5TvNsUUtHJAoGBAIYOoJ8dpYgTccAkRVKfRhO9Q2tW5SMVtgAayJCxcrGGfdseuVKT8+OBb0b83KedxJaqVf3zqcBCLaQy80543/dxSFS4k0hNjDBYjG7yeXMCMG4bdYgDuQpOsyfFfoI3UyDGjva2XDj/W8UfhKFLiz8ekIhY56SEaikPBEPerW7BAoGBAIW+5xD7BH4Z/w+GNrA5WFWNNH02+32AD/k6W59GQ+ejrFzCa9/SPa/7WEbBjKNWnzYl9pcdA0lP3LGEbKzrm6Zy+6lCHI6Hx/o4PbHaKTQg2jAIJdEUrAOKR44rjIY41a8wtgilfZA4I4zDSvJMPkMYOItIXjFCwHTxLLfw0CJp'; $decoded = 'eA8//4cK0DZvrOHrfc8vmr5htYqrb8k6gZiZtXAkSoLHOBkgsknRi8SP5YsYar7xXUSOo2b2LLOHB31JlOfXnH5vxIoG6/rHjkPagKA4r8+8cIp6glGou5f41ONJcsMoUPxThgsI+eTe4HxBUKlkjZ/6hh/WSdfcn8lRGGjBmOL5IqRGtvHQBNiJ9l7diezVPhQKZ+YGLOnmH6f+AKNM9/lY+2BWojsLcbLntUr9FGOIkrSf4GiYpWzVRsVOaqY4qmq+1be8qlvA7/MP+bWYCxDtk1OrZh852M4m0LEQosu8rtsalUZhgktBxhmMSR4I6z7e1KkaZdD4Y4iR+AU1Bg=='; $content = 'amount=200¤cy=PHP&merId=1000&orderId=M1234567904&key=WFZflvcV75jYP2G6QIpSsMtoX1e4awxO'; //$data = $rsa->buildRSAverifyByPublicKey($content,$publicKey,$decoded); $data = $rsa->buildRSASignByPrivateKey($content,$privateKey); var_dump($data) */ class SHA256WithRSAUtils { /** * 初始化RSA算法密钥对 * * @param int $keysize RSA1024已经不安全了,建议2048 * * 使用示例 * 调用函数生成 RSA 密钥对,指定密钥长度为 2048 位 $result = initRSAKey(2048); echo "私钥:\n"; echo $result['private_key'] . "\n"; echo "公钥:\n"; echo $result['public_key'] . "\n"; */ public function initRSAKey($keysize) { $config = array( "digest_alg" => "sha256", "private_key_bits" => $keysize, "private_key_type" => OPENSSL_KEYTYPE_RSA, ); // 生成新的 RSA 密钥对,使用 SHA256 算法 $rsaKey = openssl_pkey_new($config); // 获取私钥 openssl_pkey_export($rsaKey, $privateKey); // 获取公钥 $publicKey = openssl_pkey_get_details($rsaKey); $publicKey = $publicKey["key"]; return array( 'public_key' => $publicKey, 'private_key' => $privateKey ); } /** * 获取完整的私钥 * $privateKey; 私钥内容,不要头尾和换行符,只要内容 */ public function getPrivateKey($privateKey) { $pem = "-----BEGIN RSA PRIVATE KEY-----" . PHP_EOL; $pem .= chunk_split($privateKey, 64, PHP_EOL); $pem .= "-----END RSA PRIVATE KEY-----" . PHP_EOL; return openssl_pkey_get_private($pem); } /** * 获取完整的公钥 * @return bool|resource * $publicKey; 公钥内容,不要头尾和换行符,只要内容 */ public function getPublicKey($publicKey) { $pem = "-----BEGIN PUBLIC KEY-----" . PHP_EOL; $pem .= chunk_split($publicKey, 64, PHP_EOL); $pem .= "-----END PUBLIC KEY-----" . PHP_EOL; return openssl_pkey_get_public($pem); } /** * 私钥加密 * @param string $data 要加密的数据 * @param string $privateKey 私钥 * @return 加密后的字符串 */ public function buildRSASignByPrivateKey($data,$privateKey) { $privatekey = openssl_get_privatekey($this->getPrivateKey($privateKey)); //php5.4+ OPENSSL_ALGO_SHA256 openssl_sign($data, $result, $privatekey, OPENSSL_ALGO_SHA256); //php5.3 SHA256 //openssl_sign($data, $result, $privatekey, 'SHA256'); $result = base64_encode($result); return $result; } /** * 公钥验证 * @param string $data 源数据 * @param string $publicKey 公钥 * @param string $sign 校验的加密字符串 * @return boolean true代表验证成功,false代表验证失败 */ public function buildRSAverifyByPublicKey($data,$publicKey,$sign) { $publicKey = openssl_get_publickey($this->getPublicKey($publicKey)); //php5.4+ OPENSSL_ALGO_SHA256 $result = openssl_verify($data, base64_decode($sign), $publicKey, OPENSSL_ALGO_SHA256) == 1 ? true : false; //php5.3 SHA256 //$result = openssl_verify($data, base64_decode($sign), $publicKey, 'SHA256') == 1 ? true : false; return $result; } } ``` ```java Java theme={null} public static String getSign(Object obj, String secretKey) { Map map; if (obj instanceof Map) { map = (Map) obj; } else { map = BeanMapTool.beanToMap(obj); } Set keys = map.keySet(); List list = new ArrayList<>(keys); Collections.sort(list); // 构造签名键值对的格式 StringBuilder sb = new StringBuilder(); // 构造签名键值对的格式 for (String key : list) { Object val = map.get(key); // 如果key不为sign_type或sign,以及key不为空,则拼接进签名字符串。 if (!("".equals(val) || val == null || List.of("sign_type", "sign").contains(key))) { sb.append(key).append("=").append(val).append("&"); } } sb.append("key=").append(secretKey); return sb.toString(); } import org.springframework.cglib.beans.BeanMap; import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * bean和map互转 */ public class BeanMapTool { public static Map beanToMap(T bean) { BeanMap beanMap = BeanMap.create(bean); Map map = new HashMap<>(); beanMap.forEach((key, value) -> map.put(String.valueOf(key), value)); return map; } } ``` ```php PHP theme={null} function getSign($array, $merchantSecretKey) { $result = ""; try { $keys = array_keys($array); sort($keys); $str = ""; foreach ($keys as $key) { $val = $array[$key]; //php中数字类型0为空值,可能需要做特殊处理 if (!is_null($val) && $key != "sign") { $str .= $key . "=" . $val . "&"; } } $str = $str . "key=" . $merchantSecretKey; $result = $str; } catch (Exception $e) { return null; } return $result; } ``` ```js JavaScript theme={null} function getSign(map, merchantSecretKey) { try { // 提取键并按字母顺序排序 const keys = Object.keys(map).sort(); // 构造签名键值对的格式 const sb = keys.reduce((acc, key) => { const val = map[key]; if (val !== "" && val !== null && key !== "sign") { acc.push(`${key}=${val}`); } return acc; }, []).join('&'); // 加入商户密钥 const result = `${sb}&key=${merchantSecretKey}`; return result; } catch (error) { console.error(error); return null; } } ``` ```java Java theme={null} public static void main(String[] args) { String privateKey = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCKqgxszb4ObuoJ5U8Ddz2ytOFFc81fmniRFo+jvNtrOegMUpd9gBPvMEaBzdeJC74Cg/HsAE7f9u24APLi0oLYZCwthhs01xTIhAis8h7IYCSdWrcbn8gpB7apSe4Ud0dS6zkuRcDTVGsLNrzNOMKHfT8S13dtsqDyDBBhSpkBwe9TkeLQB8K5ZjDYJ8uTtsrcey95eNFe22r8qAhv562yUBTG0PjZpQmiJWD0T6URLLzNYEOXEzsVVZgPKBNWSVZvMjLg32eFv/2Mw+x83n44w39FLx6E347A5hVQYWbBLuHDyFUzW/endOmMSj1YJmGDhctgEK+UIA1bNbexYo33AgMBAAECggEAZlZ6NRLjYeOZ9xO17OjkMDAu0gNVX2mx8eKkwENx7QEfsXiDNayBCdanMsWofQydf13B/lt72u9zIooQuDaFOw8zS6XeDnFudU582KcY8OmEHF4HJewW3bFDrk1R2OjvStMvsGbqmQ2EsxIC5bMuXrChDFbZXayn+/vLWwKjShetqPkN2cRHcKWaASqOnWOAnpgHm5VuGu2ttaR5K14pmMq7a0TOaj7lDYyHelWejCfqFFiWfYLefNj3oFVAfiNxwsxj8q42xWwPZ/Xzhn8p0cInja//1AMuNLIadyC4r6VR7cOIKm4F7XwCTCRCSmPbhDu5pOEA//pERFTTNtE7gQKBgQDdzbujAJRqkn0WwPtbKE7ZxR2KFjc4fM1LyPyODz4tbXhtXtZeMcjjsKn8pTpzbgj+Cfmhz9X8sKAqdxe1WJTtkgg5zbvPQ8A+Q0Su19LZMfFCuC0RCp1SX/asl4XeQe6fQZCft3AG7RgA5HjHET0/7Mpwb3C7A/xBwMfn51T0+wKBgQCgCuy9NmpG2bG/MEz1gDojYe08yKOGgTLp6v/UZcn+U6Oit37/sFe0vU7n9NMtkCLdhf2mqF1cNCUv+rzHkvtgG8FaNlsuozOMXuTNCJ6nj/IypMOnU8vV9DL9zUq5cUnny7HKwCTuS8FYZTjI75GfDDwrxIhhzOIkh2leQD+iNQKBgDV1xOgA18ToEeZOFUdfa8HpVLlXqW+gBQtjIhxLaD0iyYfy99A0R6s5hX8zg+cWemxgkx6BLZ5+I9yYX8qB00N/kyP7hmzqc4eORxutQVDATNo78gDNgiW8o4Pt8YIkehNAhk84s3O36bUtXD7+1Lh3pkN7WLx6tW5TvNsUUtHJAoGBAIYOoJ8dpYgTccAkRVKfRhO9Q2tW5SMVtgAayJCxcrGGfdseuVKT8+OBb0b83KedxJaqVf3zqcBCLaQy80543/dxSFS4k0hNjDBYjG7yeXMCMG4bdYgDuQpOsyfFfoI3UyDGjva2XDj/W8UfhKFLiz8ekIhY56SEaikPBEPerW7BAoGBAIW+5xD7BH4Z/w+GNrA5WFWNNH02+32AD/k6W59GQ+ejrFzCa9/SPa/7WEbBjKNWnzYl9pcdA0lP3LGEbKzrm6Zy+6lCHI6Hx/o4PbHaKTQg2jAIJdEUrAOKR44rjIY41a8wtgilfZA4I4zDSvJMPkMYOItIXjFCwHTxLLfw0CJp"; String publicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiqoMbM2+Dm7qCeVPA3c9srThRXPNX5p4kRaPo7zbaznoDFKXfYAT7zBGgc3XiQu+AoPx7ABO3/btuADy4tKC2GQsLYYbNNcUyIQIrPIeyGAknVq3G5/IKQe2qUnuFHdHUus5LkXA01RrCza8zTjCh30/Etd3bbKg8gwQYUqZAcHvU5Hi0AfCuWYw2CfLk7bK3HsveXjRXttq/KgIb+etslAUxtD42aUJoiVg9E+lESy8zWBDlxM7FVWYDygTVklWbzIy4N9nhb/9jMPsfN5+OMN/RS8ehN+OwOYVUGFmwS7hw8hVM1v3p3TpjEo9WCZhg4XLYBCvlCANWzW3sWKN9wIDAQAB"; Map request = new HashMap<>(); request.put("appId", "1000"); request.put("orderNo", "1000"); //待签名字符串获取 String content = SignUtils.getSign(request, "WFZflvcV75jYP2G6QIpSsMtoX1e4awxO"); //执行签名 String sign = SHA256WithRSAUtils.buildRSASignByPrivateKey(content, privateKey); System.out.println("签名:" + SHA256WithRSAUtils.buildRSASignByPrivateKey(content, privateKey)); System.out.println("校验:" + SHA256WithRSAUtils.buildRSAverifyByPublicKey(content, publicKey, SHA256WithRSAUtils.buildRSASignByPrivateKey(content, privateKey))); } ``` ```php PHP theme={null} require 'SHA256WithRSAUtils.php'; require 'SignUtils.php'; $publicKey = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiqoMbM2+Dm7qCeVPA3c9srThRXPNX5p4kRaPo7zbaznoDFKXfYAT7zBGgc3XiQu+AoPx7ABO3/btuADy4tKC2GQsLYYbNNcUyIQIrPIeyGAknVq3G5/IKQe2qUnuFHdHUus5LkXA01RrCza8zTjCh30/Etd3bbKg8gwQYUqZAcHvU5Hi0AfCuWYw2CfLk7bK3HsveXjRXttq/KgIb+etslAUxtD42aUJoiVg9E+lESy8zWBDlxM7FVWYDygTVklWbzIy4N9nhb/9jMPsfN5+OMN/RS8ehN+OwOYVUGFmwS7hw8hVM1v3p3TpjEo9WCZhg4XLYBCvlCANWzW3sWKN9wIDAQAB'; $privateKey = 'MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCKqgxszb4ObuoJ5U8Ddz2ytOFFc81fmniRFo+jvNtrOegMUpd9gBPvMEaBzdeJC74Cg/HsAE7f9u24APLi0oLYZCwthhs01xTIhAis8h7IYCSdWrcbn8gpB7apSe4Ud0dS6zkuRcDTVGsLNrzNOMKHfT8S13dtsqDyDBBhSpkBwe9TkeLQB8K5ZjDYJ8uTtsrcey95eNFe22r8qAhv562yUBTG0PjZpQmiJWD0T6URLLzNYEOXEzsVVZgPKBNWSVZvMjLg32eFv/2Mw+x83n44w39FLx6E347A5hVQYWbBLuHDyFUzW/endOmMSj1YJmGDhctgEK+UIA1bNbexYo33AgMBAAECggEAZlZ6NRLjYeOZ9xO17OjkMDAu0gNVX2mx8eKkwENx7QEfsXiDNayBCdanMsWofQydf13B/lt72u9zIooQuDaFOw8zS6XeDnFudU582KcY8OmEHF4HJewW3bFDrk1R2OjvStMvsGbqmQ2EsxIC5bMuXrChDFbZXayn+/vLWwKjShetqPkN2cRHcKWaASqOnWOAnpgHm5VuGu2ttaR5K14pmMq7a0TOaj7lDYyHelWejCfqFFiWfYLefNj3oFVAfiNxwsxj8q42xWwPZ/Xzhn8p0cInja//1AMuNLIadyC4r6VR7cOIKm4F7XwCTCRCSmPbhDu5pOEA//pERFTTNtE7gQKBgQDdzbujAJRqkn0WwPtbKE7ZxR2KFjc4fM1LyPyODz4tbXhtXtZeMcjjsKn8pTpzbgj+Cfmhz9X8sKAqdxe1WJTtkgg5zbvPQ8A+Q0Su19LZMfFCuC0RCp1SX/asl4XeQe6fQZCft3AG7RgA5HjHET0/7Mpwb3C7A/xBwMfn51T0+wKBgQCgCuy9NmpG2bG/MEz1gDojYe08yKOGgTLp6v/UZcn+U6Oit37/sFe0vU7n9NMtkCLdhf2mqF1cNCUv+rzHkvtgG8FaNlsuozOMXuTNCJ6nj/IypMOnU8vV9DL9zUq5cUnny7HKwCTuS8FYZTjI75GfDDwrxIhhzOIkh2leQD+iNQKBgDV1xOgA18ToEeZOFUdfa8HpVLlXqW+gBQtjIhxLaD0iyYfy99A0R6s5hX8zg+cWemxgkx6BLZ5+I9yYX8qB00N/kyP7hmzqc4eORxutQVDATNo78gDNgiW8o4Pt8YIkehNAhk84s3O36bUtXD7+1Lh3pkN7WLx6tW5TvNsUUtHJAoGBAIYOoJ8dpYgTccAkRVKfRhO9Q2tW5SMVtgAayJCxcrGGfdseuVKT8+OBb0b83KedxJaqVf3zqcBCLaQy80543/dxSFS4k0hNjDBYjG7yeXMCMG4bdYgDuQpOsyfFfoI3UyDGjva2XDj/W8UfhKFLiz8ekIhY56SEaikPBEPerW7BAoGBAIW+5xD7BH4Z/w+GNrA5WFWNNH02+32AD/k6W59GQ+ejrFzCa9/SPa/7WEbBjKNWnzYl9pcdA0lP3LGEbKzrm6Zy+6lCHI6Hx/o4PbHaKTQg2jAIJdEUrAOKR44rjIY41a8wtgilfZA4I4zDSvJMPkMYOItIXjFCwHTxLLfw0CJp'; $request = array( "appId" => "1000", "orderNo" => "1000" ………… ); $sign = new SignUtils(); $merchantSecretKey = "WFZflvcV75jYP2G6QIpSsMtoX1e4awxO"; $content = $sign->getSign($request,$merchantSecretKey); $rsa = new SHA256WithRSAUtils(); $sign = $rsa->buildRSASignByPrivateKey($content,$privateKey); $flag = $rsa->buildRSAverifyByPublicKey($content,$publicKey,$sign); var_dump($content,$sign,$flag) ``` ```js JavaScript theme={null} import { sign as _sign, constants, verify as _verify } from 'crypto'; const pub = `-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxsSXTf7oaZrpmThFMadf8gvfAGzXyicEpac7w3Y7saP8Nq/hXxQpXW/KKDfAodE+IgE7elpr44X52aDqusP6mc552dTK/WR7UUrW/maoKWM7BAkbGxoXFaqjiEEGrG2N3n9kPtJ8mNaf7UnMQm04SgrruhJC6d7s1scm3YUWmzW76YvcW9+irKY6pkrGZ431Bqe2/QJ8cWoDoNwDVRuoux5tp88EinIZrCis+ySL/uB3+s1SokG3fy01+TaMgPqcqFTq6L75AgY012I8QUaSmP5usTPDiNY3xcBXK1UFhuL9yXMZcMehU+Cr8doJnHgDYNrMGYc54yuF8sIGNcrqFwIDAQAB -----END PUBLIC KEY----- ` const pri = `-----BEGIN PRIVATE KEY----- MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQDGxJdN/uhpmumZOEUxp1/yC98AbNfKJwSlpzvDdjuxo/w2r+FfFCldb8ooN8Ch0T4iATt6WmvjhfnZoOq6w/qZznnZ1Mr9ZHtRStb+ZqgpYzsECRsbGhcVqqOIQQasbY3ef2Q+0nyY1p/tScxCbThKCuu6EkLp3uzWxybdhRabNbvpi9xb36KspjqmSsZnjfUGp7b9AnxxagOg3ANVG6i7Hm2nzwSKchmsKKz7JIv+4Hf6zVKiQbd/LTX5NoyA+pyoVOrovvkCBjTXYjxBRpKY/m6xM8OI1jfFwFcrVQWG4v3Jcxlwx6FT4Kvx2gmceANg2swZhznjK4XywgY1yuoXAgMBAAECggEBAKF/GXBFrJAhTaswDQhK9amz+3xc8vdMvHnbZrNpXRb4JfRI8tRNjU5dheMnaVwQpmr6lVjUHtS+BkLMe+tDUFmnaVmTi1pWSdvC8uvAfOEjvs+Iln1utVLlUfli3Ak8+gfNeaWRX6rOtyIU0+Ek3JdMSDrmm3dpqQTYyrsxZyyzDP1rupeSWr+NpMHL6H/C1Pkb+iXDgwcH7QjQjFQIcZ/xwS1Kgjcv5ExmdzDjHcXjMwyOYvVs/QE2UiopiNHJLkbJqnu94t3KsKybIAeif9Bb94DHzKSvkyCjuY4eZ5qZ9zQYzH8J/ovFy8lH3fUwCwiNXSzhO8S7qVJRG5jGgAECgYEA7L7xNd3BxWjOKS+5FmfNH3jdLebDCs7cIykawNcihTSZx/6hNZT40UKs9L8MtSyUKprYQU7Z/J6/VcQalQmKE/zsitbdJQmEtc3kelXXPR7lQmwus0jU5PKEOnYeucSgNEWWdkZDbUioICw36syN1dvlvpKKCCB/9882zlch87MCgYEA1u7yYY2/KS3NvWOQ3meLgPU/hRQa8KlFUZ46Y4wG9S1sy6pagMwAiQuV2zMLJz1ezDjfm8Td8vZWFyDSfaSVdOaF/As5/RGEgOzRsl4xJOy754QZnURUv1zRN4uO9fJA2vxmew0tchfQvYuxUPrso2avpAQ6Os8E301qsJdrTg0CgYEA1/IXTV4YeLvviQv51SEbroBtp4fdEse7bur4dzwFReHD//QYEirvhtk9sAVwTvX5tJ8HcRK+rboTpuS4podMBo1nKgFxOG5lOfwzUw9nxF2hGyRYuLpPTwKTcEv8HNDonKV46CuRJ2blzGrpGmg5XAA3oMxD0cPrVhwRzscVthcCgYEAokHDAzhh/rFQZ1A59lxO6Wy7pjhWWiY/aW09ARedzQuc3WfeaOsY4Fy5pcA0BEyFO0EYNdz5/UhQF6e0oBtWpOi+b1b+UPkfgcDGUZRgH1MES7PjLmF+ZPSqEPevViarJWZz6yM4krA96koB83Nqn7SOlhCG8QyFzhoAmA3HeSUCgYEAzyoKo1dv//tO8917Lr7G4EuiXVjAYn/zBJ/0bZ6pDd0Myo6wMntbbKFt1MJCm8ybrcov/ttFA8SCtFWpZrrPX1YU2Zkb+gkBp9H9cUwOZbAHBTQKdT5QSs9DDIerHFEAT6ZjGDqzdJNfaN+H0D833YDGLe4CTFMPsJ5sdVoIrrQ= -----END PRIVATE KEY-----` const data = "Hello, World!"; // 将字符串格式的密钥转换为Buffer对象 const privateKeyBuffer = Buffer.from(pri, 'utf-8'); const publicKeyBuffer = Buffer.from(pub, 'utf-8'); // 使用私钥对数据进行签名 const sign = _sign('sha256', Buffer.from(data), { key: privateKeyBuffer, padding: constants.RSA_PKCS1_PADDING }); console.log('Signature:', sign.toString('base64')); // 使用公钥验证签名 const verify = _verify('sha256', Buffer.from(data), { key: publicKeyBuffer, padding: constants.RSA_PKCS1_PADDING }, sign); console.log('Verification result:', verify); Signature: YhuB6NaBumqFh9owd4qiTFAwaKS0sCBWAqS1CkEIIm2Tj5bJeUe7JZ1hbr6lS7usmNpIYiuRdI8E0X44FEiZzPumrC0G85+NEKB7jYP7qBJabRtlpChk9xdljLrRS3kL58cH2wbwFM5Fw+Ja1lElM5Kuy6ZIlWSGox7gid+pX6hExSaOlWDDTzhYO9eeSQBfIl4NIVXzniKwpImCwbwugZyWXLi1CK6DHSiqj7b29q+VdY8p3jVMaLuue4lAbXHR30/gbJGRIw/m27uJ1rL8l/652BqTpoJWAm6WvgUXDk+rv+uRNILdq7xspp0H6ImY4zKdD2iCrcqAn7Su6+DxnQ== Verification result: true ``` ## 5. 示例报文 请求 ```json theme={null} // 菲律宾代收请求 POST https://uat-interface.haipay.asia/php/collect/apply Content-Type: application/json { "appId": 1054, "orderId": "M233323000059", "amount": "300", "phone": "09230219312", "email": "23423@qq.com", "name": "test", "inBankCode": "PH_QRPH_DYNAMIC", "payType": "QR", // sign: 根据请求body使用merchant privateKey签名 "sign": "af0gAHkUOyYHu9owQp8NJ4mPEeUW4vuJcjdxqLIzrVw8AvpLSjD1DXupReSG/CyuSkFRyiIvCp5u703AuGGmfgD2gKDH3Ywau41bAbG2jnHJ8mtjiSJ5iWUzanyd4Kr7d1+rETbzUl7/BkW3t0X8UUFdqpxwG8DPUjAwUKfplWDHV7koG51Ozexd80DCsmW6eWdouAZ1uNXGLYmV3ftE3BmfNRtuv1C5bfTJWrTEIOxbF6g2uYOFZTlIgrQgd7/2PsAYwQQXNz8Q8CYl4OxqCv4pXJxaLWPbR5tqZu9og5kn32C9aHW/NlU1y39vzz+4ef81yPAqUV9oHlSMSPrMmw==" } ``` 响应 ```json theme={null} HTTP/1.1 200 OK Content-Type:application/json { "status": "1", "error": "00000000", "msg": "", "data": { "orderId": "M233323000059", "orderNo": "6023071013539074", "payUrl": "https://a.api-uat.php.com/1L9zQS2", "bankCode": "GCASH_STATIC_VA", "bankNo": "PC0007I10000035", "qrCode": "00020101021228760011ph.ppmi.p2m0111OPDVPHM1XXX0315777148000000017041652948137245442930503001520460165303608540810000.php Of Mandalu62310010ph.allbank05062110000803***88310012ph.ppmi.qrph0111OPDVPHM1XXX63042763", // sign:HaiPay签名信息,商户根据响应json body以及HaiPay publicKey验签 "sign": "YEoA8Y2JzQFGVzwJSqmemm1Kfv/bfyIfCqv2dp7RNzT5B72AQvdD+nt2nR4sL1HWscvmNHyVt5ovAi7MMhy3ziih/sMph+wPx4YjH3W1h5DyBvSlWvaKfKrK5ViomZ0pPYWydwRHnnRnicxToHK9S6qtSy7Q73O0hdz4hJ9p41Th3ycBl2Q9SeqSZYSY1ohcPDhdyRf2y0prb8rHgpBKzxZ5BKX/1bsE9OmsSEHAEYT8OGgko6aNe8XPAhr4G48cpWTftvnGQuzh0O65nuZRI/PF+Axt2zJCVbFHDDSREI9NlAT82ebDqhlVdxQzKE67D1nxgjb3dPmDUYHOBpmwxQ==" } } ``` # HaiPay 端到端测试指南 Source: https://doc.haipay.net/docs/zh/guide/end_to_end_testing 查看 HaiPay 联调测试环境的完整操作流程,包括订单状态调整、通知发送以及上线前验收检查要点。 我们为商家提供全面的测试环境,供其在构建集成时使用。您可以在商户后台修改订单状态以及发送通知。 **修改订单状态只在测试环境有效,在正式环境中无效。** ## 1. 修改订单状态 入口:「交易记录」-「代收订单」/「代付订单」 测试环境中修改订单状态的后台入口截图 测试环境中选择订单并修改状态的操作截图 ## 2. 发送通知 入口:「交易记录」-「代收订单」/「代付订单」 测试环境中手动发送通知给商户的后台操作截图 # HaiPay 错误返回说明 Source: https://doc.haipay.net/docs/zh/guide/error_response_appendix 汇总 HaiPay 常见错误返回信息与排查建议,帮助快速定位订单异常、网关返回和接口报错原因。 本文档汇总了部分常见的 `error_msg`(或相关错误信息)及其含义,便于排查问题时快速定位实际原因和处理建议。 > 说明:如遇下表未覆盖的错误,请优先根据订单状态、网关返回信息进行排查,必要时联系 HaiPay 支持。 ## 美元代付 | 返回失败原因 / error\_msg | 实际原因 / 处理建议 | | :------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------ | | 订单一直是支付中的 | 需要收款人登录其邮箱,点击确认收款链接后才能最终收到钱。请提醒收款人尽快在邮箱中完成确认操作。 | | NULL | 网关未返回具体错误文案,可能为未知异常。请先检查订单状态,如仍异常请联系 HaiPay 支持处理。 | | Manual processing failed | 手工处理失败,可稍后重试;如多次重试仍失败,请联系 HaiPay 支持。 | | 银行退单 | 收款账户无效或存在限制(如销户、冻结等),建议让收款人确认账号状态或更换其他收款账户。 | | HttpStatus:500 | 通讯超时或服务端异常。请先查询订单状态,若重新发起仍失败,请联系 HaiPay 支持。 | | 创建收款人失败:is invalid length or format. | 参数格式或长度不符合要求(例如姓名、证件号、账号等)。请校验参数是否符合文档要求后重试。 | | HttpStatus:502 | 通讯超时或网关故障。请先查询订单状态,若重新发起仍失败,请联系 HaiPay 支持。 | | The account cannot be registered with the given information. Please try registering using a different bank account. | 账户信息不符合发卡行要求,账户无效或不支持当前业务。请更换其他有效的银行账户。 | | java.net.SocketTimeoutException: Read timed out | 读取超时。请查询订单状态,必要时可重新发起;若多次出现,请联系 HaiPay 支持。 | | 创建转帐方式失败:java.net.SocketTimeoutException: Read timed out | 创建转账方式时读取超时。请查询订单状态,必要时重新发起;若多次出现,请联系 HaiPay 支持。 | | 转账 | 网关仅返回“转账”或类似模糊描述,无法定位具体原因。请结合订单状态、银行流水进一步排查,或联系 HaiPay 支持。 | | java.net.SocketTimeoutException: connect timed out | 建立连接超时。请查询订单状态,必要时重新发起;若网络环境正常且多次出现,请联系 HaiPay 支持。 | | Illegal request! | 请求参数非法或签名等校验不通过。请检查请求参数、签名规则、编码格式等是否与文档一致。 | | The account status does not allow the requested action. | 账户当前状态不允许此类操作(如冻结、受限等),账户无效。请让收款人联系发卡行或更换其他收款账户。 | | Server unknown error | 服务器未知错误或超时。请先检查订单状态,如仍异常请截图完整响应并联系 HaiPay 支持。 | | The information entered does not match our records. Please try again. | 账户或身份信息与银行记录不一致。请让收款人核对姓名、账号、证件信息等;如多次失败,可联系 HaiPay 支持协助排查。 | | 创建转帐方式失败:Account ID Invalid entry. | 收款账户 ID 无效(账户不存在或录入错误),账户无效。请更换或修正收款账户后重试。 | | 付款账号金额不足 | 付款账户余额不足。请先补足资金后再发起代付,或检查是否存在冻结/保留金额。 | | 查询不到付款订单 | 暂未查询到对应付款订单记录。请确认订单号是否正确,可稍后重试;如仍查询不到且资金已扣减,请联系 HaiPay 支持。 | | 可用地址信息不足 | 收款方地址信息不完整或不满足通道要求。请补充完整地址信息(如国家、省市、详细地址等)后重试。 | | 查询不到付款订单,手动回调 | 系统未查到订单(或查询异常),已通过人工方式回调商户。请以商户后台及最终资金状态为准,如有疑问请联系 HaiPay 支持。 | ## 越南代付 | 返回失败原因 / error\_msg | 实际原因 / 处理建议 | | :------------------------------------------------------------------------------------------------------------------------- | :--------------------------- | | 付款账号金额不足 | 联系我们 | | 出款失败渠道已退回 | 联系我们 | | 查询不到付款订单 | 联系我们 | | Your account balance is insufficient | 联系我们 | | Unexpected end of file from server | 出现这个错误重新下单吗 | | The amount of the arrival nearly supports the integer | 联系我们 | | System error | 联系我们 | | syntax error | 联系我们 | | SSLHandshakeException: Remote host closed connection during handshake | 联系我们 | | refund | 核对账号信息 | | please input correct account name,account name: | 名字错误 | | NULL | 联系我们 | | Manual processing failed | 联系我们 | | get match outbound fee configs from clear service failed | 联系我们 | | error\_msg | 联系我们 | | ConnectException: Connection timed out (Connection timed out) | 检查订单状态 | | Beneficiary account can not receive payment | 联系我们 | | Bank account is not valid | 核对账号信息 | | \

The gateway did not receive a timely response from the upstream server or application.\


Powered by Tengine\ | 联系我们 | | \\504 Gateway Time-out\\ | 联系我们 | | \

504 Gateway Time-out\

| 联系我们 | | Invalid cardholder's name | 名字错误 | | Error when connect to bank. You get this error when the bank is maintenance or upgrade. | 连接银行时出错。当银行进行维护或升级时,您会收到此错误。 | | ErrorCode Query: invalid Bank\_code | 联系我们 | | OrderStatus Query:02 | 联系我们 | | Invalid account number | 联系我们 | | An error occurred during connection. Need to confirm again with about status of transaction | 联系我们 | | ErrorCode Query: Invalid ref\_code | 联系我们 | | Had refund money | 失败 | | ref\_code is exist | 联系我们 | ## 印尼代付 | 返回失败原因 / error\_msg | 实际原因 / 处理建议 | | :--------------------------------------------------------------------------------------------------------------------------- | :------------------------ | | The current merchant balance is insufficient and the payment on behalf of the merchant has failed! | 出现此错误联系我们 | | Vendor Error: 4033805 \| Do Not Honor | 渠道异常出款失败,请用户确认账号没有问题后重新尝试 | | Vendor Error: 209 \| Bank Account is not found | 银行账号错误 | | Vendor Error: 300 \| The bank/e-wallet system encounters an error while disbursing the money. Try again in a moment. | 重新出款 | | Vendor Error: 300 \| System encounters an error while disbursing the money. Please try again in a moment. | 重新出款 | | Vendor Error: 4033814 \| Insufficient Fund | 出现此错误联系我们 | | Vendor Error: 4033802 \| Exceeds Transaction Amount Limit | 超过最小-最大金额限制 | | Vendor Error: 300 \| Account has exceeded the maximum amount for receiving money. Please contact the account owner. | 客户收款达到每日、每月收款额度上限 | | Vendor Error: 300 \| Account is no longer active. Please create a new transaction with a different recipient account number. | 客户账号过期,换个卡出款 | | Vendor Error: 300 \| Account not found. Please create a new transaction with a different recipient account number. | 换个卡出款 | | Does not support the bank | 不支持这个银行,换个卡出款 | | Bank reject please check your account | 客户账号风控,换个卡出款试试 | | Wrong account NO. or state abnormal | 账号填写错误,账号异常,换个卡出款试试 | ## 马来西亚代付 | 返回失败原因 / error\_msg | 实际原因 / 处理建议 | | :-------------------- | :---------- | | Failed / System Error | 出现此错误,请重试 | ## 菲律宾代付 | 返回失败原因 / error\_msg | 实际原因 / 处理建议 | | :------------------------------------------------------------------ | :-------------------- | | No record on file | 账号错误 | | Exceeds account amount limit | 客户达到每日/每月收款额度上限 换个卡出款 | | Not supported transaction | 不支持这个银行代付 | | No response from ISO20022 RFI respdesc of RTP Cancelled Transaction | 收款行网络波动,稍后请重新打款试试 | | Transferee Bank not Ready for InstaPay | 收款行网络波动,稍后请重新打款试试 | | No activity allowed against the account | 收款人账号风控,不允许给他打款 | | System Failure; Catch all transaction processing error code | 系统偶然性错误,请稍后重新试一下 | | No Transferee Name | 姓名不能为空 | | Invalid Account No | 账号错误 | | AmountExceedsAgreedLimit | 用户卡号被银行风控 | | IncorrectAccountNumber | 账号错误 | | NotAllowedPayment | 用户收款账号被银行风控 | | WaitingTimeExpired | 银行维护 | | BankSystemProcessingError | 收款行网络波动,稍后请重新打款试试 | | TransactionForbidden | 用户收款账号被银行风控,无法收款 | # HaiPay 常见问题与排查 Source: https://doc.haipay.net/docs/zh/guide/frequently_asked_question 汇总 HaiPay 使用过程中的高频问题、常见报错和配置排查建议,帮助商户快速自助定位问题。 本文档收录了 HaiPay 使用时遇到的各种常见问题,如果您在使用 HaiPay 的时候遇到了问题,请您优先查看本文档。 ## 通用 需要用主账号再给之前的子账号角色授权下。 可能原因: 1. 客户的产品配置不对 2. 客户请求的支付方式不对 ```json theme={null} {"status":"0","error":"4002","msg":"system:channel code does not exist"} ``` 渠道配置错误。 可能原因:触发了银行的风控机制,所以被拒绝了,可以尝试换张卡重试。 * 台湾:以 09 开头,总共包括 10 位数字。例如:09XX XXX XXX * 韩国:以 01X 开头,总共包括 10 位数字。例如:010 XXXX XXXX。 * 比利时:以 04 开头,总共包括 10 位数字。例如:04XX XX XX XX。 * 奥地利:以 06 开头,总共包括 9 位数字。例如:0664 XXXXXXX。 * 德国:以 01 开头,总共包括 11 位数字。例如:0151 XXXXXXXX。 * 波兰:以 5、6、7、8、9 开头,总共包括 9 位数字。例如:5XX XXX XXX。 * 印尼:以 08 开头,总共包括 10 位数字。例如:081X XXXX XXXX。 * 菲律宾:以 09 开头,总共包括 11 位数字。例如:09XX XXX XXXX。 * 新加坡:以 8 或者 9 开头,总共包括 8 位数字。例如:8XXX XXXX 或者 9XXX XXXX。 * 越南:以 09 开头,总共包括 10 位数字。例如:09XX XXX XXX。 * 泰国:以 08 开头,总共包括 10 位数字。例如:08XX XXX XXX。 * 马来西亚:以 01 开头,总共包括 10 位数字。例如:01X XXX XXXX。 * 巴西:以 9 开头,总共包括 11 位数字。例如:9XXXX XXXX。 * 俄罗斯:以 9 开头,总共包括 10 位数字。例如:9XX XXX XX XX。 * 日本:以 0 开头,总共包括 11 位数字。例如:0XX XXXX XXXX。 * 埃及:以01开头,总共包括 11 为数字。例如:01X XXXX XXXX。 * 墨西哥:需验证,总共包括 10 位阿拉伯数字。例如:1234567890。 * 孟加拉:以01开头,第三位为3-9,总共包括 11 为数字。例如:013 XXXX XXXX。 支付方式唤醒 APP 失败时的 WebView 拦截处理示意图 ```java theme={null} //需要做webview拦截处理 @Override public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { if (request.getUrl().toString().startsWith("http")) { view.loadUrl(request.getUrl().toString()); return super.shouldOverrideUrlLoading(view, request); } else { view.onPause(); view.stopLoading(); try { Intent intent = Intent.parseUri(uri, Intent.URI_INTENT_SCHEME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); view.getContext().startActivity(intent); } catch (URISyntaxException e) { //alert not support this scheme } return false; } } } ``` ## 台湾 你好,我们查看后,超商和ATM支付没有异常,我们看下订单,一个用户有多笔订单,所以有些用户可能不会及时去缴款。 超商跟ATM属于线下支付服务,超商跟ATM都有区间缴款时间,成功率是取决于用户去支付的笔数。 ## 巴西 游戏运营。 可能是未传CPF导致。 ## ACH / ECASHAPP 名字可以传随机的 收款账号传真实的。 ## 商户下发代付 1. 登录后台后,点击「财务管理 - 充值」,可以选择充值美元。 2. 填写充值金额,并上传转账成功的凭证。 2.1 充值前请确认您的充值金额,确保输入金额与实际转账金额一致。 2.2 支付成功后,请务必上传清晰可辨的支付成功凭证。 2.3 充值前请先在群里联系我们,核实并确认后台显示的收款账号信息,确保资金转入正确账户。充值金额到账后,我们会在您的账户中增加对应的余额。 2.4 充值时间:我们的工作人员将在收到凭证后尽快处理您的充值请求。 2.5 如遇任何充值问题或有其他疑问,请及时联系我们的客服团队进行咨询,客服在线时间为 7×24 小时。 2.1 在账户激活之前,您需要提供一个电子邮件地址,该地址将用于后台登录验证。 2.2 主账户:若要更改主账户的登录邮箱,请联系我们的运营团队寻求帮助。 商户绑定邮箱示意图 2.3 子账户:如果您正在使用子账户,可以通过前往"设置中心 - 安全 - 电子邮件"手动更新您的电子邮件地址。 3.1 在「业务管理 - 付款下发」功能下,可发起单笔付款。 注意事项: * 首次操作手工代付,建议先测试一笔小额订单,熟悉操作后再进行其余金额的手工代付。 * 币种选择:确保选择正确的币种进行代付。 * 请根据收款方账户的实际情况,选择正确的账户类型,例如银行账户或电子钱包。 重要提醒: * 请务必输入正确的收款账号,任何错误都可能导致资金打入错误账户,造成不必要的麻烦和损失。 * 输入您希望代付的确切金额,注意不要超过您账户余额或任何已设定的限额。 * 在提交代付请求前,请再次确认所有填写的信息无误。 * 请妥善保管您的登录信息和邮箱验证码,不要与他人分享,以防账号被未授权访问。 3.3 在「业务管理 - 付款下发」中点击「发起批量代付」,按以下步骤操作: 1. 下载代付模板,并根据模板要求填写收款账号等信息。 2. 首次发起批量代付时,可先填写一笔金额较小的订单,熟悉流程后再进行后续批量操作。 3. 上传模板后,如果存在填写错误,可以下载带有错误提示的文件,根据提示修改正确后重新上传。 4. 上传成功后,请关注订单状态,避免重复发起提交。 4.1 在「业务管理 - 付款下发」中,代付成功的订单在最右侧会展示「凭证」按钮。\ 点击「凭证」即可下载或查看打款成功凭证。\\ 凭证下载示意图 5.1 在「财务管理 - 资金明细」中,可以查看每笔交易的手续费、资金变动等明细记录。\ 系统支持导出 Excel 文件,方便您进行对账和留存。 # HaiPay 集成步骤指南 Source: https://doc.haipay.net/docs/zh/guide/integration_guide 按实施顺序了解 HaiPay Direct API 的接入步骤,包括支付方式展示、参数对接、回调处理与安全要求。 如果您要对接 HaiPay Direct API,核心链路包括发起下单、获取支付结果、接收异步通知,以及按接口说明完成参数和签名处理。 商户希望在自己的收银台上给用户展示支付方式并支付,HaiPay提供纯API(Direct API)的方式接入。 对于Direct API的接口,商户如果自行处理卡号信息,需要具备PCI-DSS认证资质。 ## 1. 代收流程 ```mermaid theme={null} sequenceDiagram participant C as 商户客户端 participant M as 商户服务端 participant H as HaiPay服务端 participant B as 钱包/银行 C->>C: 1. 用户选择下单,进入 checkout 页,填写支付信息 C->>M: 2.1 发起支付请求 M->>H: 2.2 调用商户API接口 H->>B: 2.3 调用上游渠道API接口 B-->>H: 2.4 返回请求结果 H-->>M: 2.5 返回请求结果 M-->>C: 2.6 返回请求结果 B-->>H: 3.1 异步通知支付结果 H-->>M: 3.2 异步通知支付结果 M->>M: 3.3 通知获取成功 H->>H: 3.4 通知获取成功 ``` ## 2. 代付流程 ```mermaid theme={null} sequenceDiagram participant M as 商户服务端 participant H as HaiPay服务端 participant B as 钱包/银行 M->>H: 1.1 发起代付请求 H->>B: 1.2 调用上游渠道API接口 B-->>H: 1.3 返回请求结果 H-->>M: 1.4 返回请求结果 B-->>H: 2.1 异步通知支付结果 H-->>M: 2.2 异步通知支付结果 M->>M: 2.3 通知获取成功 H->>H: 2.4 通知获取成功 ``` ## 3. 接口参数 详情参阅:[接口说明](/docs/zh/guide/api_description_guide) ## 4. 端到端测试 详情参阅:[端到端测试](/docs/zh/guide/end_to_end_testing) # HaiPay 接入流程指南 Source: https://doc.haipay.net/docs/zh/guide/integration_process_guide 了解 HaiPay 商户从申请、技术准备、联调测试到正式上线的完整接入流程,帮助项目推进更顺畅。 如果您要快速判断 HaiPay 接入要做什么,可以按“账号开通、资料审核、技术配置、接口联调、上线告知”这 5 个阶段推进。 HaiPay旨在提供安全便捷的海外本地化支付服务和国际信用卡支付服务,可支持的服务包括代收、代付等。 为了保证顺利接入,该文档提供了标准的HaiPay产品接入流程。 ## 1. 整体流程 ```mermaid theme={null} flowchart LR A[账号注册] --> B[账号认证] B --> C[账号审核] C --> D[技术参数配置] D --> E[API请求] E --> F[上线告知] ``` ## 2. 具体步骤 ### 2.1 **账号注册** 请提供您的商户名称(英文字母或数字)和邮箱 ,我们将根据您提供的信息为您注册账号,并将账号信息发送给您。 [//]: # "### 2.2 **账号认证**" [//]: # "使用您收到的账号信息登录我们的平台。在登录后台之后,请修改登录密码(生产环境),您需要填写完整的商户资料,包括但不限于公司名称、联系人信息、公司注册信息等。" [//]: # [//]: # "操作路径:商户信息-提交认证。注:*号为必填项" [//]: # [//]: # "" [//]: # "" [//]: # [//]: # "除资料填写外,您还需要准备入网资料包并上传至系统,入网资料包通常包括以下内容: " [//]: # [//]: # "" [//]: # [//]: # "- 公司注册文件副本(扫描件或照片)。" [//]: # "- 公司董事身份/护照证明(扫描件或照片)。" [//]: # "- 公司银行账户信息(用于结算款项)。" [//]: # "- 其他可能需要的证明文件,例如经营许可证、税务登记证等(根据您所在地区的要求)。" ### 2.2 **账号审核** 提交入网资料后,我们的审核团队将对您提供的资料进行审核。审核时间通常为24小时,具体时间视情况而定。审核通过后,将在对接群上与您同步审核结果。 ### 2.3 **技术参数配置** 审核通过后,您可以登录后台进行技术配置。您需要配置: * 商户公钥([您的公钥](/docs/zh/guide/config_settings_and_signature_rules_guide))。 * IP白名单(多个IP, 以英文逗号' , '分隔),同时请在对接群联系HaiPay技术同学,同步添加防火墙白名单。 * 代收回调地址、和代付回调地址。 配置入口:「业务管理」-「支付产品配置」 ### 2.4 **API请求** 完成技术配置后,您即可开始使用我们提供的API进行业务操作。请确保您按照API文档中的说明发送API交易请求。 如果您在入网过程中遇到任何问题或需要进一步的帮助,请随时在对接群上联系我们24小时值班运营。 ### 2.5 **上线告知** 验收通过后,请在上线前告知我司值班运营(对接群同步即可)。 测试和生产所有信息不通用。上线前告知下我司,我司为贵司提供生产环境商户号信息。 同时在上线前,请对照我司的生产 [配置清单](/guide/onboarding_checklist/) 进行检查,确认相关配置无误 # HaiPay 上线清单 Source: https://doc.haipay.net/docs/zh/guide/onboarding_checklist 核对 HaiPay 正式环境开通、服务器白名单、回调联通和生产前准备事项,减少上线遗漏风险。 ## 一、开通正式环境账号 测试环境与正式环境账号独立,appId 不通用。 ## 二、服务器 IP 白名单配置 1. 将贵公司服务器 IP 添加至业务系统白名单,并通知客服人员,将该 IP 加入防火墙允许列表,避免 API 请求失败。 2. 添加我方 IP 地址 `110.239.95.6,190.92.219.18` 至白名单,确保回调功能正常。 3. 因为我方服务器主要集中在新加坡节点, 所以当您服务器在欧洲或者美洲时,请将HTTP的 连接超时和读取超时 设置2秒以上,方式。 ## 三、正式环境测试 1. 使用真实信息进行测试,验证业务功能。 2. 确保符合代收与代付限额要求。 3. 测试订单状态和 API 集成,包括: * 参数不完整、无效、不合法。 * 重复请求行为。 * 建议邀请非开发人员参与测试。 4. 测试所有错误代码和状态,确保代码具有防御性,能够处理常见错误和所有潜在异常。 5. 配置生产环境回调地址,妥善处理实时与重复回调,确保系统具备幂等性。 6. 定期更新并保护 API 密钥,避免密钥暴露于代码库或版本控制系统中。 # 阿联酋迪拉姆代收申请 Source: https://doc.haipay.net/docs/zh/api-reference/aed/api/collectApply docs/zh/api-reference/aed/aed.openapi.json POST /aed/collect/apply

密钥私钥(生成签名)

# 阿联酋迪拉姆代收查询 Source: https://doc.haipay.net/docs/zh/api-reference/aed/api/collectQuery docs/zh/api-reference/aed/aed.openapi.json POST /aed/collect/query

密钥私钥(生成签名)

# 孟加拉塔卡代收申请 Source: https://doc.haipay.net/docs/zh/api-reference/bdt/api/collectApply docs/zh/api-reference/bdt/bdt.openapi.json POST /bdt/collect/apply

密钥私钥(生成签名)

# 孟加拉塔卡代收查询 Source: https://doc.haipay.net/docs/zh/api-reference/bdt/api/collectQuery docs/zh/api-reference/bdt/bdt.openapi.json POST /bdt/collect/query

密钥私钥(生成签名)

# 孟加拉塔卡代付申请 Source: https://doc.haipay.net/docs/zh/api-reference/bdt/api/payApply docs/zh/api-reference/bdt/bdt.openapi.json POST /bdt/pay/apply

密钥私钥(生成签名)

# 孟加拉塔卡代付查询 Source: https://doc.haipay.net/docs/zh/api-reference/bdt/api/payQuery docs/zh/api-reference/bdt/bdt.openapi.json POST /bdt/pay/query

密钥私钥(生成签名)

# 巴林第纳尔代收申请 Source: https://doc.haipay.net/docs/zh/api-reference/bhd/api/collectApply docs/zh/api-reference/bhd/bhd.openapi.json POST /bhd/collect/apply

密钥私钥(生成签名)

# 巴林第纳尔代收查询 Source: https://doc.haipay.net/docs/zh/api-reference/bhd/api/collectQuery docs/zh/api-reference/bhd/bhd.openapi.json POST /bhd/collect/query

密钥私钥(生成签名)

# 埃及镑代收申请 Source: https://doc.haipay.net/docs/zh/api-reference/egp/api/collectApply docs/zh/api-reference/egp/egp.openapi.json POST /egp/collect/apply

密钥私钥(生成签名)

# 埃及镑代收查询 Source: https://doc.haipay.net/docs/zh/api-reference/egp/api/collectQuery docs/zh/api-reference/egp/egp.openapi.json POST /egp/collect/query

密钥私钥(生成签名)

# 埃及镑代付申请 Source: https://doc.haipay.net/docs/zh/api-reference/egp/api/payApply docs/zh/api-reference/egp/egp.openapi.json POST /egp/pay/apply

密钥私钥(生成签名)

# 埃及镑代付查询 Source: https://doc.haipay.net/docs/zh/api-reference/egp/api/payQuery docs/zh/api-reference/egp/egp.openapi.json POST /egp/pay/query

密钥私钥(生成签名)

# 印度卢比代收申请 Source: https://doc.haipay.net/docs/zh/api-reference/inr/api/collectApply docs/zh/api-reference/inr/inr.openapi.json POST /inr/collect/apply

密钥私钥(生成签名)

# 印度卢比代收查询 Source: https://doc.haipay.net/docs/zh/api-reference/inr/api/collectQuery docs/zh/api-reference/inr/inr.openapi.json POST /inr/collect/query

密钥私钥(生成签名)

# 印度卢比代付申请 Source: https://doc.haipay.net/docs/zh/api-reference/inr/api/payApply docs/zh/api-reference/inr/inr.openapi.json POST /inr/pay/apply

密钥私钥(生成签名)

# 印度卢比代付查询 Source: https://doc.haipay.net/docs/zh/api-reference/inr/api/payQuery docs/zh/api-reference/inr/inr.openapi.json POST /inr/pay/query

密钥私钥(生成签名)

# 科威特第纳尔代收申请 Source: https://doc.haipay.net/docs/zh/api-reference/kwd/api/collectApply docs/zh/api-reference/kwd/kwd.openapi.json POST /kwd/collect/apply

密钥私钥(生成签名)

# 科威特第纳尔代收查询 Source: https://doc.haipay.net/docs/zh/api-reference/kwd/api/collectQuery docs/zh/api-reference/kwd/kwd.openapi.json POST /kwd/collect/query

密钥私钥(生成签名)

# 马来西亚林吉特代收申请 Source: https://doc.haipay.net/docs/zh/api-reference/myr/api/collectApply docs/zh/api-reference/myr/myr.openapi.json POST /myr/collect/apply

密钥私钥(生成签名)

# 马来西亚林吉特代收查询 Source: https://doc.haipay.net/docs/zh/api-reference/myr/api/collectQuery docs/zh/api-reference/myr/myr.openapi.json POST /myr/collect/query

密钥私钥(生成签名)

# 马来西亚林吉特代付申请 Source: https://doc.haipay.net/docs/zh/api-reference/myr/api/payApply docs/zh/api-reference/myr/myr.openapi.json POST /myr/pay/apply

密钥私钥(生成签名)

# 马来西亚林吉特代付查询 Source: https://doc.haipay.net/docs/zh/api-reference/myr/api/payQuery docs/zh/api-reference/myr/myr.openapi.json POST /myr/pay/query

密钥私钥(生成签名)

# 尼日利亚奈拉代付申请 Source: https://doc.haipay.net/docs/zh/api-reference/ngn/api/payApply docs/zh/api-reference/ngn/ngn.openapi.json POST /ngn/pay/apply

密钥私钥(生成签名)

# 尼日利亚奈拉代付查询 Source: https://doc.haipay.net/docs/zh/api-reference/ngn/api/payQuery docs/zh/api-reference/ngn/ngn.openapi.json POST /ngn/pay/query

密钥私钥(生成签名)

# 阿曼里亚尔代收申请 Source: https://doc.haipay.net/docs/zh/api-reference/omr/api/collectApply docs/zh/api-reference/omr/omr.openapi.json POST /omr/collect/apply

密钥私钥(生成签名)

# 阿曼里亚尔代收查询 Source: https://doc.haipay.net/docs/zh/api-reference/omr/api/collectQuery docs/zh/api-reference/omr/omr.openapi.json POST /omr/collect/query

密钥私钥(生成签名)

# 巴基斯坦卢比代收申请 Source: https://doc.haipay.net/docs/zh/api-reference/pkr/api/collectApply docs/zh/api-reference/pkr/pkr.openapi.json POST /pkr/collect/apply

密钥私钥(生成签名)

# 巴基斯坦卢比代收查询 Source: https://doc.haipay.net/docs/zh/api-reference/pkr/api/collectQuery docs/zh/api-reference/pkr/pkr.openapi.json POST /pkr/collect/query

密钥私钥(生成签名)

# 巴基斯坦卢比代付申请 Source: https://doc.haipay.net/docs/zh/api-reference/pkr/api/payApply docs/zh/api-reference/pkr/pkr.openapi.json POST /pkr/pay/apply

密钥私钥(生成签名)

# 巴基斯坦卢比代付查询 Source: https://doc.haipay.net/docs/zh/api-reference/pkr/api/payQuery docs/zh/api-reference/pkr/pkr.openapi.json POST /pkr/pay/query

密钥私钥(生成签名)

# 卡塔尔里亚尔代收申请 Source: https://doc.haipay.net/docs/zh/api-reference/qar/api/collectApply docs/zh/api-reference/qar/qar.openapi.json POST /qar/collect/apply

密钥私钥(生成签名)

# 卡塔尔里亚尔代收查询 Source: https://doc.haipay.net/docs/zh/api-reference/qar/api/collectQuery docs/zh/api-reference/qar/qar.openapi.json POST /qar/collect/query

密钥私钥(生成签名)

# 沙特里亚尔代收申请 Source: https://doc.haipay.net/docs/zh/api-reference/sar/api/collectApply docs/zh/api-reference/sar/sar.openapi.json POST /sar/collect/apply

密钥私钥(生成签名)

# 沙特里亚尔代收查询 Source: https://doc.haipay.net/docs/zh/api-reference/sar/api/collectQuery docs/zh/api-reference/sar/sar.openapi.json POST /sar/collect/query

密钥私钥(生成签名)

# 更新日志 Source: https://doc.haipay.net/docs/zh/changelog/changelog 产品更新和公告 新增 HaiPay AI Skills 文档,为商户提供 AI 驱动的集成加速方案。 最近更新: * 新增 AI Skills 助力 HaiPay 集成文档(中英文双语),介绍如何通过 Skills 让 AI 代理遵循最佳实践完成支付对接 * 支持通过 npx 一键安装 HaiPay Skills 到项目中 * 介绍 AI 辅助开发平台在 HaiPay 集成中的应用 * 提供 HaiPay Skills 官方目录访问地址 更新了马来西亚API对接文档。 最近更新: * 增加一些代付支持的钱包 更新了退款API对接文档。 最近更新: * 退款支持指定退款金额,即部分退款。 调整了USD的代付方式配置。 最近更新: * 新增 USD 代付方式 ECASHAPP,支付类型为 EWALLET; * 更新尼日利亚代付银行账号示例。 更新了尼日利亚 API 对接文档。 最近更新: * 修订银行名称映射; * 清理失效银行编码; * 补充新增银行数据。 扩展非洲与新加坡的 API 支持。 最近更新: * 新增尼日利亚 API 文档并开通代付服务; * 新加坡代收支付方式由电子钱包调整为 QR。 新增 HaiPay MCP 工具集成文档,提升商户支付对接效率。 最近更新: * MCP 工具与插件连接文档; * MCP 使用场景示例(快速接入支付、查询 API 参数、排查问题等); * 支持 AI 助手实时获取 API 文档、签名规则、错误码说明和最佳实践; * 降低商户对接门槛,提升集成效率。 本次围绕 API 导览体验和页面辅助能力做了组合更新,同时合并整理了主分支同步内容,重点提升文档入口清晰度、AI 辅助能力和支付资料可读性。 最近更新: * 为 API 文档新增中英文简介页,并接入 `/docs/zh/api-reference/overview` 与英文对应路径,帮助开发者先理解能力范围、阅读路径和核心接口分组 * 重构中英文“支付接口文档列表”页面,改为卡片式导航入口,支持按产品能力和地区快速浏览,不再只是简单链接堆叠 * 扩展 contextual AI 入口,新增 Kimi 和 GLM 的试验性入口,修复通义千问打开时的多余前缀文案,并调整国内 AI 入口的展示顺序 * 补充历史指南路径重定向,并新增 `.mintignore`,减少旧链接失效和构建干扰 * 调整 RSA 密钥生成说明,移除 HaiPay 托管生成地址,改为更通用的在线生成指引 * 将欧洲支付方式页和中英文银行代码列表由嵌入式 HTML 表格整理为 Markdown 表格,提升维护性与阅读体验 本次继续完善 HaiPay 中英文商户文档体验,重点提升接入入口清晰度和 API 查找效率。 最近更新: * 围绕商户接入旅程重构首页与指南入口,明确接入流程、配置签名、测试验收和上线准备等关键路径 * 更新站点元信息、重定向、搜索提示和页面描述,增强 SEO 覆盖与文档可发现性 * 清理接口文档列表和页面跳转链接,修复双斜杠路径等历史链接问题 * 为大批量 API 参考页补充相关接口推荐,提升联调过程中跨页面查找与跳转效率 圆满完成 HaiPay 文档从 VuePress 到 Mintlify 的整体迁移,这是全新文档版本的起点。 最近更新: * 完成中英文双语文档结构整理与切换 * 重构导航层级,按用户使用路径组织内容入口 * 将商户指南首页升级为导航卡片,提升查找效率 * 清理历史无关示例内容,统一更新日志写法