跳到主要内容

API 概览

欢迎使用 EFundFlow API!本手册将帮助你快速开始接入我们的支付服务。

快速开始

1. 获取 API 密钥

首先,你需要在 EFundFlow 控制台获取 API 密钥:

  • 测试环境密钥:用于开发和测试,以 sk_test_ 开头
  • 生产环境密钥:用于正式环境,以 sk_live_ 开头

2. 设置请求头

所有 API 请求必须包含以下请求头:

Authorization: Bearer YOUR_SECRET_KEY
x-merchant-account-id: YOUR_ACCOUNT_ID
Content-Type: application/json

3. 基础 URL

  • 测试环境https://sandbox.efundpay.com/v4
  • 生产环境https://api.efundpay.com/v4

4. 沙箱演示凭据

公开沙箱演示凭据(Public sandbox demo credentials)

以下凭据会公开展示在文档站中,仅可用于沙箱测试。不要在这里配置生产密钥、真实商户私钥或客户数据。

API 直接接入

API Keysk_test_your_direct_key
X-MERCHANT-ACCOUNT-IDacct_your_direct_account_id
JWT header kidkid_your_direct_key_id
RSA private key
your_direct_rsa_private_key

收银台接入

API Keysk_test_your_checkout_key
X-MERCHANT-ACCOUNT-IDacct_your_checkout_account_id
JWT header kidkid_your_checkout_key_id
RSA private key
your_checkout_rsa_private_key

Webhook RSA 公钥

your_webhook_public_rsa_key

核心概念

交易流程

  1. 创建交易:使用 POST /transactions 创建新的支付交易
  2. 处理支付:客户在支付页面完成支付
  3. 接收 Webhook:我们会将支付状态通过 Webhook 推送到你的服务器
  4. 查询状态:你可以随时查询交易状态

金额处理

  • 所有金额均以为单位(如 100 分 = 1 元)
  • 支持币种:CNY(人民币)、USD(美元)、EUR(欧元)等

幂等性

为防止重复处理,建议在请求中添加 Idempotency-Key 请求头:

Idempotency-Key: unique-request-id-12345

示例代码

创建支付交易

curl -X POST https://sandbox.efundpay.com/v4/transactions \
-H "Authorization: Bearer sk_test_..." \
-H "x-merchant-account-id: <x-merchant-account-id>" \
-H "Content-Type: application/json" \
-d '{
"amount": 10000,
"currency": "CNY",
"description": "商品购买",
"customer": {
"email": "customer@example.com",
"name": "张三"
},
"return_url": "https://yoursite.com/success",
"cancel_url": "https://yoursite.com/cancel"
}'

查询交易状态

curl -X GET https://api.efundpay.com/v4/transactions/txn_123456 \
-H "Authorization: Bearer sk_test_..."
-H "x-merchant-account-id: <x-merchant-account-id>"

Webhook 处理

// Express.js 示例
app.post('/webhook/efundpay', (req, res) => {
const event = req.body;

switch (event.type) {
case 'transaction.completed':
// 处理支付成功
console.log('支付成功:', event.data.transaction);
break;
case 'transaction.failed':
// 处理支付失败
console.log('支付失败:', event.data.transaction);
break;
}

res.json({ received: true });
});

安全最佳实践

API 密钥安全

  • ✅ 将 API 密钥存储在环境变量中
  • ✅ 定期轮换 API 密钥
  • ❌ 不要在前端代码中暴露密钥
  • ❌ 不要将密钥提交到版本控制系统

Webhook 校验

每个 Webhook 请求都包含签名用于验证请求来源:

const crypto = require('crypto');

function verifyWebhookSignature(payload, signature, secret) {
const expectedSignature = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');

return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expectedSignature)
);
}

支持的支付方式

支付方式支持地区处理时间
Visa/MasterCard全球实时
PromptPay泰国实时
TrueMoney 电子钱包泰国实时
Rabbit LINE Pay泰国实时
ShopeePay 泰国电子钱包泰国实时
KPlus 手机银行泰国实时
SCB EASY 手机银行泰国实时
Krungsri 手机银行泰国实时
KTB 手机银行泰国实时
Paotang 手机银行泰国实时
Pix巴西实时
微信支付中国实时
支付宝中国实时

多语言 SDK

我们为多种编程语言提供 SDK,方便你快速集成:

技术支持

如在集成过程中遇到问题,请联系我们:


准备好开始了吗?请访问 认证 页面,了解如何配置你的第一个 API 请求。

Powered by Docusaurus