Share via Share via... Twitter LinkedIn Facebook Pinterest Telegram WhatsApp Yammer RedditCambios recientesSend via e-MailImprimirEnlace permanente × Control SMS En XOne utilizamos en nuestros diseños múltiples herramientas que nos brindan la posibilidad de añadir bondades y funcionalidades a nuestras apps. De esta forma se ha implementado también funciones que permiten habilitar y controlar el uso de SMS en las Apps XONe. Las funciones relacionados para el control de SMS son: Uso y Control de SMS by XONe smsService.send Envío de SMS smsService.sendRetry Reintento de envío de SMS smsService.requestPhoneNumber Verificación número de teléfono smsService.requestSmsVerification Verificación de SMS smsService.getAppSmsSignatureHashes Para simular ser el servidor que enviará los SMS de verificación La diferencia entre smsService.send y smsService.sendRetry radica en que en smsService.send se envía el sms y si falla pues no se intenta más, simplemente falló el envío y con el smsService.sendRetry se crea un servicio que mantiene el envío del sms hasta completar el éxito. Ejemplos: const SMS_TEXT = "Su código de verificación XOne es: "; function doSendSms() { if (!self.MAP_PHONE_NUMBER) { throw "Especifique un número de teléfono"; } smsService.send(self.MAP_PHONE_NUMBER, self.MAP_TEXT); } function doSendSmsWithRetry() { if (!self.MAP_PHONE_NUMBER) { throw "Especifique un número de teléfono"; } smsService.sendRetry(self.MAP_PHONE_NUMBER, self.MAP_TEXT); } /** * Con esto simulamos ser el servidor que enviará los SMS de verificación */ function doSendTestVerificationSms() { if (!self.MAP_PHONE_NUMBER) { throw "Especifique un número de teléfono"; } let sHashes = smsService.getAppSmsSignatureHashes(); smsService.send(self.MAP_PHONE_NUMBER, SMS_TEXT + "123456\n\n" + sHashes[0]); } /** * Puede devolver nulo si el usuario no lo ha dado. Controlar en ese caso que el * usuario lo introduzca. * * Esto es solo una pista, no hay ninguna garantía de que sea el número real del * teléfono, luego no se debe usar en ningún proceso 100% automático, hay que * mostrárselo al usuario para que lo dé por bueno. */ function doRequestPhoneNumber() { self.MAP_PHONE_NUMBER = smsService.requestPhoneNumber(); ui.refresh("MAP_PHONE_NUMBER"); } function doRequestSmsVerification() { smsService.requestSmsVerification(onVerificationSmsReceived); } /** * Los valores posibles de sStatus son: "success"/"timeout"/"error" */ function onVerificationSmsReceived(sSms, sStatus) { if (sStatus != "success") { ui.showToast("Error al recibir SMS de verificación: " + sStatus); return; } let nIndex = sSms.indexOf(SMS_TEXT); if (nIndex !== 0) { ui.showToast("El SMS no tiene el formato correcto"); return; } let sVerificationCode = sSms.substring(SMS_TEXT.length, SMS_TEXT.length + 6); // En la vida real, enviar esto a un servicio web y descartarlo ui.showToast("El código de verificación es: " + sVerificationCode); }