85 lines
2.4 KiB
PHP
85 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace Extend\VerifyDun;
|
|
|
|
use App\Exception\BusinessException;
|
|
use GuzzleHttp\Exception\GuzzleException;
|
|
|
|
/**
|
|
* 银行卡三/四要素认证
|
|
*/
|
|
class BankCard extends Base
|
|
{
|
|
/**
|
|
* @param array $params
|
|
* @return string
|
|
* @throws GuzzleException
|
|
*/
|
|
public function checkBankCard(array $params): string
|
|
{
|
|
try {
|
|
// 组合请求地址
|
|
$api_url = $this->api_url . $this->version . '/bankcard/check';
|
|
|
|
$this->params['businessId'] = "3cb726bd85104161b25613153c4fba7c";
|
|
|
|
$this->params = array_merge($this->params,$params);
|
|
|
|
// 获取签名
|
|
$this->params['signature'] = $this->gen_signature();
|
|
|
|
$this->options["form_params"] = $this->params;
|
|
|
|
$result = $this->httpRuest->postRequest($api_url,$this->options);
|
|
|
|
if (empty($result)){
|
|
return "银行卡认证失败";
|
|
}
|
|
|
|
if ($result['code'] != "200"){
|
|
throw new BusinessException("银行卡认证失败");
|
|
}
|
|
|
|
if (empty($result['result'])){
|
|
return "银行卡认证失败";
|
|
}
|
|
|
|
// 处理不通过情况
|
|
if ($result['result']['status'] == 2){
|
|
switch ($result['result']['reasonType']) {
|
|
case 2:
|
|
return "持卡人信息与输入信息不一致";
|
|
break;
|
|
case 3:
|
|
return "查无此银行卡";
|
|
break;
|
|
case 4:
|
|
return "查无此身份证";
|
|
break;
|
|
case 5:
|
|
return "手机号码格式不正确";
|
|
break;
|
|
case 6:
|
|
return "银行卡号不正确";
|
|
break;
|
|
case 7:
|
|
return "其他出错,请联系客服";
|
|
break;
|
|
|
|
default:
|
|
return "银行卡认证失败";
|
|
break;
|
|
}
|
|
}
|
|
|
|
// 处理status为其他情况
|
|
if ($result['result']['status'] != 1){
|
|
return "身份证认证失败";
|
|
}
|
|
|
|
return "";
|
|
} catch (\Exception $e) {
|
|
throw new BusinessException($e->getMessage());
|
|
}
|
|
}
|
|
} |