| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 | <?phpnamespace App\Services;use App\Traits\EasyCtid;class EasyCtidService{    use EasyCtid;    public function verify(string $realName, string $idNo, string $photoData)    {        // 签名私钥        $pri = 'MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJtxSZ+l/BxsPQtzdVW+RMeGpjMJGoGXzSNQiPsXQdL0Apo72aXpRLizn6BNNexrO12WwfIKUlUzZ5WrUKvyQzKTwbKL2PWL7FCWdcqgi1KJ9tygfolGuSqLaY1lTB1HubSuLaTbpmiS5Khjdwkpg5VAZH2sFhz8hKfc1ir5tBFfAgMBAAECgYBo7pwFwtYjFcpLvaBaxnvFuZbeYunay+/2Q/qEjhmoX4KWPYranlL+4HsEirq5I1ZLAmdgjikwTOhDOAfYW02Se3+sproTyqAy3/qimk/MqbW/bT6whfYocZlZbnCdgeaPK+xyhRDYPDrRGCmiYLbuDdflSX3aNkbgFMNhRAuIKQJBANrxMQUMxiNe15zqq9b9Owm6hFWCQvFzBlHBebaQUge+lK4g6WIm0L7mfeXuo2Fc0M8j++hukxsmFhSpTDXv/JUCQQC1wKTy+MXaX3YXkoYKrfywbdMJMr0OdfboJ7KcEmaOZ6N6XGXrHS437lOUkIk6VCEEFB+v1b1YOS5O+vwVFyUjAkBG5NSPowxBhcNhXyeXbNYCF3AkVBKjJjDEplZoBCFbup1gKO4JRzJOrknT+0rSCwDeIfO+1pcxskpyFEPGL1hlAkBOduV/M6EO/mlYEdymXaiabj9OWEZAKPM4FHNKZ7M4xUtRNvSVBRr/8HbKy39C3DEItrtbSNYecUkptbcAT+arAkEAlCqVfwydy7oM7+lPU39jmPv6Mkj1I0qc/x+j2jp8gkJj91pogQOzQQd/wpNywYDCORD2r84lPyK+JrP+OjODQw==';        // 加密公钥        $pub = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCl23X1jCttl9A93NT1Uev8/5rXZezm83BwbJKQQFi8onP7lBRTBQh8/ahyhMX8Qc2QKEq4/t58Q0NVZE2/Yb8OqZk4LEu1pCt2ra57DSvgMQ41oxDere4kyTYAqFuMJoQQgEmyYpzpHQu1GlSYRtbJ3Oxd/JqHfOSjPVYJaDEBswIDAQAB';        // 基本信息        $orgCode = '29fb7b4673014b0da0833dafbcec9848';        $appId = '1212';        $userId = '123';        $appName = 'dddd';        $readCardCtrlVer = '0400.0001.0101.0006';        $authCodeCtrlVer = '0400.0001.0101.0006';        $photoCtrlVer = '0400.0001.0101.0006';        // 请求模式        $authMode = '0x42';        $bizType = 6000;        $applyData = '';        $bizData = array('authMode' => $authMode, 'applyData' => $applyData, 'appName' => $appName        , 'readCardCtrlVer' => $readCardCtrlVer, 'authCodeCtrlVer' => $authCodeCtrlVer, 'photoCtrlVer' => $photoCtrlVer);        // 填充bizPckage        $bizPackage = array('orgCode' => $orgCode, 'appId' => $appId, 'userId' => $userId, 'bizType' => $bizType, 'bizData' => $bizData);        // 生成bizPackage的json字符串        $bizPackage = json_encode($bizPackage,JSON_UNESCAPED_SLASHES);        // 对bizPackage进行签名,并使用base64编码        $sign = $this->getSign($bizPackage, $pri);        //echo $sign;        $sign = base64_encode($sign);        // 生成完整请求参数        $reqContent = array('bizPackage' => $bizPackage, 'sign' => $sign);        $reqContent = json_encode($reqContent,JSON_UNESCAPED_SLASHES);//        echo "======================== 申请一包:========================\n" . $reqContent . "\n";        $result = $this->request_by_curl("http://api.easyctid.cn/v1/apply", $reqContent);//        echo "结果:\n" . $result . "\n";//        echo "======================== 请求结束 ========================\n";        // 将一包返回json字符串转为普通参数        $result = json_decode($result, true);        // 获取bsn、randomNumber        $bizPackage = json_decode($result['bizPackage'], true);        $bizData = $bizPackage['bizData'];        $bsn = $bizData['bsn'];        $randomNumber = $bizData['randomNumber'];//        echo "获取到参数:\n" . "bsn: " . $bsn . "\n" . "随机数: " . $randomNumber . "\n";//        echo "======================== 一包结束 ========================\n\n\n";        // ------------------------------------ 二包 --------------------------------------        // 两项信息//        $realName = '张三';//        $idNo = '110101200001011297';        $authApplyRetainData = array('name' => $realName, 'idNo' => $idNo);        // 转为json        $authApplyRetainData = json_encode($authApplyRetainData,JSON_UNESCAPED_SLASHES);        // 加密        $authApplyRetainData = $this->encrypt($authApplyRetainData, $pub);        // 使用base64编码        $authApplyRetainData = base64_encode($authApplyRetainData);        // 填充bizData        $bizData = array('authMode' => $authMode, 'appName' => $appName, 'authApplyRetainData' => $authApplyRetainData, 'photoData' => $photoData);        // 填充bizPckage        $bizPackage = array('orgCode' => $orgCode, 'appId' => $appId, 'userId' => $userId, 'bizType' => $bizType, 'bizData' => $bizData        , 'bsn' => $bsn, 'randomNumber' => $randomNumber);        // 生成bizPackage的json字符串        $bizPackage = json_encode($bizPackage,JSON_UNESCAPED_SLASHES);        // 对bizPackage进行签名,并使用base64编码        $sign = $this->getSign($bizPackage, $pri);        $sign = base64_encode($sign);        // 生成完整请求参数        $reqContent = array('bizPackage' => $bizPackage, 'sign' => $sign);        $reqContent = json_encode($reqContent,JSON_UNESCAPED_SLASHES);//        echo "======================== 请求二包:========================\n" . $reqContent . "\n";        $result = $this->request_by_curl("http://api.easyctid.cn/ctid/v1/verification", $reqContent);        $result = json_decode($result, TRUE);        $result = json_decode($result['bizPackage'],TRUE);        return $result;    }}
 |