wire4/wire4-api-sdk-php 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

wire4/wire4-api-sdk-php

Composer 安装命令:

composer require wire4/wire4-api-sdk-php

包简介

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

README 文档

README

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

wire4/wire4-api-sdk-php 适用场景与选型建议

wire4/wire4-api-sdk-php 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 83 次下载、GitHub Stars 达 1, 最近一次更新时间为 2020 年 01 月 30 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 wire4/wire4-api-sdk-php 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 wire4/wire4-api-sdk-php 我们能提供哪些服务?
定制开发 / 二次开发

基于 wire4/wire4-api-sdk-php 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 83
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 4
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: proprietary
  • 更新时间: 2020-01-30