Android
Paso 1: Mostrando el botón Agregar a Wallet
Su aplicación emisora utiliza el SDK de Push Provisioning para comprobar si la xPay Wallet de destino es compatible con el dispositivo y si ya existe un token para la tarjeta. Según el resultado, muestra u oculta el Agregar a Wallet botón.
Siga estas directrices de marca de billetera para usar Agregar a Wallet en su aplicación emisora:
Huawei Pay El soporte está disponible sólo para esquemas nacionales.
Advertencia
Huawei Pay no es compatible con redes de pago internacionales (por ejemplo, Mastercard y Visa). Sólo nacionales los esquemas pueden ser compatibles en casos específicos. Consulte con Thales las condiciones de uso.
A partir del 10 de junio de 2024, Google Wallet requiere Android 9 o superior.
Usando los últimos cuatro dígitos del PAN, la aplicación emisora puede recuperar el token de una tarjeta que ya está provisionada en una wallet del dispositivo (Samsung Pay y Google Pay para Android).
Cada token incluye:
El ID del token.
Los últimos cuatro dígitos de la tarjeta digital (DPAN).
El estado del token (estado de digitalización).
OEMPayType type = OEMPayType.GOOGLE_PAY; // o OEMPayType.SAMSUNG_PAY
GetTokenInput input = new GetTokenInput("1234"); // últimos cuatro dígitos de la tarjeta física (FPAN)
PushProvisioning pushProvisioning = TPCManager.getInstance().getPushProvisioning(type);
pushProvisioning.getToken(input, new TPCSDKListener<Token>() {
@Override
public void onStart() {
}
@Override
public void onSuccess(TPCResult<Token> result) {
//El token puede recuperarse usando result.getResult().
//result.getResult() devolverá null si la wallet OEM no tiene un token correspondiente.
//El estado del token se usa como sigue:
if(result.getResult()==null || TextUtils.isEmpty(result.getResult().getState())){
//La API no devolvió un token.
//Muestra el botón "Agregar a GPay/SPay".
}else{
Token token = result.getResult();
if(type==OEMPayType.GOOGLE_PAY){
//Para Google Pay.
try {
int tokenState = Integer.parseInt(token.getState());
switch (tokenState){
case CardDigitizationStatus.GOOGLE_PAY_TOKEN_STATE_NEEDS_IDENTITY_VERIFICATION:
// Consulte la gestión del ciclo de vida del token para la acción Activar.
// la tarjeta está pendiente de ID&V.
break;
case CardDigitizationStatus.GOOGLE_PAY_TOKEN_STATE_PENDING:
case CardDigitizationStatus.GOOGLE_PAY_TOKEN_STATE_SUSPENDED:
case CardDigitizationStatus.GOOGLE_PAY_TOKEN_STATE_ACTIVE:
//La tarjeta ya está añadida.
break;
case CardDigitizationStatus.GOOGLE_PAY_TOKEN_STATE_UNTOKENIZED:
//Mostrar el botón "Agregar a GPay".
break;
}
} catch (NumberFormatException e) {
//Gestiona la excepción.
}
}else if(type==OEMPayType.SAMSUNG_PAY){
//Para Samsung Pay.
String tokenState = token.getState();
switch (tokenState){
case CardDigitizationStatus.SAMSUNG_PAY_PENDING_PROVISION:
// Consulte la gestión del ciclo de vida del token para la acción Activar.
// la tarjeta está pendiente de ID&V
break;
case CardDigitizationStatus.SAMSUNG_PAY_ACTIVE:
case CardDigitizationStatus.SAMSUNG_PAY_EXPIRED:
case CardDigitizationStatus.SAMSUNG_PAY_PENDING_ENROLLED:
case CardDigitizationStatus.SAMSUNG_PAY_SUSPENDED:
case CardDigitizationStatus.SAMSUNG_PAY_PENDING_ACTIVATION:
//La tarjeta ya está añadida.
break;
case CardDigitizationStatus.SAMSUNG_PAY_DISPOSED:
//Muestra el botón "Agregar a SPay".
break;
}
}
}
}
@Override
public void onError(TPCSDKException exception) {
// específico para Samsung Pay
Throwable exceptionCause = exception.getCause();
if (exceptionCause != null && exceptionCause instanceof TPCSpayException) {
// obtener más detalles del error para Samsung Pay
TPCSpayException spayException = (TPCSpayException) exceptionCause;
}
}
});Para Google Pay, el estado del token es el siguiente:
GOOGLE_PAY_TOKEN_STATE_NEEDS_IDENTITY_VERIFICATION
La tarjeta está digitalizada, pendiente de ID&V.
GOOGLE_PAY_TOKEN_STATE_PENDING
La tarjeta está digitalizada.
GOOGLE_PAY_TOKEN_STATE_SUSPENDED
La tarjeta está digitalizada.
GOOGLE_PAY_TOKEN_STATE_ACTIVE
La tarjeta está digitalizada.
GOOGLE_PAY_TOKEN_STATE_UNTOKENIZED
La tarjeta no está digitalizada.
CARD_IS_NOT_DIGITIZED
La tarjeta no está digitalizada.
Para Samsung Pay, el estado del token es el siguiente:
SAMSUNG_PAY_PENDING_PROVISION
La tarjeta está digitalizada, pendiente de ID&V.
SAMSUNG_PAY_ACTIVE
La tarjeta está digitalizada.
SAMSUNG_PAY_EXPIRED
La tarjeta está digitalizada.
SAMSUNG_PAY_PENDING_ENROLLED
La tarjeta está digitalizada.
SAMSUNG_PAY_PENDING_ACTIVATION
La tarjeta está digitalizada.
SAMSUNG_PAY_SUSPENDED
La tarjeta está digitalizada.
SAMSUNG_PAY_DISPOSED
La tarjeta no está digitalizada.
Precaución
Para Google Pay, si la tarjeta aún aparece como
NO_DIGITIZADAdespués de la digitalización, compruebe que la aplicación emisora está configurada correctamente en el portal TSP.Para Samsung Pay, algunos emisores deben registrar múltiples
NOMBRE DEL EMISORvalores en el portal. Esto depende de la aplicación emisora y/o de los requisitos del TSP. Asegúrese de que elNOMBRE DEL EMISORvalor en la API coincide con el valor registrado en el portal. La API devuelve sólo coincidencias exactas.El
getTokenLa API no es compatible con Huawei Pay. UseisCardDigitizedpara comprobar el estado de digitalización.
Paso 2: Provisionar una solicitud
En Android, el resultado de éxito varía según OEMPayType. Para Google Pay, el SDK devuelve un ID de token. Para Samsung Pay, devuelve un Card objeto. Para Huawei Pay, devuelve un booleano.
Nota
Desde TPC SDK v1.9.0, el push provisioning de Google Pay puede usar la nueva API:
addCard(Activity activity, CardInfo cardInfo, TPCSDKListener<T> listener).
Última actualización
¿Te fue útil?