如何在Square Connect API中为订单添加小费金额?
解决Square Connect v2 API添加订单小费的问题
我之前在做自定义UI的Square集成时刚好碰到过这个问题,给你梳理下正确的实现流程:
核心逻辑说明
Square的小费设计是关联在付款(Tender)环节,而不是订单创建阶段,所以你需要分两步操作:先创建基础订单,再通过Charge接口关联订单并添加小费。
具体步骤
创建基础订单
调用CreateOrder接口,只需要传入商品明细、基础金额等信息即可,这里不需要处理小费。示例请求体大概是这样:{ "order": { "location_id": "YOUR_LOCATION_ID", "line_items": [ { "name": "Coffee", "quantity": "1", "base_price_money": { "amount": 400, "currency": "USD" } } ] } }调用成功后会返回
order_id,保存好这个ID。关联订单并添加小费完成付款
调用Charge接口时,指定刚才获取的order_id,同时在tender字段里设置tip_money。这里要注意,Charge接口的请求体是允许包含tender对象的,你之前可能没注意到这个字段的正确用法。示例请求体:{ "location_id": "YOUR_LOCATION_ID", "source_id": "YOUR_PAYMENT_SOURCE_ID", // 比如信用卡token "order_id": "THE_ORDER_ID_FROM_STEP_1", "tender": { "tip_money": { "amount": 100, "currency": "USD" } } }这样操作后,小费会被正确计入订单的总金额,你可以通过
RetrieveOrder接口查看包含小费的完整订单信息。
额外提示
- 如果你需要先让用户确认小费金额,再生成订单,也可以先收集小费,在创建订单时把
total_money设置为基础金额+小费,但更推荐上面的流程,因为小费属于付款环节的附加项,和订单本身的商品金额分离更清晰。 - 确保你的Square账号权限允许自定义小费设置,部分商家可能有配置限制,可以在Square后台检查下。
内容的提问来源于stack exchange,提问作者CainaSouza
相关产品推荐
相关产品推荐

