调用Paystack订阅及交易初始化接口无响应,需获取订阅代码与状态
解决Paystack接口无响应问题的排查步骤
1. 核心请求合法性校验
- 必须携带正确的请求头:
Authorization: Bearer {你的Secret Key},注意用后台的Secret Key(不是前端用的Public Key),且Bearer和密钥之间有空格 - 确认请求方法:
/transaction/initialize和创建订阅的/subscriptions接口都要求用POST方法,不能用GET - 强制设置请求体格式:请求头必须包含
Content-Type: application/json,请求体用JSON格式传递参数,不能用表单提交
2. 直接用命令行测试连通性
用curl发送测试请求,排除代码框架的问题:
# 测试transaction/initialize接口 curl -X POST "https://api.paystack.co/transaction/initialize" \ -H "Authorization: Bearer sk_test_你的测试密钥" \ -H "Content-Type: application/json" \ -d '{"email": "test@example.com", "amount": "50000", "plan": "PLN_你的套餐代码"}' # 测试创建订阅接口(需先有有效客户代码) curl -X POST "https://api.paystack.co/subscriptions" \ -H "Authorization: Bearer sk_test_你的测试密钥" \ -H "Content-Type: application/json" \ -d '{"customer": "CUS_xxxxxx", "plan": "PLN_你的套餐代码"}'
如果curl也无响应,说明是网络或账户问题;如果curl能拿到响应,说明是你代码里的请求配置有问题
3. 网络与环境排查
- 检查服务器防火墙/安全组:是否允许出站请求到
api.paystack.co的443端口(HTTPS) - 调整请求超时时间:将HTTP客户端的超时设置为30秒以上,避免因网络波动导致无响应
- 确认DNS解析:服务器能否正常解析
api.paystack.co,可以用nslookup api.paystack.co测试
4. 错误捕获与日志记录
- 不要忽略异常:在代码中捕获所有HTTP请求相关的异常(比如连接超时、SSL错误、DNS失败),这些异常往往是无响应的原因
- 记录完整请求细节:包括请求头、请求体、返回的HTTP状态码(哪怕是500/400),Paystack的错误响应会在
message字段里明确说明问题
5. 参数细节校验
amount参数必须用最小货币单位:比如尼日利亚奈拉需要传Kobo值,500NGN对应50000- 创建订阅时,客户必须有有效的付款方式:可以先通过
/transaction/initialize完成一次测试交易,确保客户账户关联了付款卡 - 确认套餐代码格式:Paystack后台的套餐代码是
PLN_xxxxxx格式,不要传成套餐名称
6. 账户状态检查
- 确认账户是激活状态:测试模式下也需要确保账户未被限制
- 测试环境用测试密钥:不要在测试环境用生产密钥,反之亦然
内容的提问来源于stack exchange,提问作者Wilbert Boadzo
相关产品推荐
相关产品推荐

