Skip to content

wire4/wire4-api-sdk-php

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wire4-php-client

Referencia de la API de Wire4

Cliente sdk para trabajar con el api de wire4
Wire4 es una API - Fintech de Banco Monex con la que podrás administrar transferencias SPEI

  • Versión del API de Wire4: 1.0.0
  • Versión del paquete SDK: 1.1.4

Requisitos

PHP 5.5 o posterior

Instalación y uso

Composer

Para instalar via Composer, agrega lo siguiente a composer.json:

{
  "repositories": [
    {
      "type": "git",
      "url": "https://github.com/wire4/wire4-api-sdk-php.git"
    }
  ],
  "require": {
    "wire4/wire4-api-sdk-php": "dev-master"
  }
}

Ejecuta el siguiente comando:

composer install

o simplemente ejecuta desde la línea de comandos la siguiente línea:

composer require wire4/wire4-api-sdk-php dev-master

Una vez que se instalo el cliente en tu proyecto importa el autoload.php

    require_once('/path/to/wire4-php-client/vendor/autoload.php');

Cómo iniciar

Por favor sigue el procedimiento de instalación (Instalacion y uso) y ejecuta el siguiente código de ejemplo reemplazando las credenciales de aplicación por tus datos. Toma en cuanta que estos son ejemplos que te servirán de referencia y que pueden cambiar pero debes crear una cuenta en wire4.mx para obtener tus datos de aplicación.

<?php
require_once(__DIR__ . '/vendor/autoload.php');

$accessToken= "";
try {
    // Create the authenticator to obtain access token
    $oauth = new \mx\wire4\auth\OAuthWire4 (
        'YOUR_OAUTH_CONSUMER_KEY', //REPLACE THIS WITH YOUR DATA
        'YOUR_OAUTH_CONSUMER_SECRET', //REPLACE THIS WITH YOUR DATA
        \mx\wire4\auth\Environment::SANDBOX); // O \mx\wire4\auth\Environment::PRODUCTION
    // Obtain an access token use application flow and scope "general"
    $accessToken= $oauth->obtainAccessTokenApp("general");
} catch(OAuthException $e) {
    echo "Respuesta: ". $e->lastResponse . "\n";
}

$apiInstance = new \mx\wire4\client\api\ComprobanteElectrnicoDePagoCEPApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client()
);
$body = new \mx\wire4\client\model\CepSearchBanxico(); // \mx\wire4\client\model\CepSearchBanxico | Información para buscar un CEP

try {
    $result = $apiInstance->obtainTransactionCepUsingPOST($body,$accessToken);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling ComprobanteElectrnicoDePagoCEPApi->obtainTransactionCepUsingPOST: ', $e->getMessage(), PHP_EOL;
}
?>

En el proyecto de github https://github.com/wire4/wire4-api-sdk-php encontrarás una sección de ejemplos (examples) que ilustra el uso del sdk en cada uno de los recursos disponibles en el api, sin embargo, para más detalle o la forma en como puedes utilizar cada uno de los métodos de la API te recomendamos revisar la documentación en la sección de "Referencia" en https://developers.wire4.mx

Documentación para los Endpoints de la API

Todos los URIs son relativos a https://sandbox-api.wire4.mx/wire4/1.0.0 en el ambiente de sandbox o https://api.wire4.mx/wire4/1.0.0 para el ambiente de producción.

Clase Metodo HTTP request Descripción
AutorizacinDeDepsitosApi getDepositAuthConfigurations GET /subscriptions/{subscription}/configurations/deposit-authorization Consulta autorización de depósitos
AutorizacinDeDepsitosApi putDepositAuthConfigurations PUT /subscriptions/{subscription}/configurations/deposit-authorization Habilita / Deshabilita la autorización de depósitos
ComprobanteElectrnicoDePagoCEPApi obtainTransactionCepUsingPOST POST /ceps Consulta de CEP
ContactoApi sendContactUsingPOST POST /contact Solicitud de contacto
ContractsDetailsApi createAuthorization POST /onboarding/accounts/authorize Devuelve la URL para autorización del usuario Monex
ContractsDetailsApi obtainAuthorizedUsers GET /onboarding/accounts/{requestId}/authorized-users Obtiene los usuarios autorizados
ContractsDetailsApi obtainAuthorizedUsersByContract GET /onboarding/accounts/authorized-users Obtiene los usuarios autorizados por contrato
ContractsDetailsApi obtainContractDetails POST /onboarding/accounts/details Obtiene los detalles de la empresa del contrato
CuentasDeBeneficiariosSPEIApi authorizeAccountsPendingPUT PUT /subscriptions/{subscription}/beneficiaries/pending Solicitud para agrupar cuentas de beneficiarios SPEI/SPID en estado pendiente.
CuentasDeBeneficiariosSPEIApi deleteAccountUsingDELETE DELETE /subscriptions/{subscription}/beneficiaries/spei/{account} Elimina la cuenta del beneficiario
CuentasDeBeneficiariosSPEIApi getAvailableRelationshipsMonexUsingGET GET /subscriptions/{subscription}/beneficiaries/relationships Consulta de relaciones
CuentasDeBeneficiariosSPEIApi getBeneficiariesByRequestId GET /subscriptions/{subscription}/beneficiaries/spei/{requestId} Consulta los beneficiarios por el identificador de la petición de registro
CuentasDeBeneficiariosSPEIApi getBeneficiariesForAccountUsingGET GET /subscriptions/{subscription}/beneficiaries/spei Consulta los beneficiarios registrados
CuentasDeBeneficiariosSPEIApi preRegisterAccountsUsingPOST POST /subscriptions/{subscription}/beneficiaries/spei Pre-registro de cuentas de beneficiarios SPEI®.
CuentasDeBeneficiariosSPEIApi removeBeneficiariesPendingUsingDELETE DELETE /subscriptions/{subscription}/beneficiaries/spei/request/{requestId} Eliminación de beneficiarios SPEI® sin confirmar
CuentasDeBeneficiariosSPEIApi updateAmountLimitAccountUsingPUT PUT /subscriptions/{subscription}/beneficiaries/spei/{account} Solicitud para actualizar el monto límite de una cuenta
CuentasDeBeneficiariosSPIDApi getSpidBeneficiariesForAccount GET /subscriptions/{subscription}/beneficiaries/spid Consulta los beneficiarios SPID registrados
CuentasDeBeneficiariosSPIDApi preRegisterAccountsUsingPOST1 POST /subscriptions/{subscription}/beneficiaries/spid Pre-registro de cuentas de beneficiarios SPID®
DepositantesApi getDepositantsUsingGET GET /subscriptions/{subscription}/depositants Consulta de cuentas de depositantes
DepositantesApi registerDepositantsUsingPOST POST /subscriptions/{subscription}/depositants Registra un nuevo depositante
EmpresasCoDiApi obtainCompanies GET /codi/companies Consulta de empresas CODI®
EmpresasCoDiApi registerCompanyUsingPOST POST /codi/companies Registro de empresas CODI®
FacturasApi billingsReportByIdUsingGET GET /billings/{id} Consulta de facturas por identificador
FacturasApi billingsReportUsingGET GET /billings Consulta de facturas
InstitucionesApi getAllInstitutionsUsingGET GET /institutions Consulta de instituciones bancarias
LmitesDeMontosApi obtainConfigurationsLimits GET /subscriptions/{suscription}/configurations Consulta de configuraciones
LmitesDeMontosApi updateConfigurations PUT /subscriptions/{suscription}/configurations Actualiza configuraciones por suscripción
OperacionesCoDiApi consultCodiOperations POST /codi/charges Consulta de operaciones
PeticionesDePagoPorCoDiApi consultCodiRequestByOrderId GET /codi/sales-point/charges Consulta información de petición por orderId
PeticionesDePagoPorCoDiApi generateCodiCodeQR POST /codi/sales-point/charges Genera código QR
PuntosDeVentaCoDiApi createSalesPoint POST /codi/companies/salespoint Registro de punto de venta.
PuntosDeVentaCoDiApi obtainSalePoints GET /codi/companies/salespoint Consulta de puntos de venta
SaldoApi getBalanceUsingGET GET /subscriptions/{subscription}/balance Consulta los saldo de una cuenta
SuscripcionesApi changeSubscriptionStatusUsingPUT PUT /subscriptions/{subscription}/status Cambia el estatus de la suscripción
SuscripcionesApi changeSubscriptionUseUsingPATCH PATCH /subscriptions/{subscription} Cambia el uso de la suscripción
SuscripcionesApi preEnrollmentMonexUserUsingPOST POST /subscriptions/pre-subscription Pre-registro de una suscripción
SuscripcionesApi removeEnrollmentUserUsingDELETE DELETE /subscriptions/{subscription} Elimina suscripción por su identificador.
SuscripcionesApi removeSubscriptionPendingStatusUsingDELETE DELETE /subscriptions/pre-subscription/{subscription} Elimina pre-registro de suscripción
TransferenciasSPEIApi createAuthorizationTransactionsGroup POST /subscriptions/{subscription}/transactions/group Agrupa transacciones bajo un request_id
TransferenciasSPEIApi dropTransactionsPendingUsingDELETE DELETE /subscriptions/{subscription}/transactions/outcoming/spei/request/{requestId} Eliminación de transferencias SPEI® pendientes
TransferenciasSPEIApi incomingSpeiTransactionsReportUsingGET GET /subscriptions/{subscription}/transactions/incoming/spei Consulta de transferencias recibidas
TransferenciasSPEIApi outCommingSpeiRequestIdTransactionsReportUsingGET GET /subscriptions/{subscription}/transactions/outcoming/spei/{requestId} Consulta de transferencias de salida por identificador de petición
TransferenciasSPEIApi outgoingSpeiTransactionsReportUsingGET GET /subscriptions/{subscription}/transactions/outcoming/spei Consulta de transferencias realizadas
TransferenciasSPEIApi registerOutgoingSpeiTransactionUsingPOST POST /subscriptions/{subscription}/transactions/outcoming/spei Registro de transferencias
TransferenciasSPIDApi getSpidClassificationsUsingGET GET /subscriptions/{subscription}/beneficiaries/spid/classifications Consulta de clasificaciones para operaciones SPID®
TransferenciasSPIDApi registerOutgoingSpidTransactionUsingPOST POST /subscriptions/{subscription}/transactions/outcoming/spid Registro de transferencias SPID®
WebhooksApi getWebhook GET /webhooks/{id} Consulta de Webhook
WebhooksApi getWebhooks GET /webhooks Consulta la lista de Webhooks
WebhooksApi registerWebhook POST /webhooks Alta de Webhook

Documentación para los modelos

Validación de firma de webhooks

Te recomendamos revisar la documentación de Referencia de wire4 para mas detalle, no obstante te dejamos un ejemplo de validación de firmas para este cliente.

    $message = "{\"id\":\"evt_641296342fdbf2db40ce674dde4881b87ada81b1695ae1c54666578272c1cd10\",\"object\":\"spid_outgoing\",\"api_version\":\"1.0.0\",\"created\":\"2019-12-05T11:55:10.058-06:00\",\"data\":{\"account\":\"8999998\",\"amount\":120.25,\"currency_code\":\"USD\",\"monex_description\":\"Nombre Receptor: BANAMEX | Monto Pago: 120.25 | Cuenta beneficiaria: 112680000189999984 | Nombre Beneficiario: notificar@wire4.mx | Clave de Rastreo:  | Referencia Numerica: 1234567 | Concepto del pago: Transfer out test 1 | Fecha Confirmacion de Liquidacion: 05-12-2019 11:55:10\",\"detention_message\":\"Cuenta de beneficiario, no existe\",\"payment_order_id\":1427991983,\"status_code\":\"FAILED\",\"transaction_id\":704814938,\"beneficiary_account\":\"112680000189999984\",\"beneficiary_bank\":{\"key\":\"40112\",\"name\":\"BMONEX\",\"company_name\":\"BANCO MONEX S.A. INSTITUCION DE BANCA MULTIPLE, MONEX GRUPO FINANCIERO\",\"rfc\":\"BMI9704113PA\"},\"beneficiary_name\":\"notificar@wire4.mx\",\"concept\":\"Transfer out test 1\",\"order_id\":\"8A736A1D-ECA6-4959-93FE-794365F53E24\",\"reference\":1234567,\"request_id\":\"7dbf528d-b395-4779-924e-b182a4de17a5\",\"cep\":{}},\"livemode\":false,\"pending_webhooks\":0,\"request\":\"8A736A1D-ECA6-4959-93FE-794365F53E24\",\"type\":\"TRANSACTION.OUTGOING.SPID.RECEIVED\"}";
    $referenceString = "7c088d16a8a25f1640e95dfdce65770cb0a31dc0e71a9749bba1e4e114201efb6e78c50bea3d8d9337b8ea63b2a8abf5b1e03d0cf9dda6f8e83a509d1ac11908";
    $key = "wh_6b5cb70ab7fd489a8bd0c9d06513008"; //Lo encontraras en la consola de administracion de wire4.mx una vez que estes registrado y hayas dado de alta un webhook, reemplaza este valor

    $signResult = \mx\wire4\webhooks\sign\UtilsCompute::toExadecimal(
        \mx\wire4\webhooks\sign\UtilsCompute::computeHmacSha512($message, $key));

    var_dump($signResult);

    if( ! \mx\wire4\webhooks\sign\UtilsCompute::compareSignatures($referenceString,$signResult) ) {
        echo "Las firmas no son iguales:";

    } else {
        echo "Las validacion de firmas es correcta";
    }

    echo "\noriginal:".$referenceString;
    echo "\nresultado:".$signResult;

Documentación para la autenticación

wire4_aut_app

wire4_aut_app_user_spei

wire4_aut_app_user_spid

Author

Wire4 Todos los derechos reservados 2019. Politicas de privacidad - Términos y condiciones https://wire4.mx/#/policies/use-policies