mohdnazrul / laravel-ctosv2
Requires
- guzzlehttp/guzzle: ^6.3
Requires (Dev)
- illuminate/support: 5.4.*
- phpunit/phpunit: ^7.0.2
This package is auto-updated.
Last update: 2024-03-04 04:37:28 UTC
README
此库允许查询注册用户的 CTOS - B2B API。
您需要提供的访问详情才能调用 API。有关数据数组/XML中的确切参数,请参阅您的离线文档。
如果您对这一切都不了解,那么您可能不需要或想要这个库。
配置
.env 文件
通过 .env 文件进行配置当前允许设置以下变量
- CTOS_URL='http://api.endpoint/url/'
- CTOS_USERNAME=demouser
- CTOS_PASSWORD=demoPassword
可用函数
CTOSV2::generateXMLFromArray($data, $XMLEscape = true);
此函数接受 CTOS API 的选项数组,并生成可以通过 API 调用提交的 XML 代码。XMLEscape 自动设置为 true,因为返回的数据生成 XML 必须包含 html 特殊字符,'UTF-8'。示例
// This is for Company Format [ 'company_code' => 'XXXXXX', 'account_no' => 'AAAAAA', 'user_id' => 'AAAAAA', 'record_total' => '1', 'records' => [ 'type' => 'C', // type is C for Company 'ic_lc' => 'COMPANY_REGISTRATION_NO', 'nic_br' => '', 'name' => 'COMPANY_NAME', 'mphone_nos' => '', 'ref_no' => '', 'purpose' => 'PURPOSE_ENQUIRY', 'include_ccris' => '1', 'include_ctos' => '1', 'include_ccris' => '1', 'include_dcheq' => '1', 'include_ssm' => '1', 'include_trex' => '1', 'include_fico' => '1', 'include_cci' => '1', 'confirm_entity' => '' ] // This is for Individual Format [ 'company_code' => 'XXXXXX', 'account_no' => 'AAAAAA', 'user_id' => 'AAAAAA', 'record_total' => '1', 'records' => [ 'type' => 'I', // Type is I for Individual 'ic_lc' => '', 'nic_br' => 'IDENTIFICATION_NO', 'name' => 'INDIVIDU_NAME', 'mphone_nos' => '', 'ref_no' => '', 'purpose' => 'PURPOSE_ENQUIRY', 'include_ccris' => '1', 'include_ctos' => '1', 'include_ccris' => '1', 'include_dcheq' => '1', 'include_ssm' => '1', 'include_trex' => '1', 'include_fico' => '1', 'include_cci' => '1', 'confirm_entity' => '' ]
将生成 // 这是公司格式
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.proxy.xml.ctos.com.my/"> <soapenv:Header/> <soapenv:Body> <ws:request> <!--Optional:--> <input> <batch output="0" no="0009" xmlns="http://ws.cmctos.com.my/ctosnet/request"> <company_code>XXXXXX</company_code> <account_no>AAAAAA</account_no> <user_id>AAAAAA</user_id> <record_total>1</record_total> <records> <type code='11'>C</type> <ic_lc>COMPANY_REGISTRATION_NO</ic_lc> <nic_br/> <name>COMPANY_NAME</name> <mphone_nos/> <ref_no/> <purpose code='200'>PURPOSE_ENQUIRY</purpose> <include_ccris>1</include_ccris> <include_ctos>1</include_ctos> <include_dcheq>1</include_dcheq> <include_ssm>1</include_ssm> <include_trex>1</include_trex> <include_fico>1</include_fico> <include_cci>1</include_cci> <confirm_entity/> </records> </batch> </input> </ws:request> </soapenv:Body> </soapenv:Envelope>
// 这是个人格式
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.proxy.xml.ctos.com.my/"> <soapenv:Header/> <soapenv:Body> <ws:request> <!--Optional:--> <input> <batch output="0" no="0009" xmlns="http://ws.cmctos.com.my/ctosnet/request"> <company_code>XXXXXX</company_code> <account_no>AAAAAA</account_no> <user_id>AAAAAA</user_id> <record_total>1</record_total> <records> <type code='11'>C</type> <ic_lc/> <nic_br>IDENTIFICATION_NO</nic_br> <name>INDIVIDUAL_NAME</name> <mphone_nos/> <ref_no/> <purpose code='200'>PURPOSE_ENQUIRY</purpose> <include_ccris>1</include_ccris> <include_ctos>1</include_ctos> <include_dcheq>1</include_dcheq> <include_ssm>1</include_ssm> <include_trex>1</include_trex> <include_fico>1</include_fico> <include_cci>1</include_cci> <confirm_entity/> </records> </batch> </input> </ws:request> </soapenv:Body> </soapenv:Envelope>
CTOSV2::getReport($requestXML, $decryptedResponse=true)
此函数尝试从 CTOS 获取报告数据并返回 XML 响应;在连接错误的情况下,它返回
如果请求成功但查询导致数据相关错误,则返回的数组将包含字段
code:包含从 CTOS 收到的错误代码
error:包含从 CTOS 收到的错误消息
成功的请求返回请求报告的 XML
可选参数 $decryptedResponse
CTOSV2::convertToJSON($responseXML)
如果此参数设置为 false,则函数将以 64 位加密格式返回数据。
CTOSV2::getResponseReport($responseJSON)
此函数尝试从 CTOS 获取报告数据并返回 JSON 格式。
CTOSV2::getResponseEnqReport($responseJSON)
此函数尝试以数组形式检索属性报告。$responseJSON 参数必须来自 CTOSV2::getReport($requestXML, $decryptedResponse=true)。
CTOSV2::getResponseTREX($responseJSON)
此函数尝试以数组形式检索查询报告。$responseJSON 参数必须来自 CTOSV2::getReport($requestXML, $decryptedResponse=true)。
CTOSV2::getAttributesEnqReport($responseEnqReport)
此函数尝试以数组形式检索 TREX 报告。$responseJSON 参数必须来自 CTOSV2::getReport($requestXML, $decryptedResponse=true)。如果数据为空,则返回 'N/A'。
CTOSV2::getHeaderEnqReport($responseEnqReport)
此函数尝试以数组形式检索属性查询报告。$responseEnqReport 参数必须来自 CTOSV2::getResponseEnqReport($responseJSON)。
CTOSV2::getSummaryEnqReport($responseEnqReport)
此函数尝试以数组形式检索标题查询报告。$responseEnqReport 参数必须来自 CTOSV2::getResponseEnqReport($responseJSON)。
CTOSV2::getEnquiryAttributesReport($responseEnqReport)
此函数尝试以数组形式检索摘要查询报告。$responseEnqReport 参数必须来自 CTOSV2::getResponseEnqReport($responseJSON)。
CTOSV2::getEnquirySectionSummaryReport($responseEnqReport)
此函数尝试以数组形式检索查询属性报告。$responseEnqReport 参数必须来自 CTOSV2::getResponseEnqReport($responseJSON)。
CTOSV2::getEnquirySection_A_Report($responseEnqReport)
此函数尝试在数组中查询A部分报告。[A部分包含来自CTOS数据库的多种来源的身份证验证数据] $responseEnqReport = 参数必须来自 CTOSV2::getResponseEnqReport($responseJSON)。
CTOSV2::getEnquirySection_B_Report($responseEnqReport)
此函数尝试在数组中查询B部分报告。[B部分包含订阅者的监控和内部列表信息。] $responseEnqReport = 参数必须来自 CTOSV2::getResponseEnqReport($responseJSON)。
CTOSV2::getEnquirySection_C_Report($responseEnqReport)
此函数尝试在数组中查询B部分报告。[C部分提供关于主体的董事身份和其他商业利益的信息。] $responseEnqReport = 参数必须来自 CTOSV2::getResponseEnqReport($responseJSON)。
CTOSV2::getEnquirySection_D_Report($responseEnqReport)
此函数尝试在数组中查询B部分报告。[D部分提供关于法律案件的信息,例如传票、状书、破产程序、查封等,其中主体是被告。] $responseEnqReport = 参数必须来自 CTOSV2::getResponseEnqReport($responseJSON)。
CTOSV2::getEnquirySection_D2_Report($responseEnqReport)
此函数尝试在数组中查询B部分报告。[D2部分是D部分的子部分,提供关于法律案件的信息,例如传票、状书、破产程序、查封等,其中主体是原告。] $responseEnqReport = 参数必须来自 CTOSV2::getResponseEnqReport($responseJSON)。
CTOSV2::getEnquirySection_CCRIS_Report($responseEnqReport)
此函数尝试在数组中查询B部分报告。[CCRIS部分提供CCRIS信息。] $responseEnqReport = 参数必须来自 CTOSV2::getResponseEnqReport($responseJSON)。
关于LARAVEL设置配置:
- 执行 composer require mohdnazrul/laravel-ctosv2
composer require mohdnazrul/laravel-ctosv2
- 在 config/app.php 内添加以下语法
.... 'providers'=> [ . MohdNazrul\CTOSV2Laravel\CTOSServiceProvider::class, . ], 'aliases' => [ . 'CTOSV2' => MohdNazrul\CTOSV2Laravel\CTOSApiFacade::class, ' ],
- 按照以下方式发布
php artisan vendor:publish --tag=ctosv2
- 您可以根据您的账户编辑 config/ctosv2.php 中的默认配置CBM,如下所示
return [ 'serviceUrl' => env('CTOS_URL','https://'), 'username' => env('CTOS_USERNAME','username'), 'password' => env('CTOS_PASSWORD','password') ];