computer-smartphone-mobile-apple-ipad-technology

中东支付通道沙箱测试流程

中东支付通道沙箱测试流程

1. 准备工作

  • 注册沙箱账户:在目标支付平台(如PayTabs、Telr、Checkout.com等)官网申请开发者/商户沙箱账户
  • 获取API凭证:获得沙箱环境的API密钥、商户ID等认证信息
  • 配置环境
    • 确保网络可以访问中东地区IP(部分平台有区域限制)
    • 安装必要的SDK或库文件

2. API集成测试

a. 基础功能测试

  1. 支付请求

    • POST /payment
    • Headers: Authorization, Content-Type: application/json
    • Body: {amount, currency(AED/SAR), order_id, customer_info}
  2. 回调验证

    • Webhook URL配置验证(需公网可访问URL)
    • IP白名单设置(部分平台要求)
  3. 查询接口

    • GET /payment/{transaction_id}
    • Verify response structure and status mapping

b. Middle East特定功能测试

  1. Mada卡bin范围验证(Saudi专用借记卡网络)
  2. Apple Pay/Google Pay本地化集成检查(Arabic界面支持)
  3. Installment分期付款流程模拟

c. Edge Case场景覆盖(重点)

Scenario Test Data Expected Result
Amount<minimum AED5 Error: MIN_AMOUNT
Unsupported currency CNY Error: CURRENCY_NOT_SUPPORTED
Expired card Past expiry date Decline with code "54"

d.Postman自动化脚本示例(关键部分)

{
"description": "MADA Card Success Payment",
"request": {
"method": "POST",
"header": [
{"key":"Authorization","value":"Bearer SANDBOX_XXXXXX"},
{"key":"Content-Type","value":"application/json"}
],
"body": {
"mode":"raw",
"raw":"{\"card_number\":\"4464040000000000\",\"expiry\":\"12/25\",...}"
}
},
"_test_script": [
pm.test("Status code is 200", function() {...}),
pm.test("Response contains mada_indicator", function() {...})
]
}

需要特别注意的合规要求:
1️⃣ STCPay强制PCI DSS Level1认证(沙特)
2️⃣ UAE需通过NOC从中央银行获取

中东支付通道沙箱测试流程(续)

3. 合规性专项验证

a. 沙特SAMA规范检查清单

  • 字段加密:持卡人姓名必须RSA加密(最小2048位)
  • 日志脱敏:CVV需显示为<redacted>格式
  • 错误代码映射
    # SAMA标准错误码示例
    ERROR_MAPPING = {
    '10057': 'STC_PAY_TIMEOUT',
    '20033': 'MADA_INSUFFICIENT_FUNDS'
    }

b. UAE中央银行要求

  1. AML检查模拟

    • AED100,000+交易自动触发EDD流程
    • 测试账号后缀加_AML可强制触发风控(如[email protected]
  2. 本地清算周期验证
    工作日14:00前交易→T+1结算
    周五/假日交易→下一个银行工作日结算

4. 本地支付方式专项测试

a. Mada卡全场景覆盖(沙特)

graph TD;
A[Start] --> B{Card Type};
B -->|MADA| C[Check BIN范围588845-588848];
B -->|Non-MADA| D[正常处理];
C --> E[添加mada_indicator=Y];

b. STC Pay特殊处理(沙特电信钱包)

  1. QR码生成验证:
    # STC沙箱专用QR参数格式示例 
    stcpay://payment?amount=100&currency=SAR&merchantId=SBX9876&timestamp=20240620T154530Z&hmac=SHA256(...)

2.分期付款测试矩阵
分期数 | APR | Minimum Amount(SAR)
——-|—–|——————
3 |0% |500
6 |2% |2000

5.性能与稳定性测试

a.斋月流量模拟

// JMeter脚本片段 - simulate Eid购物高峰  
ThreadGroup.schedule = {
start_time: "18:00", // Iftar后时段
ramp_up: "30min",
loop_count: Infinity,
spawn_rate: "+50用户/分钟"
}

b.网络延迟基准(对比Dubai vs Riyadh节点)

Location | Avg Latency(ms) | Packet Loss(%)
------------------|---------------:|--------------:
AWS巴林 | 89 │ 0.02
阿里云迪拜 │ 112 │ 0.15

6.最终验收清单

✅所有errorCode完成阿拉伯语/英语双语映射
✅VAT计算符合GCC统一5%税率规则(金额×1。05)
✅已通过PCI SAQ A—EP自评估问卷

中东支付通道沙箱测试流程(最终部分)

7. 本地化深度验证

a. RTL(从右到左)界面测试

  • UI元素镜像检查
    /* Arabic样式强制RTL布局 */
    body[lang="ar"] {
    direction: rtl;
    text-align: right;
    left-padding: →自动转为right-padding
    }

  • 日期格式兼容性
    伊斯兰历(Hijri)与公历转换需同时显示,如:
    1445/10/15 ↔ 2024/05/25 (使用moment-hijri库)

b. IBAN校验规则

// UAE特有IBAN验证逻辑
function validateUAEIban(iban) {
const pattern = /^AE\d{2}[A-Z]{4}\d{3}[\dA-Z]{16}$/;
// AE + check digits + bank code + account number

8.宗教合规专项

a.斋月模式开关

// API请求头增加宗教标识(沙特必需)
{
"X-Ramadan-Mode": "true", //启用以下特殊规则:
"allow_night_refunds": true, //允许23:00-3:00退款处理
"disable_sound_effects": true //禁止支付成功音效
}

b.禁忌商品拦截
| Category | Block Code | Example Trigger Keywords |
|———-|————|————————–|
| Alcohol | HARAM_01 | ["wine", "whisky"…] |
| Pork | HARAM_02 | ["bacon", "ham"…] |

9.生产环境预检清单

  1. 证书切换验证

    • SSL证书从中东CA机构获取(如Saudi NCA)
    • SHA-256指纹与沙箱不同需重新备案
  2. 清算对账测试
    模拟生成ZAKAT(天课)扣除报表:

    总金额:SAR100,000 → Zakat(2.5%):SAR2,500 → Net:SAR97,500   

3.终极压力测试场景

# Locust负载脚本片段 - Hajj朝觐期间峰值模拟 
@task(weight=3)
def stc_pay_flood(self):
for _ in range(random.randint(50,70)): #模仿麦加商户并发量
self.client.post("/pay", json={
"amount": random.choice([100,200]),
"geo_hash": "<21°25'N39°49'E>" #圣城坐标触发特殊路由
})

10.上线后监控要点

⚠️ 重点指标报警阈值设置建议

Metric Warning Threshold Critical Threshold
Mada失败率 >15% >25%
分期付款转化率(Saudi) <18%
Categories: