apihub-cdc/rcc-client 问题修复 & 功能扩展

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

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

apihub-cdc/rcc-client

Composer 安装命令:

composer require apihub-cdc/rcc-client

包简介

README 文档

README

Este reporte muestra el historial crediticio, el cumplimiento de pago de los compromisos que la persona ha adquirido con entidades financieras, no financieras e instituciones comerciales que dan crédito o participan en actividades afines al crédito.

Requisitos

PHP 7.1 ó superior

Dependencias adicionales

  • Se debe contar con las siguientes dependencias de PHP:
    • ext-curl
    • ext-mbstring
  • En caso de no ser así, para linux use los siguientes comandos
#ejemplo con php en versión 7.3 para otra versión colocar php{version}-curl
apt-get install php7.3-curl
apt-get install php7.3-mbstring

Instalación

Ejecutar: composer install

Guía de inicio

Paso 1. Generar llave y certificado

  • Se tiene que tener un contenedor en formato PKCS12.
  • En caso de no contar con uno, ejecutar las instrucciones contenidas en lib/Interceptor/key_pair_gen.sh o con los siguientes comandos.

Opcional: Para cifrar el contenedor, colocar una contraseña en una variable de ambiente.

export KEY_PASSWORD=your_password
  • Definir los nombres de archivos y alias.
export PRIVATE_KEY_FILE=pri_key.pem
export CERTIFICATE_FILE=certificate.pem
export SUBJECT=/C=MX/ST=MX/L=MX/O=CDC/CN=CDC
export PKCS12_FILE=keypair.p12
export ALIAS=circulo_de_credito
  • Generar llave y certificado.
#Genera la llave privada.
openssl ecparam -name secp384r1 -genkey -out ${PRIVATE_KEY_FILE}
#Genera el certificado público.
openssl req -new -x509 -days 365 \
    -key ${PRIVATE_KEY_FILE} \
    -out ${CERTIFICATE_FILE} \
    -subj "${SUBJECT}"
  • Generar contenedor en formato PKCS12.
# Genera el archivo pkcs12 a partir de la llave privada y el certificado.
# Deberá empaquetar la llave privada y el certificado.
openssl pkcs12 -name ${ALIAS} \
    -export -out ${PKCS12_FILE} \
    -inkey ${PRIVATE_KEY_FILE} \
    -in ${CERTIFICATE_FILE} -password pass:${KEY_PASSWORD}

Paso 2. Cargar el certificado dentro del portal de desarrolladores

  1. Iniciar sesión.
  2. Dar clic en la sección "Mis aplicaciones".
  3. Seleccionar la aplicación.
  4. Ir a la pestaña de "Certificados para @tuApp".

  5. Al abrirse la ventana, seleccionar el certificado previamente creado y dar clic en el botón "Cargar":

Paso 3. Descargar el certificado de Círculo de Crédito dentro del portal de desarrolladores

  1. Iniciar sesión.
  2. Dar clic en la sección "Mis aplicaciones".
  3. Seleccionar la aplicación.
  4. Ir a la pestaña de "Certificados para @tuApp".

  5. Al abrirse la ventana, dar clic al botón "Descargar":

Es importante que este contenedor sea almacenado en la siguiente ruta: /path/to/repository/lib/Interceptor/keypair.p12

Así mismo el certificado proporcionado por Círculo de Crédito en la siguiente ruta: /path/to/repository/lib/Interceptor/cdc_cert.pem

  • En caso de que no se almacene así, se debe especificar la ruta donde se encuentra el contenedor y el certificado. Ver el siguiente ejemplo:
$password = getenv('KEY_PASSWORD');
$this->signer = new KeyHandler(
    "/example/route/keypair.p12",
    "/example/route/cdc_cert.pem",
    $password
);

NOTA: Solamente en caso de que el contenedor se haya cifrado, debe colocarse la contraseña en una variable de ambiente e indicar el nombre de la misma, como se ve en la imagen anterior.

Paso 4. Modificar URL y credenciales

Modificar la URL y las credenciales de acceso a la petición en test/Api/ApiTest.php, como se muestra en el siguiente fragmento de código:

public function setUp()
{
    $password = getenv('KEY_PASSWORD');
    $this->signer = new KeyHandler(null, null, $password);

    $events = new MiddlewareEvents($this->signer);
    $handler = handlerStack::create();
    $handler->push($events->add_signature_header('x-signature'));   
    $handler->push($events->verify_signature_header('x-signature'));
    $client = new Client(['handler' => $handler]);

    $config = new Configuration();
    $config->setHost('the_url');
    
    $this->apiInstance = new Instance($client, $config);
    $this->x_api_key = "your_api_key";
    $this->username = "your_username";
    $this->password = "your_password";
}   

Paso 5. Capturar los datos de la petición

Es importante contar con el setUp() que se encargará de firmar y verificar la petición.

NOTA: Los datos de la siguiente petición son solo representativos.

public function testGetReporte(){
   

    $estado = new CatalogoEstados();
    $request = new PersonaPeticion();

    $request->setPrimerNombre("JUAN");
    $request->setApellidoPaterno("PRUEBA");
    $request->setApellidoMaterno("SIETE");
    $request->setFechaNacimiento("1980-01-07");
    $request->setRfc("PUAC800107");
    $request->setNacionalidad("MX");

    $dom = new DomicilioPeticion();
    $dom->setDireccion("INSURGENTES SUR 1001");
    $dom->setColoniaPoblacion("INSURGENTES SUR");
    $dom->setDelegacionMunicipio("CIUDAD DE MEXICO");
    $dom->setCiudad("CIUDAD DE MEXICO");
    $dom->setEstado($estado::DF);
    $dom->setCP("11230");

    $request->setDomicilio($dom);

    try {
        $result = $this->apiInstance->getReporte($this->x_api_key, $this->username, $this->password, $request);
        $this->assertTrue($result->getFolioConsulta()!==null);
        print_r($result);            
        echo "testGetReporte finished\n";
        return $result->getFolioConsulta();
    } catch (Exception $e) {
        echo 'Exception when calling ReporteDeCrditoApi->getReporte: ', $e->getMessage(), PHP_EOL;
    }
} 

Pruebas unitarias

Para ejecutar las pruebas unitarias:

./vendor/bin/phpunit

CONDICIONES DE USO, REPRODUCCIÓN Y DISTRIBUCIÓN

apihub-cdc/rcc-client 适用场景与选型建议

apihub-cdc/rcc-client 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 13 次下载、GitHub Stars 达 1, 最近一次更新时间为 2020 年 10 月 27 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「php」 「api」 「sdk」 「apihub」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

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

围绕 apihub-cdc/rcc-client 我们能提供哪些服务?
定制开发 / 二次开发

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

BUG 修复 & 性能优化

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

项目外包 & 长期维护

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

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

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: proprietary
  • 更新时间: 2020-10-27