为移动App对接孟加拉支付渠道需要综合考虑当地支付习惯、监管要求和主流技术方案。以下是分步骤的专业指南:
一、市场调研阶段
- 主流支付方式分析:
- bKash(占移动钱包市场75%份额)
- Nagad(政府背景,增速最快)
- Rocket (Dutch-Bangla Bank)
- Upay(电信运营商合资)
- 银行卡:Visa/Mastercard普及率约18%
- 银行直连:IBBL, City Bank等提供API
- 监管要求:
• Bangladesh Bank要求所有支付处理商持有PSP许可证
• 外汇交易需通过授权经销商(AD)进行
• 必须遵守《外汇管制法》和《数字安全法》
二、技术对接方案选择
-
直接集成方案:
✔️ bKash商户API(文档获取需企业注册)
✔️ Nagad Checkout API
✔️ SSLCommerz聚合网关(支持15+本地渠道) -
间接集成方案:
• PayWell等跨境收单服务商
• Airwallex等虚拟账户方案
三、具体实施流程
- KYC准备材料清单:
- Trade License副本
- TIN证书
四、具体实施流程(续)
1. KYC 材料准备(企业级商户)
在孟加拉国接入支付通道,通常需要向支付服务商或银行提交以下文件:
- 公司注册文件:Trade License(贸易许可证)、RJSC 注册证书
- 税务文件:TIN (Tax Identification Number) 证书、VAT 登记证(如适用)
- 银行账户证明:本地银行账户信息(部分网关要求必须是孟加拉国企业账户)
- 董事/股东资料:护照/国民ID复印件、照片、地址证明
- 业务说明文档:
- 网站/App介绍
- 交易类型说明(电商、订阅等)
- AML合规声明
📌 注意: bKash/Nagad等钱包可能额外要求与本地代理商合作,而非直接开放API给外国公司。
2. API对接技术细节
不同支付方式的技术实现有所不同:
(1) bKash API集成
bKash提供两种主要模式:
✅ Checkout模式: (适合中小商户)
// Example JS SDK调用
bKash.init({
paymentMode: 'checkout',
paymentRequest: {
amount: '1000',
intent: 'sale'
},
});
✅ Merchant Wallet模式: (需单独申请高权限账号)
🔹 关键接口:
/token/grant
– OAuth2认证获取访问令牌/create/payment
–发起交易请求/execute/payment
–确认扣款
⚠️ 沙盒测试:developer.bkash.com提供模拟环境。
(2) Nagad Quick Checkout
Nagad的流程更偏向跳转式支付:
- App端调用
createPayment
API生成交易ID。 - Redirect用户至Nagad H5页面完成付款。
- Nagad回调你的服务器通知结果。
// Android示例 (Retrofit)
@POST("/api/create-payment")
Call<PaymentResponse> createPayment(
@Body PaymentRequest request //包含amount,orderId,redirectURL等参数
);
(3) SSLCommerz聚合网关
如果不想逐个对接,可使用聚合方案:
📌支持渠道包括:
• bKash • Nagad • Rocket • Upay • Visa/Mastercard
典型REST调用流程:
import requests
payload = {
"store_id": "your_ssl_store_id",
"tran_id": "UNIQUE_ORDER_ID",
"total_amount": "1200",
"success_url": "https://yourapp.com/success", #必须HTTPS!
}
response = requests.post("https://sandbox.sslcommerz.com/gwprocess/v4/api.php", data=payload)
五、关键注意事项
🔹货币与结算限制
• Debit/Card交易以BDT(塔卡)结算,外汇兑换需央行审批。
• Payout周期通常T+3~7天到账本地银行。
🔹失败率优化建议
✔️ SMS OTP兼容性——部分运营商过滤短信号码
✔️ Fallback策略——当bKash失败时自动切换至Upay
🔹合规要点
❗禁止接入赌博/加密货币类业务
❗所有交易日志需保留至少5年供审计
✅推荐架构设计图
[Your Mobile App] → [Backend API] → [Deploy Local Proxy in BD?]
↘→ [Payment Gateway]
├─ bkash-api.dhaka-bank.com
├─ nagad-merchant-gateway
└─ sslcommerz-lb
如需进一步讨论具体代码实现或推荐当地PSP合作伙伴,可继续深入探讨!
六、深入技术实现与优化策略
1. 本地化支付体验优化
孟加拉用户对支付流程有特殊偏好,需针对性设计:
✅ 语言适配
– 支付界面必须支持孟加拉语(বাংলা),可动态切换(如bKash/Nagad的SDK已内置)
– 错误消息本地化(示例):
“`json
{
“error_code”: “BKASH_OTP_TIMEOUT”,
“message_en”: “OTP expired, please retry”,
“message_bn”: “ওটিপি সময় শেষ হয়েছে, আবার চেষ্টা করুন”
}
“`
✅ 流量节省模式
– Nagad/bKash等APP在低网速环境下会降级到USSD支付(*247#类菜单操作),你的App应检测网络状态并提示用户最优方式。
—
2. Android/iOS SDK集成细节
(1) Android端注意事项
🔹 bKash SDK依赖冲突解决
其SDK可能引入旧版`androidx.appcompat`,需强制指定版本:
“`gradle
implementation(‘com.bkash:payment-sdk:3.4.1’) {
exclude group: ‘androidx.appcompat’, module: ‘appcompat’
}
“`
🔹 Deep Link回调配置
在`AndroidManifest.xml`中声明Nagad的回调Activity:
“`xml
“`
(2) iOS端关键点
🔸 ATS例外处理
部分银行网关仍使用HTTP,需在`Info.plist`中添加白名单:
“`xml
“`
—
七、风控与合规增强方案
🔥高风险场景应对策略
| 风险类型 | 解决方案 |
|———|———-|
| OTP欺诈 | IP地理围栏 + Device Fingerprinting |
| Chargeback争议 | Mandatory screenshot proof upload |
| AML大额交易 | Auto-trigger ECN申报 (超过$5000) |
📜必须添加的用户协议条款示例:
“`plaintext
By paying via bKash/Nagad, you consent to share your:
– Mobile number verification logs with Bangladesh Bank FIU.
– Transaction history for VAT audit purposes (if applicable).
“`
—
八、替代方案对比分析
如果直接对接困难,可考虑以下中间件:
| Provider | Fees | Payout Time | Best For |
|—————|————-:|————–:|———————–|
| Payza (BD) | 3.5% + $0.15 | T+5 | Freelancer platforms |
| Sonali Bank API 固定费率৳1000/月 T+2 Bulk utility payments|
|—|—|—|
💡 *推荐选择*:若交易量<1000笔/月 → SSLCommerz;高频率大额→直连银行API。 --- 🚀最终技术架构建议 ``` [Frontend App] │───► [BFF Layer] handles device fingerprinting & locale detection │ ├── [Bangladesh Payment Router] ← Dynamic rule engine to switch channels │ │ based on success rate monitoring │ ├─► bKash → gRPC streaming API (for real-time status) │ ├─► Nagad → HTTP/2 with QUIC fallback │ └─► Bank APIs → Mutual TLS auth └── [Reconciliation Module] ← Automatch transactions with ERP system ``` 需要具体某家银行的SWIFT报文格式或测试卡号列表吗?可以继续展开!