mohdnazrul/laravel-ctosv2

此包已被废弃,不再维护。作者建议使用 mohdnazrul/laravel-ctosv2 包。

从 CTOS 系统(版本 2)获取报告的库

v2.7 2020-11-02 10:13 UTC

README

此库允许查询注册用户的 CTOS - B2B API。

您需要提供的访问详情才能调用 API。有关数据数组/XML中的确切参数,请参阅您的离线文档。

如果您对这一切都不了解,那么您可能不需要或想要这个库。

配置

.env 文件

通过 .env 文件进行配置当前允许设置以下变量

可用函数

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>
		&lt;batch output=&quot;0&quot; no=&quot;0009&quot; xmlns=&quot;http://ws.cmctos.com.my/ctosnet/request&quot;&gt;
			&lt;company_code&gt;XXXXXX&lt;/company_code&gt;
			&lt;account_no&gt;AAAAAA&lt;/account_no&gt;
			&lt;user_id&gt;AAAAAA&lt;/user_id&gt;
			&lt;record_total&gt;1&lt;/record_total&gt;
			&lt;records&gt;
				&lt;type code=&apos;11&apos;&gt;C&lt;/type&gt;
				&lt;ic_lc&gt;COMPANY_REGISTRATION_NO&lt;/ic_lc&gt;
				&lt;nic_br/&gt;
				&lt;name&gt;COMPANY_NAME&lt;/name&gt;
				&lt;mphone_nos/&gt;
				&lt;ref_no/&gt;
				&lt;purpose code=&apos;200&apos;&gt;PURPOSE_ENQUIRY&lt;/purpose&gt;
				&lt;include_ccris&gt;1&lt;/include_ccris&gt;
				&lt;include_ctos&gt;1&lt;/include_ctos&gt;
				&lt;include_dcheq&gt;1&lt;/include_dcheq&gt;
				&lt;include_ssm&gt;1&lt;/include_ssm&gt;
				&lt;include_trex&gt;1&lt;/include_trex&gt;
				&lt;include_fico&gt;1&lt;/include_fico&gt;
				&lt;include_cci&gt;1&lt;/include_cci&gt;
				&lt;confirm_entity/&gt;
			&lt;/records&gt;
			&lt;/batch&gt;
		</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>
		&lt;batch output=&quot;0&quot; no=&quot;0009&quot; xmlns=&quot;http://ws.cmctos.com.my/ctosnet/request&quot;&gt;
			&lt;company_code&gt;XXXXXX&lt;/company_code&gt;
			&lt;account_no&gt;AAAAAA&lt;/account_no&gt;
			&lt;user_id&gt;AAAAAA&lt;/user_id&gt;
			&lt;record_total&gt;1&lt;/record_total&gt;
			&lt;records&gt;
				&lt;type code=&apos;11&apos;&gt;C&lt;/type&gt;
				&lt;ic_lc/&gt;
				&lt;nic_br&gt;IDENTIFICATION_NO&lt;/nic_br&gt;
				&lt;name&gt;INDIVIDUAL_NAME&lt;/name&gt;
				&lt;mphone_nos/&gt;
				&lt;ref_no/&gt;
				&lt;purpose code=&apos;200&apos;&gt;PURPOSE_ENQUIRY&lt;/purpose&gt;
				&lt;include_ccris&gt;1&lt;/include_ccris&gt;
				&lt;include_ctos&gt;1&lt;/include_ctos&gt;
				&lt;include_dcheq&gt;1&lt;/include_dcheq&gt;
				&lt;include_ssm&gt;1&lt;/include_ssm&gt;
				&lt;include_trex&gt;1&lt;/include_trex&gt;
				&lt;include_fico&gt;1&lt;/include_fico&gt;
				&lt;include_cci&gt;1&lt;/include_cci&gt;
				&lt;confirm_entity/&gt;
			&lt;/records&gt;
			&lt;/batch&gt;
		</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')
];