gatewayUrl = 'https://openapi.alipay.com/gateway.do'; $aop->appId = $config['alipay']['app_id']; $aop->rsaPrivateKey = $config['alipay']['private_key']; $aop->alipayrsaPublicKey = $aop->getPublicKey($alipayCertPath);//调用getPublicKey从支付宝公钥证书中提取公钥 $aop->apiVersion = '1.0'; $aop->signType = 'RSA2'; $aop->postCharset='utf-8'; $aop->format='json'; $aop->isCheckAlipayPublicCert = true;//是否校验自动下载的支付宝公钥证书,如果开启校验要保证支付宝根证书在有效期内 $aop->appCertSN = $aop->getCertSN($appCertPath);//调用getCertSN获取证书序列号 $aop->alipayRootCertSN = $aop->getRootCertSN($rootCertPath);//调用getRootCertSN获取支付宝根证书序列号 $request = new \AlipayUserCertifyOpenInitializeRequest(); //$request = new AlipayUserCertifyOpenInitializeRequest (); //TODO 官方这个地方写错了,应该用下面的代码才能实现 $newsigndata=array(); $newsigndata['outer_order_no']=md5(time()); $newsigndata['biz_code']="FACE"; $newsigndata['identity_param']['identity_type']="CERT_INFO"; $newsigndata['identity_param']['cert_type']="IDENTITY_CARD"; $newsigndata['identity_param']['cert_name']=$res['name']; $newsigndata['identity_param']['cert_no']= $res['id_code']; $newsigndata['merchant_config']['return_url']="https://juip.com/User/Index?realname=true"; $newsigndata['face_contrast_picture']="xydasf=="; $tosign=json_encode($newsigndata); $request->setBizContent($tosign); $result = $aop->execute ( $request); $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response"; $resultCode = $result->$responseNode->code; $certify_id = $result->$responseNode->certify_id; if(!empty($resultCode)&&$resultCode == 10000){ $request = new \AlipayUserCertifyOpenCertifyRequest (); $data['certify_id'] = $certify_id; $tosign=json_encode($data); $request->setBizContent($tosign); $result = $aop->pageExecute($request,"GET"); $res['certifyId'] = $certify_id; $res['url'] = $result; return $res; } else { return false; } } public static function getResult($certify_id) { global $config; $aop = new \AopCertClient(); $appCertPath = $config['alipay']['app_crt']; $alipayCertPath = $config['alipay']['public_crt']; $rootCertPath = $config['alipay']['root_crt']; $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do'; $aop->appId = $config['alipay']['app_id']; $aop->rsaPrivateKey = $config['alipay']['private_key']; $aop->alipayrsaPublicKey = $aop->getPublicKey($alipayCertPath);//调用getPublicKey从支付宝公钥证书中提取公钥 $aop->apiVersion = '1.0'; $aop->signType = 'RSA2'; $aop->postCharset='utf-8'; $aop->format='json'; $aop->isCheckAlipayPublicCert = true;//是否校验自动下载的支付宝公钥证书,如果开启校验要保证支付宝根证书在有效期内 $aop->appCertSN = $aop->getCertSN($appCertPath);//调用getCertSN获取证书序列号 $aop->alipayRootCertSN = $aop->getRootCertSN($rootCertPath);//调用getRootCertSN获取支付宝根证书序列号 $request = new \AlipayUserCertifyOpenQueryRequest (); $data['certify_id'] = $certify_id; $tosign=json_encode($data); $request->setBizContent($tosign); $result = $aop->execute ( $request); $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response"; $resultCode = $result->$responseNode->passed; if($resultCode == 'T'){ return true; } else { return false; } } public static function initVerify2($temp) { global $config; $res = []; $res['name'] = $temp['name']; $res['id_code'] = $temp['id_code']; $c = new \AopClient; $c->gatewayUrl = "https://openapi.alipay.com/gateway.do"; $c->appId = $config['alipay2']['app_id']; $c->rsaPrivateKey = $config['alipay2']['private_key'] ; $c->format = "json"; $c->charset= "utf-8"; $c->signType= "RSA2"; $c->alipayrsaPublicKey = $config['alipay2']['public_key']; //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.open.public.template.message.industry.modify $request = new \AlipayUserCertifyOpenInitializeRequest(); //$request = new AlipayUserCertifyOpenInitializeRequest (); //TODO 官方这个地方写错了,应该用下面的代码才能实现 //SDK已经封装掉了公共参数,这里只需要传入业务参数 //此次只是参数展示,未进行字符串转义,实际情况下请转义 $newsigndata=array(); $newsigndata['outer_order_no']=md5(time()); $newsigndata['biz_code']="FACE"; $newsigndata['identity_param']['identity_type']="CERT_INFO"; $newsigndata['identity_param']['cert_type']="IDENTITY_CARD"; $newsigndata['identity_param']['cert_name']=$res['name']; $newsigndata['identity_param']['cert_no']= $res['id_code']; $newsigndata['merchant_config']['return_url']="https://juip.com/User/Index?realname=true"; $newsigndata['face_contrast_picture']="xydasf=="; $tosign=json_encode($newsigndata); $request->setBizContent($tosign); $result= $c->execute($request); $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response"; $resultCode = $result->$responseNode->code; $certify_id = $result->$responseNode->certify_id; if(!empty($resultCode)&&$resultCode == 10000){ $request = new \AlipayUserCertifyOpenCertifyRequest (); $data['certify_id'] = $certify_id; $tosign=json_encode($data); $request->setBizContent($tosign); $result = $c->pageExecute($request,"GET"); $res['certifyId'] = $certify_id; $res['url'] = $result; return $res; } else { return false; } } public static function getResult2($certify_id) { //-------------------------------- global $config; $aop = new \AopClient (); $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do'; $aop->appId = $config['alipay2']['app_id'];; $aop->rsaPrivateKey = $config['alipay2']['private_key'] ; $aop->apiVersion = '1.0'; $aop->signType = 'RSA2'; $aop->postCharset='utf-8'; $aop->format='json'; $aop->alipayrsaPublicKey = $config['alipay2']['public_key']; $request = new \AlipayUserCertifyOpenQueryRequest (); $data['certify_id'] = $certify_id; $tosign=json_encode($data); $request->setBizContent($tosign); $result = $aop->execute ( $request); $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response"; $resultCode = $result->$responseNode->passed; if($resultCode == 'T'){ return true; } else { return false; } // $resultCode = $result->$responseNode->passed; // if($resultCode == 'T'){ // return true; // } else { // return false; // } } }