中东支付沙箱环境与测试流程解析

中东支付沙箱环境与测试流程解析

一、中东支付市场特点

  1. 区域特性

    • 信用卡普及率较低,现金交易仍占较大比例
    • Mada卡(沙特)、Fawry(埃及)等本地支付方式主导
    • 伊斯兰金融合规要求(Sharia-compliant)
  2. 主要国家差异

    • 沙特:Mada卡+Apple Pay/Samsung Pay
    • UAE:Visa/Mastercard相对普及
    • 埃及:现金预付券(Fawry)为主流

二、主流沙箱环境概览

PayPal中东沙箱

  • 支持币种:AED, SAR, EGP等地区货币
  • 特殊功能
    • Arab-specific错误代码模拟(如"IBAN验证失败")

Checkout.com中东测试环境

  • 特色服务
      // Mada卡测试号示例 
    4406470000000097 (3DS v1)
    5456030000006165 (3DS v2)

Telr沙箱系统(UAE重点)

  • 独特设置
curl https://uat.telr.com/gateway/order.json \
-H "Content-Type: application/json" \
-d '{
"ivp_method": "create",
"ivp_store": YOUR_STORE_ID,
"ivp_authkey": YOUR_AUTH_KEY,
"ivp_cartid": UNIQUE_ORDER_ID,
"ivp_amount": AMOUNT_IN_AED_SAR_EGP,
}'

三、核心测试流程框架

  1. 基础配置阶段
[网关选择] → [货币设置(AED/SAR/EGP)] → [语言包加载]

[合规检查] ← [回调URL配置]

  1. 关键测试场景矩阵
Test Case Saudi(MADA) UAE(VISA) Egypt(Fawry)
成功交易 SAMPLE_MADA_CARD VISA_TEST_411111 FAWRY_VOUCHER_CODE
3DS失败 BLOCKED_BIN_MADA VISA_3DS_DECLINE_CODE6 N/A
金额限制触发 SAR_MIN=10规则校验 AED_MAX=50000规则校验 EGP_ROUNDING_ERROR

  1. 特殊验证要点
def test_middle_east_specific():

assert payment_page.has_hijri_date_option() #伊斯兰历显示

assert receipt.contains_vat_number_field() #海湾国家增值税要求

if egypt_transaction:
assert has_fawry_reference_id()

  1. 四、常见问题排查指南

🔴 Error Code: MIDEAST-004
👉可能原因:未配置阿拉伯语错误消息资源文件

🟡 Warning ME-TAX-002
✅解决方案:确认发票包含5% VAT字段(GCC国家要求)

⚫️ Blackbox Issue
📌调试步骤:检查是否误用Gregorian日期而非Hijri日期

需要更详细的某个环节说明吗?例如特定国家的认证流程或某支付网关的深度集成细节?

# 中东支付沙箱测试深度解析(续)

四、国家/地区专项测试要点

沙特阿拉伯(MADA体系)
核心测试工具包:
“`xml









“`

必测项目清单:
1. SAMA认证的加密标准验证
2. 沙特本地化要求:
– 🇸🇦 必须显示阿拉伯语收据
– ⏰ 时区强制设置为GMT+3 (Riyadh Time)
– 📄 VAT发票编号格式校验(15位数字)

UAE(Visa/MasterCard主导)
Dubai金融科技沙箱特殊规则:
“`javascript
// Noon Pay模拟器API调用示例
const noonSandbox = require(‘noon-pay-sandbox’);
noonSandbox.configure({
merchantCode: ‘TESTAE’, // AE代表阿联酋
currencyLock: ‘AED’,
mandatoryFields: [‘TAX_INVOICE_NUMBER’, ‘PO_BOX’] // UAE特有字段
});
“`

关键差异点测试矩阵:

| Feature | UAE规范要求 | 标准国际方案 |
|———|————|————-|
|地址字段 | PO Box必填 | Street Address优先 |
|退款时效 | ≤5工作日 | ≤7工作日 |
|货币精度 | AED小数点后固定2位 | 动态小数位支持 |

Egypt(现金支付场景)
“`
FAWRY沙箱响应样本:

STATUS_CODES:
0000 – Successful payment (需验证16位reference码)
1400 – Pending (等待用户完成现金支付)
9002 – Invalid voucher code (测试用无效码:9999888877776666)

curl示例:
curl “https://sandbox.fawrypay.com/payments/status?merchantCode=TEST&paymentRefNumber=SANDBOX_REF_001”
“`

五、伊斯兰金融合规专项

Sharia-compliant交易检测流程
“`mermaid
graph TD;
A[交易发起] –> B{金额分析};
B –> C[含Riba(利息)成分?];
C –>|Yes| D[自动拦截并触发SHARIA_101错误];
C –>|No| E{合同条款审查};
E –> F[包含不确定性(Gharar)?];
F –>|Yes| G[标记为NON_HALAL交易];
F –>|No或已认证H.Halal合约模板} H[正常处理];

classDef sharia fill:#f9f,stroke:#333;
class D,G sharia;
“`

Halal支付接口设计建议
“`java
public interface HalalPaymentGateway {

@HalalCertified(provider = “AAOIFI”) //伊斯兰会计审计组织认证标识
void processPayment(PaymentRequest request) throws NonHalalTransactionException;

@FieldValidation(rule = “noCompoundInterest”)
boolean validateProfitRate(double rate);

default String getShariaComplianceCertificate() {
return “This gateway complies with Islamic Finance Standard APS-2023”;}
}
“`

六、实战调试技巧

🔧 跨网关问题诊断工具链
“`
1. Postman集合 + Alipay Middle East Sandbox插件
2. Wireshark过滤器设置:portrange(5000-5100) && http.contains(“AED”)
3. JMeter压力测试模板配置阿拉伯语字符集编码
4. Burp Suite中东专用CA证书包
“`

📌 典型故障模式库
“`
案例ME-2023-047:
现象:UAE交易成功但沙特失败
根因:未处理Mada卡的BIN号段588845-588848
修复方案:更新卡bin数据库至v4.22+

案例ME-2024-012:
现象:埃及返回模糊的「付款处理中」状态
诊断工具使用顺序:
a) Fawry状态API直接查询 → b) Check商户回调日志 → c) Traceroute到开罗数据中心节点Nile01
最终发现是EGP货币转换时的四舍五入差异导致

是否需要我展开某个具体国家的认证申请流程?或是提供完整的端到端沙箱部署checklist?