how to define the endpoint on spring boot server to receive server notification after read the app doc, this is what I am doing now:
@Api
@RequestMapping("/post/notification")
@FeignClient(name = "dolphin-post-service")
@Validated
public interface IAppleServerNotificationController {
/**
* Receive Apple Server Notification
* @param
* @return
*/
@PostMapping("/v1/appleSeverNotification")
Response<Integer> handleNotification(@RequestBody @Valid ServerNotificationRequest request);
}
and this is the entity I am define:
@Data
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class ServerNotificationRequest implements Serializable {
@ApiModelProperty(value = "responseBody")
@NonNull
private String responseBody;
}
but It seems not work. where I am going wrong? Any suggestion?
@Override
@NoCheck
public Response<Integer> handleNotification(ServerNotificationRequest request) {
JSONObject jsonResult = JSONObject.parseObject(request.getResponseBody());
AppleServerNotificationRecord record = new AppleServerNotificationRecord();
record.setResponseBody(request.getResponseBody());
record.setNotificationType(jsonResult.getString("notification_type"));
int result = notificationRecordService.saveNotificationRecord(record);
return new Response<>(result);
}
the responseBody is null!!!
define the request entity like this:
@Data
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class ServerNotificationRequest implements Serializable {
@ApiModelProperty(value = "auto_renew_adam_id")
@JsonProperty("auto_renew_adam_id")
private String autoRenewAdamId;
@ApiModelProperty(value = "auto_renew_product_id")
@JsonProperty("auto_renew_product_id")
private String autoRenewProductId;
@ApiModelProperty(value = "auto_renew_status")
@JsonProperty("auto_renew_status")
private String autoRenewStatus;
@ApiModelProperty(value = "auto_renew_status_change_date")
@JsonProperty("auto_renew_status_change_date")
private String autoRenewStatusChangeDate;
@ApiModelProperty(value = "auto_renew_status_change_date_ms")
@JsonProperty("auto_renew_status_change_date_ms")
private String autoRenewStatusChangeDateMs;
@ApiModelProperty(value = "auto_renew_status_change_date_pst")
@JsonProperty("auto_renew_status_change_date_pst")
private String autoRenewStatusChangeDatePst;
@ApiModelProperty(value = "environment")
private String environment;
@ApiModelProperty(value = "expiration_intent")
@JsonProperty("expiration_intent")
private Integer expirationIntent;
@ApiModelProperty(value = "notification_type")
@JsonProperty("notification_type")
private String notificationType;
@ApiModelProperty(value = "password")
@JsonProperty("password")
private String sharedSecret;
//@ApiModelProperty(value = "unified_receipt")
//@JsonProperty("unified_receipt")
//private String unifiedReceipt;
@ApiModelProperty(value = "bid")
private String bid;
@ApiModelProperty(value = "bvrs")
private String bvrs;
}