中东支付网关沙箱测试指南
主要支付网关概述
中东地区主要的支付网关包括:
- PayFort – 隶属于亚马逊,在中东广泛使用
- Telr – 覆盖阿联酋、沙特等国家
- Checkout.com – 国际支付提供商,支持中东地区
- Moyasar – 沙特本土支付解决方案
- PayTabs – 专注于阿拉伯市场的支付服务商
PayFort沙箱测试流程
1. Sandbox账户注册
- 访问PayFort开发者门户
- 创建商家账户并申请Sandbox环境权限
API端点:
测试环境URL: https://sbpaymentservices.payfort.com/FortAPI/
HTTP头信息示例:
Content-Type: application/json;charset=UTF-8
Authorization: Bearer {your_sandbox_token}
Telr沙箱设置指南
Sandbox激活步骤:
- 注册Telr商户账户
- "Development"选项中选择"Enable Test Mode"
API参数示例:
{
"ivp_method": "create",
"ivp_store": "{store_id}",
"ivp_authkey": "{sandbox_auth_key}",
"ivp_cart": "[{name:'Test', price:'100', qty:'1'}]"
}
Checkout.com中东测试环境配置
API Base URL: https://api.sandbox.checkout.com/
需要特别注意的字段:
currency: SAR(沙特里亚尔)或AED(阿联酋迪拉姆)payment_type: ‘mada'(适用于沙特本地卡)
Moyasar沙箱使用说明
Moyasar专门为沙特市场设计,支持SAR货币和mada卡网络。
测试信用卡号:
4111111111111111 (Visa模拟卡)
授权码始终使用:
sk_test_XXXXXXXXXXXXXXXX
PayTabs开发模式配置要点
在请求头中设置:
Authorization: S6JN9NWBW9-JBD9GRNRH2-DHDKMRDGBT
x-api-key: {your_sandbox_api_key}
建议在首次集成时先使用他们的Postman集合进行快速验证。
如需更详细的特定平台技术文档或遇到任何集成问题,请告知具体需求。
中东支付网关沙箱测试指南(续)
高级测试场景与常见问题解决方案
1. 本地化支付方式模拟测试
沙特特有支付方式:
- Mada卡测试:
- 使用测试卡号:
4464040000000003 - CVV:任意3位数字
- Expiry:未来日期
- 使用测试卡号:
阿联酋特有支付方式:
- KNET网关模拟:
在PayFort/Telr沙箱中使用特殊商户参数触发KNET流程:"payment_option": "knet",
"sadad_merchant_id": "TEST_MERCHANT"
API响应代码特别处理(中东地区)
| HTTP状态码 | PayFort含义 | Telr处理建议 |
|---|---|---|
40014 |
VAT计算错误 | — |
50058 |
SADAD服务不可用 | — |
60033 |
— | mada卡BIN验证失败 |
Webhook配置要点
所有主要网关都需要双重验证:
# PayFort签名验证示例
echo -n "{notification_params}&{your_sandbox_signature}" \
| sha256sum
推荐测试工具:
- Webhook.site -实时捕获回调
- Ngrok隧道 -用于本地环境测试
PCI DSS合规性沙箱特例
即使在使用Sandbox时仍需注意:
-
信用卡数据替代方案:
// PayTabs token化示例(沙箱)
const token = await paytabs.createToken({
card_number: '4111111111111111',
expiry_month: '12',
expiry_year: '2025'
});
-
日志记录限制:
各平台对沙箱环境的日志保留期通常为7天(生产环境为30天)
Apple Pay/Google Pay特殊配置
中东地区需要额外参数:
<!-- AndroidManifest.xml for Telr -->
<meta-data
android:name="com.google.android.gms.wallet.api.enabled"
android:value="true" />
沙特区Apple Pay需设置:
{
"merchantCapabilities": ["supports3DS"],
"countryCode": "SA"
}
SIM卡运营商扣款模拟
适用于埃及、沙特等市场的直接运营商计费:
// Moyasar STC Pay测试流程
curl https://api.moyasar.com/v1/payments \
-H "Authorization: Basic $(echo sk_test_KEY: | base64)" \
-d amount=1000 \
-d source[type]=stcpay \
-d source[mobile]=966555555555
会返回模拟OTP码:"123456"
如需了解特定国家的监管要求差异或需要具体语言的SDK集成示例,请说明您关注的细节。
中东支付网关沙箱测试深度指南(三)
跨境交易与货币处理
多币种沙箱测试技巧
-
PayFort多币种模拟:
- 使用特定测试金额触发不同响应:
100.00 AED → 成功
200.00 SAR → 人工审核状态
555.00 USD → 失败(货币不支持)
- 使用特定测试金额触发不同响应:
-
汇率模拟参数:
// Checkout.com动态汇率示例
{
"amount": {"value":1000,"currency":"USD"},
"processing_currency":"SAR",
"fx_rate":3.75
}
GCC国家特殊规则沙箱标记
在请求头中添加:
X-Regional-Settings: country=SA, lang=ar #沙特阿拉伯示例
各平台支持的GCC国家代码:
| Gateway | SA | AE | QA | KW | OM |
|---|---|---|---|---|---|
| PayFort | ✓ | ✓ | ✓* (需特别激活) | ||
| Telr | ✓* (仅限AED/SAR) |
(*需要联系客户经理开通)
VISA/MASTERCARD地区限制解决方案
BIN号控制列表(沙箱专用)
# Python识别沙特本地卡BIN范围(沙箱)
def is_saudi_card(card_number):
saudi_bins = [
'446404', #mada测试卡段
'457448' #PayFort虚拟卡段
]
return any(card_number.startswith(bin) for bin in saudi_bins)
AML/KYC验证的特殊场景
PayTabs身份验证模拟:
- 沙特ID验证:
输入10位数字以1开头的任意号码:
如:1999999999 → KYC通过
如:2888888888 → KYC拒绝模式触发
- 阿联酋IBAN校验规则:
有效格式:AE070331234567890123456
↑↑
固定前两位字母+23位数字
Recurring Payment订阅测试
Moyasar周期支付配置示例:
// Node.js创建订阅计划(沙箱)
const subscription = await moyasar.subscriptions.create({
amount: '5000',
currency: 'SAR',
interval: 'monthly',
trial_period_days:7, //仅用于sandbox的试用期设置
callback_url:'https://your-sandbox-webhook'
});
会返回带test_前缀的subscription ID
如需继续深入以下方向,请告知具体需求:
- Apple/Google Pay在中东设备上的特殊调试方法
- VAT计算错误的详细排查流程
- SWIFT跨境转账的Sandbox仿真方案