You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

需监听哪个Easypost Webhook事件以确认运单标签退款被承运人接受?

正确的Easypost Webhook事件:refund.updated

你当前监听的return_update是用于退货运输(用户寄回商品的物流状态更新),和运单标签的退款确认完全无关,所以不会触发。要确认运单标签退款被承运人接受,需要监听refund.updated事件,并检查退款状态是否变为accepted。

关键调整点:

  1. 订阅正确的Webhook事件:在Easypost控制台开启refund.updated事件的订阅,否则无法收到退款状态变更通知。
  2. 修改代码逻辑:不再通过statusDetail判断,而是基于Webhook的事件类型和退款对象的状态来处理:
// 先获取Webhook事件类型
String eventType = (String) result.get("event");

if ("refund.updated".equals(eventType)) {
    Map<String, Object> refundData = (Map<String, Object>) result.get("refund");
    String refundStatus = (String) refundData.get("status");
    
    // 仅当退款被承运人接受时处理
    if ("accepted".equals(refundStatus)) {
        String easypostShipmentId = (String) refundData.get("shipment_id");
        Shipment userShipment = shipmentService.retrieveShipmentFromEasypostId(easypostShipmentId);
        
        String chargeId = userShipment.getStripeChargeId();
        try {
            Refund refund = stripeService.refund(chargeId);
            userShipment.setStripeRefundId(refund.getId());
            userShipment.setStatus(ShipmentStatus.REFUND_PROCESSED);
            // 这里可以设置对应退款的状态,比如自定义的REFUNDED枚举值
            userShipment.setEasypostStatus(EasypostShipmentStatus.REFUNDED);
            
            shipmentService.updateShipment(userShipment);
            double refundAmount = stripeService.getRefundAmount(refund);
            activityLoggerService.insert(userShipment.getUser(), userShipment, activityLoggerService.getShipmentReturnProcessed(userShipment, refundAmount), ActivityMessageType.RETURN_PROCESSED);
        } catch (StripeException e) {
            System.err.println("Error issuing refund: " + e.getMessage());
        }
    }
}

补充说明:

  • Easypost的标签退款流程:提交退款请求后,先触发refund.created事件(状态submitted);当承运人审核通过并接受退款时,触发refund.updated事件,状态变为accepted,这才是你需要的确认节点。
  • 不要混淆"退货运输"和"标签退款":return_update对应前者的物流状态,和退款本身没有关系。

内容的提问来源于stack exchange,提问作者Johni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 05:45:16