Utilizar SDK
1. Inicia Sesión
Para comenzar abre el archivo AppDelegate.swift e importa el SDK.
Implementación:
import NetPayMiniSDK
Agrega tus credenciales en la función didFinishLaunchingWithOptions.
Implementación:
NPService().initialize(user: “//usuario”: password: “//contraseña”)
2. Genera una transacción
Para comenzar deberás importar NetPayMiniSDK en el controlador donde requieres transaccionar.
Implementación:
import NetPayMiniSDK
Crea una variable que contenga una instancia de NPService, de preferencia con un alcance (scope) global.
Implementación:
lazy var service: NPService! = {
return NPService()
}()
Para transaccionar algunos campos son obligatorios y otros opcionales.
Implementación:
service.transaction(presentingVC: self,
amount: 1.0,
deviceName: "NETPAY8012400115",
location: CLLocationCoordinate2D(latitude: 25.6495641, longitude: -100.3255365),
promotion: .noPromotion,
tip: 0.0,
reference: "referencia",
enableSignature: true,
delegate: self)
Campo | Tipo | Descripción |
---|---|---|
presentingVC | UIViewController | Este campo debe contener el valor self. |
amount | Double | Monto total de la venta con propina incluida. |
deviceName | String | Nombre de tu lector Mini. Para llenar este campo primero debes obtener los últimos 10 dígitos del número serial de tu lector Mini y concatenar al inicio la palabra NETPAY. Ejemplo: Si tu lector tiene el número serial 27000210118012400115 el campo debería llenarse como NETPAY8012400115. |
promotion | Promotion | Este campo indica si la venta lleva meses sin intereses. Las opciones son sin promoción (.noPromotion), 6 meses (.sixMonths), 9 meses (.nineMonths), 12 meses (.twelveMonths), 18 meses (.eighteenMonths). |
tip | Double | Monto de la propina. |
delegate | UIViewController | Este campo debe contener el valor self. |
location | CLLocationCoordinate2D? | En este campo puedes agregar un objeto CLLocationCoordinate2D el cual contenga una coordenada de dónde se realiza la transacción. |
reference | String? | En este campo puedes agregar un texto que contenga una referencia a la venta. |
Se debe conformar al protocolo TransactionDelegate en el controlador correspondiente.
Implementación:
extension ViewController: TransactionDelegate {
func didBeginConnectingDevice() {
print("didBeginConnectingDevice")
}
func connectingBluetooth() {
print("connectingBluetooth")
}
func bluetoothNotFound() {
print("bluetoothNotFound")
}
func bluetoothIsOff() {
print("bluetoothIsOff")
}
func insertSwipeApproachCard() {
print("insertSwipeApproachCard")
}
func readingCardChip() {
print("readingCardChip")
}
func deviceError(error: DeviceError) {
print("deviceError: ", error)
}
func transactionError(message: String) {
print("TransactionError: ", message)
}
func sendingTransaction() {
print("sendingTransaction")
}
func didCompleteTransaction(transactionId: String) {
print("didCompleteTransaction: ", transactionId)
self.transactionId = transactionId
}
}
Función | Descripción |
---|---|
didBeginConnectingDevice() | Comienza proceso de vinculación del dispositivo con el lector. |
bluetoothNotFound() | El dispositivo no detecta el Bluetooth del lector. Verifica que el lector esté encendido. |
bluetoothIsOff() | El Bluetooth del dispositivo se encuentra apagado. |
insertSwipeApporachCard() | Inserta, Desliza o Acerca la tarjeta al lector. |
readingCardChip() | Leyendo el chip de la tarjeta. |
deciveError(error: DeviceError) | Se presenta un error en el lector al intentar leer la tarjeta. Este método regresa un error de tipo DeviceError indicando el problema. |
transactionError(error: String) | Se presenta un error en el lector al intentar leer la tarjeta. Este método regresa un error de tipo DeviceError indicando el problema. |
sendingTransaction() | La transacción se está enviando al servidor. |
didCompleteTransaction(transactionId: String) | La transacción se completó con éxito. Este método regresa un transactionId de tipo String. |
En el caso en que la tarjeta no solicita firma electrónica, NetPayMiniSDK mostrará un controlador con el cual el cliente deberá firmar.

3. Cancela la transacción en proceso
Para cancelar la transacción que se está procesando utiliza la función cancelTransaction.
Implementación:
service.cancelTransaction()
Esto cancelará la ejecución de la lectura de tarjeta. Es importante mencionar que una vez que se llegue al estatus de sendingTransaction() la transacción no podrá cancelarse.
4. Cancela una venta
Para cancelar una venta es necesario contar previamente con el transactionId de la venta a cancelar.
Implementación:
service.refund(transactionId: transactionId) { success, errorMessage in
if success {
print("Se canceló la venta")
} else {
print(errorMessage ?? "No se recibió error")
}
}
Si se completa exitosamente la transacción se cancelará. No se podrá cancelar la venta si ya transcurrió un día después de realizar la transacción.
5. Consulta un reporte de ventas
Para consultar la ventas realizadas hay que proporcionar un rango de fechas.
Implementación:
service.reportSalesByDateAndUser(startDate: "2020-09-02", endDate: "2020-09-17") { sales, message in
}
Campo | Tipo | Descripción |
---|---|---|
startDate | String | Fecha inicial con formato yyyy-MM-dd. |
endDate | String | Fecha final con formato yyyy-MM-dd. |
Esto regresa un arreglo con toda la información de las ventas realizadas dentro del rango de fechas.
Respuesta
6. Consulta el detalle de una venta
El detalle de venta sirve para obtener más información de la venta y es necesario contar con un transactionId.
Implementación:
service.reportSalesDetail(transactionId: "F3EEEBA3-8DBC-8F9A-F8B7-F40EF4CC04BC") { sales, message in
}
Campo | Tipo | Descripción |
---|---|---|
transactionId | String | Identificador de la transacción a consultar. |
Esto regresa toda la información de la venta realizada.
7. Consulta el voucher de una venta
Para consultar el voucher de una venta es necesario contar con el orderId.
Implementación:
service.getImageVoucher(storeId: "51022", orderId: "5102220200915125842324") { imageBase64 in
if let decodedData = Data(base64Encoded: imageBase64!, options: .ignoreUnknownCharacters) {
self.imageView.image = UIImage(data: decodedData)
}
}
Campo | Tipo | Descripción |
---|---|---|
storeId | String | El identificador de la tienda. |
orderId | String | El identificador de la orden obtenido en el detalle de la venta. |
Esto regresa un base64 con la imagen del voucher de una venta .
Compatibilidad
NetPayMiniSDK es un Framework desarrollado en Swift 5 para dispositivos móviles Ios. Es compatible con OS mayor o igual a 10.0.
Updated 9 months ago