H Honor
ES
DiDi finanzas

Documentos

Proporciona pautas de integración, documentación de API, instrucciones de prueba y otra información necesaria a lo largo del proceso de integración

3. SDK Manual

1.Versión

Versión Contenido de la versión Hora de actualización
Versión 1.0 Versión inicial 2026-1-1
Versión 1.1 En "5. Iniciar una solicitud" en "Configuración de inyección", agregue una configuración de "tiempo de espera de enlace".
Público DidiBnplApi didiBnplApi(ApiClient apiClient) {
// Establecer el tiempo de espera del vínculo (MS)
ApiClient. setConnectTimeout(3000);
......"
2026-3-18
Versión 1.2
  • Agregue el contenido de "4,2 SDK Online Obtain".

  • "6. actualmente compatible SDK API Métodos" Añadir contenido de la interfaz.
2026-4-1

2.Acerca de este documento

Propósito

En este tutorial, obtendrá una breve introducción al BNPL de DiDi (Comprar ahora, pagar más tarde) backend Java SDK.Durante el proceso de aprendizaje, usted:

  • Maestro cómo instalar el SDK de Java

  • Entender la Autenticación requerida para solicitar el servicio BNPL de DiDi

  • Aprenda a usar el SDK de Java para llamar al servicio BNPL de DiDi

Público

El público objetivo de este documento es el personal de DiDi BNPL y los socios cooperantes de DiDi BNPL (en adelante, «socio»), incluidos los proveedores de servicios de pago (PSP), las plataformas de comercio electrónico, así como el personal de diversos tipos de socios de pagos y de plataformas comerciales.

Ámbito de aplicación

Este documento se aplica a todos los socios cooperantes de DiDi BNPL (en adelante, «socio»), excepto a aquellos que hayan sido integrados mediante métodos de integración personalizados (no estándar).

Soporte

Por favor, dirija sus consultas a su gestor de cuenta de DiDi BNPL, o envíe un correo electrónico a:didipaylaternotice@didiglobal.com

3.Requisitos ambientales

Java 1,8 +

4. necesario secreto y parámetro

La siguiente información es necesaria para ejecutar el SDK para verificar la identidad y el entorno del integrador:

  • ClientId: Identificador único para el cliente. Obténgalo EN LA Parte II de DiDi BNPL Env. Configurar.

  • ClientSecret: clave secreta emparejada utilizada para la autenticación del cliente. Obténgalo EN LA Parte II de DiDi BNPL Env.Configurar. (Mantenga la clave secreta estrictamente confidencial para evitar su divulgación. Si se pierde, solo se puede volver a solicitar y no se puede recuperar.)

  • Env: Entorno objetivo para la invocación, incluyendo Sandbox y producción. (La Clase de enumeración EnvEnum.La clase se proporciona para uso directo.

4.1 SDK Offline Obtener

Obtener el DiDi BNPL Backend SDK

Pls envía el correo electrónico para obtener el paquete SDK.

Para: didipaylaternotice@didiglobal.com
Título: (del socio Nombre)-Solicite el paquete DiDi BNPL Backend SDK
Cuerpo principal:


Estimado equipo de DiDi BNPL,

Esto es XXX (nombre del socio).

Estamos integrando la función de pago a plazos de DiDi. ¿Podría ayudarnos a compartir el paquete DiDi BNPL Backend SDK?

Gracias.
Atentamente.

4.2 Obtener SDK en línea

El paquete SDK se ha cargado en Maven Central.

ID de hecho de artículo: didi-bnpl-servor-sdk

ID de grupo: COM. didifinance. SDK

Versión: 1.0.2

5.Iniciar una solicitud

Tome la cancelación de la Orden como un ejemplo para enviar su primera solicitud a DiDi BNPL:

public class FullExample {
    public static void main(String[] args) throws ApiException {
        //Obtain the server
        ApiClient client = new ApiClient("clientId", "clientSecret", EnvEnum.SANDBOX.getValue());
        //Obtain sdk-api
        DidiBnplApi didiBnplApi = new DidiBnplApi(client);
        
        CancelOrderRequest cancelRequest = new CancelOrderRequest();
        cancelRequest.setPartnerOrderId("mock-" + System.currentTimeMillis());
        //Initiate a request
        BaseVoidResponse cancel = didiBnplApi.cancelOrder(cancelRequest);
        System.out.println("cancel Order Response: " + cancel);
    }
}

En la práctica, se recomienda utilizar el cliente como un objeto global Singleton para evitar la creación repetida.A continuación se muestra un ejemplo de uso:

1. Inyectar la configuración

@Configuration
public class SDKConfig {
    @Bean
    public ApiClient apiClient() {
        //Inject the client
        //Try to save the key in a secure storage container, such as KMS
        return new ApiClient("clientId", "clientSecret",  EnvEnum.SANDBOX.getValue());
    }

    @Bean
    public DidiBnplApi didiBnplApi(ApiClient apiClient) {
        //Set link timeout (ms)
        apiClient.setConnectTimeout(3000);
        //Set the read timeout (ms)
        apiClient.setReadTimeout(3000);
        //Inject api
        return new DidiBnplApi(apiClient);
    }
}

2. Invocar La API

@Slf4j
@RestController
@RequestMapping("/sdk")
public class SDKController {
    @Autowired
    private DidiBnplApi didiBnplApi;

    @PostMapping("/checkOut")
    public BaseOrderResponse checkOut(@RequestBody CheckOutRequest orderRequest) throws ApiException {
        log.info("checkOut, request:{}", orderRequest);
        BaseOrderResponse baseResponseAbstractOrderVO = didiBnplApi.checkOut(orderRequest);
        log.info("checkOut, response:{}", baseResponseAbstractOrderVO);
        return baseResponseAbstractOrderVO;
    }

    @PostMapping("/queryByPartnerOrderId")
    public BaseOrderResponse queryByPartnerOrderId(@RequestBody QueryOrderResultRequest orderQueryByPartnerOrderIdRequest) throws ApiException {
        log.info("queryByPartnerOrderId, request:{}", orderQueryByPartnerOrderIdRequest);
        BaseOrderResponse orderQueryResponse = didiBnplApi.queryOrderResult(orderQueryByPartnerOrderIdRequest);
        log.info("queryByPartnerOrderId, response:{}", orderQueryResponse);
        return orderQueryResponse;
    }

    @PostMapping("/refund")
    public RefundResponse refund(@RequestBody RefundRequest refundRequest) throws ApiException {
        log.info("refund, request:{}", refundRequest);
        RefundResponse refundResponse = didiBnplApi.refund(refundRequest);
        log.info("refund, response:{}", refundResponse);
        return refundResponse;
    }

    @PostMapping("/refundQuery")
    public RefundQueryResponse refundQuery(@RequestBody QueryRefundResultRequest refundQueryRequest) throws ApiException {
        log.info("refundQuery, request:{}", refundQueryRequest);
        RefundQueryResponse refundQueryResponse = didiBnplApi.queryRefundResult(refundQueryRequest);
        log.info("refundQuery, response:{}", refundQueryResponse);
        return refundQueryResponse;
    }

    @PostMapping("/refundTrialPlan")
    public TrialPlanRefundResponse trialPlan(@RequestBody TrialPlanRefundRequest refundTrialPlanRequest) throws ApiException {
        log.info("refundTrialPlan, request:{}", refundTrialPlanRequest);
        TrialPlanRefundResponse baseResponseRefundTrialPlanResponse = didiBnplApi.trialPlanRefund(refundTrialPlanRequest);
        log.info("refundTrialPlan, response:{}", baseResponseRefundTrialPlanResponse);
        return baseResponseRefundTrialPlanResponse;
    }

    @PostMapping("/cancel")
    public BaseVoidResponse cancel(@RequestBody CancelOrderRequest cancelRequest) throws ApiException {
        log.info("cancel, request:{}", cancelRequest);
        BaseVoidResponse cancel = didiBnplApi.cancelOrder(cancelRequest);
        log.info("cancel, response:{}", cancel);
        return cancel;
    }
}

6.Métodos de API de SDK actualmente compatibles

  1. Crear orden de pago

    a. com.didi.bnpl.sdk.client.api.DidiBnplApi#checkOut

    b. Parámetro de entrada: CheckOutRequest.class

    c. Parámetro de salida: BaseOrderResponse.class

  2. Cancelar pedido

    a. com.didi.bnpl.sdk.client.api.DidiBnplApi#cancelOrder

    b. Parámetro de entrada: CancelOrderRequest.class

    c. Parámetro de salida: BaseVoidResponse.class

  3. Consulta de Información de Pedido de Pago

    a. com.didi.bnpl.sdk.client.api.DidiBnplApi#queryOrderResult

    b. Parámetro de entrada: QueryOrderResultRequest.class

    c. Parámetro de salida: BaseOrderResponse.class

  4. Simulación de reembolso

    a. com.didi.bnpl.sdk.client.api.DidiBnplApi#refundTrialPlan

    b. Parámetro de entrada: TrialPlanRefundRequest.class

    c. Parámetro de salida: TrialPlanRefundResponse.class

  5. Reembolso 

    a. com.didi.bnpl.sdk.client.api.DidiBnplApi#refund

    b. Parámetro de entrada: RefundRequest.class

    c. Parámetro de salida: RefundResponse.class

  6. Consulta de información de reembolso 

    a. com.didi.bnpl.sdk.client.api.DidiBnplApi#queryRefundResult

    b. Parámetro de entrada: QueryRefundResultRequest.class

    c. Parámetro de salida: RefundQueryResponse.class

  7. Prescreen 

    a. com.didi.bnpl.sdk.client.api.DidiBnplApi#prescreen

    b. Parámetro de entrada: PrescreenRequest.class

    c. Parámetro de salida: PrescreenResponse.class

  8. Adquisición de información de reembolso

    a. com.didi.bnpl.sdk.client.api.DidiBnplApi#repayInfo

    b. Parámetro de entrada: RepayInfoRequest.class

    c. Parámetro de salida: RepayInfoResponse.class

Se copió correctamente.