菲律宾本地支付对接过程中,GCash通道虽主流,但其商户API、回调结构、并发承压能力等层面存在较高门槛。币付Pay为中小开发团队提供了更清晰的结构、完整的回调机制与可控性高的容错系统。本文将从接口字段、签名规则、状态同步、容灾机制四大层面拆解币付Pay的接口结构,帮助开发者实现一次性集成,长期稳定运行。
一、标准接口结构:统一字段与返回格式
币付Pay所有接口均采用POST方式提交,返回JSON结构,具备如下通用特性:
- 所有请求参数字段需参与签名
- 返回格式统一为:code, msg, data
- 签名字段名固定为
sign
,校验不通过直接拒绝
核心接口概览:
接口 | 作用 | 是否回调 |
---|---|---|
/v2/order/create | 生成GCash二维码支付订单 | 是 |
/v2/order/query | 订单状态主动查询 | 否 |
/v2/notify | 异步支付结果通知(回调) | 系统调用 |
/v2/payout/batch | 发起商户结算请求 | 否 |
二、签名机制说明
币付Pay采用商户密钥与请求字段参与排序拼接后的MD5加密,保障数据不可伪造:
# 示例 Python 生成签名逻辑 def gen_sign(params: dict, app_secret: str): raw = "&".join(f"{k}={v}" for k, v in sorted(params.items()) if v) + f"&key={app_secret}" return hashlib.md5(raw.encode()).hexdigest().upper()
- 字段必须剔除空值
- 字典排序以ASCII顺序进行
- 最后拼接
&key=商户私钥
后计算 MD5
三、支付回调说明
支付完成后系统主动发起异步回调:
- 回调字段含订单号、金额、状态、签名
- 回调最多发送5次,间隔为:5s, 15s, 30s, 60s, 300s
- 回调地址需返回明文字符串
success
代表接收成功
回调字段示例:
字段 | 含义 |
---|---|
merchant_no | 商户编号 |
order_no | 订单号 |
amount | 交易金额 |
status | 支付状态(SUCCESS / FAIL) |
sign | 签名 |
四、高并发与异常场景处理
推荐实践:
- 前端加防抖逻辑,避免重复生成订单
- 后端需保存
sign原始串
与完整请求日志
,用于问题排查 - 订单状态建议以
/notify
回调为准,轮询接口作为兜底容错
典型异常场景与解决建议:
异常场景 | 原因 | 建议处理 |
---|---|---|
订单已支付但无回调 | 网络故障/回调失败 | 主动调用 /order/query 补单 |
签名校验失败 | 字段顺序/空值/密钥错误 | 打印签名串人工比对 |
重复下单 | 用户多次点击 | 设置相同 order_no 避免重复 |
五、开发者工具与调试方案
- Postman:本地模拟发起请求,验证签名与参数
- Ngrok / frp:本地调试
/notify
回调 - 日志建议:每次请求打印:请求体、签名、响应、接口耗时
六、接口稳定性与版本说明
- 当前为
v2
主版本,长期维护,优先推荐接入 - 接口设计避免碎片化,适合 SaaS 场景统一调用
- 系统月稳定率 >99.97%,故障通知同步至 Telegram 群组
七、获取文档与测试权限
- 官方客服邮箱:[email protected]
- Telegram官方频道(系统通告):https://t.me/GcashNativePay
- 获取测试商户资料:联系
@Bifuapp
币付Pay,全栈接口结构清晰、故障容错稳定,适配所有面向GCash的中高频交易系统。
发表评论
发表评论: