如何通过代码在Worldpay Business Gateway实现支付捕获?
实现Worldpay Business Gateway自动支付捕获的可行性及方案
当然可行!Worldpay Business Gateway完全支持通过代码实现自动支付捕获,不用再手动在商家后台操作啦。下面给你梳理下关键步骤和注意事项:
核心前提
首先得确认你的Worldpay账户已经开启了**延迟捕获(Delayed Capture)**功能——只有当你最初的交易是「授权(Auth)」而非直接「完成(Sale)」时,后续才能执行捕获操作。如果还没开启,要么在商家管理后台自行配置,要么联系Worldpay客服帮忙开通。
具体实现步骤
准备关键交易参数
从你之前存到数据库的Worldpay响应里,找出这几个必填信息:orderCode:你提交初始交易时自定义的订单编号transactionId或paymentResponseCode:Worldpay返回的唯一交易标识- 你的商家ID(
merchantCode)和API密钥(这个一定要妥善保管,绝对不能泄露到前端或公开代码里)
调用捕获API
Worldpay的Business Gateway提供了REST API来完成捕获操作,这里给你一个POST请求的示例结构:POST /api/v1/orders/{orderCode}/captures Host: api.worldpay.com Authorization: Bearer YOUR_API_KEY Content-Type: application/json { "amount": { "value": 1000, "currency": "GBP" }, "reference": "YOUR_UNIQUE_CAPTURE_REF" }这里要注意:
amount可以和授权金额一致(全额捕获),也可以填更小的数值(部分捕获,如果你支持分批次收款的话)reference是你自己生成的唯一捕获参考号,方便后续对账和排查问题
处理API响应
调用后会收到Worldpay的响应,记得做好处理:- 如果返回
201 Created,说明捕获成功,把响应里的captureId和状态更新到你的数据库里 - 如果返回4xx/5xx错误码,要根据错误信息排查问题——比如授权过期、金额不匹配、API权限不足等
- 如果返回
重要注意事项
- API权限配置:确保你的API密钥拥有「捕获交易」的权限,有些默认生成的密钥可能只支持查询操作,需要在商家后台调整权限设置
- 授权有效期:授权交易一般有7-30天的有效期(具体取决于卡组织和Worldpay的配置),一定要在有效期内完成捕获,否则授权会自动失效
- 幂等性保障:如果你的系统可能出现重复请求的情况,一定要用唯一的
reference,避免重复捕获同一笔交易 - 先测后上生产:先在Worldpay的测试沙箱环境里跑通整个捕获流程,确认没问题再切换到生产环境
替代方案(如果REST API不适用)
如果你的技术栈更适配SOAP接口,Worldpay也提供了SOAP版本的捕获API,核心逻辑和REST一致,只是请求格式换成了XML,你可以按需选择。
内容的提问来源于stack exchange,提问作者Sharu Priya
相关产品推荐
相关产品推荐

