日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

PHP e签宝电子签名Saas API 对接流程

發(fā)布時(shí)間:2023/12/4 综合教程 86 生活家
生活随笔 收集整理的這篇文章主要介紹了 PHP e签宝电子签名Saas API 对接流程 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  • 一、流程
  • 二、我們再熟悉下接口中這幾個(gè)字段的意思
    • 1、accountId
    • 2、orgId
    • 3、fileId
    • 4、templateId
    • 5、flowId
    • 6、回調(diào)通知接收說明
  • 三、Demo文檔
    • 1、官網(wǎng)提供的官網(wǎng)文檔
    • 2、Demo下載
    • 3、Demo中的調(diào)用Demo
    • 4、根據(jù)Demo自己封裝簽署方法
    • 5、sdk使用
  • 四、最簡單的接口調(diào)用順序
  • 五、需要注意的點(diǎn)
    • 1、創(chuàng)建個(gè)人簽署賬號接口,證件包含小寫的 x
    • 2、文件上傳接口,文件名格式
    • 3、業(yè)務(wù)碼字段并不都是 code,也可能是 errCode
    • 4、方法不存在
    • 5、簽署章子位置的設(shè)置
    • 6、接口請求統(tǒng)一處理,封裝一個(gè)方法統(tǒng)一請求
  • 六、寫在最后

一、流程

寫在前面:希望大家通過這篇文章,對e簽寶電子簽名有一個(gè)比較全面的認(rèn)識,不至于拿到API文檔就蒙圈了,開發(fā)語言這里以 PHP為例,其他語言的可以在 Demo 鏈接中去下載。接口封裝沒問題,官方已經(jīng)給了sdk,就是需要捋一下流程。

大致的流程:把合同上傳到e簽寶,e簽寶會返回給我們 fileId,用戶或者企業(yè)簽名或者蓋章(簽名蓋章的位置可以設(shè)置:頁碼;x軸坐標(biāo),左下角為原點(diǎn);y軸坐標(biāo),左下角為原點(diǎn)),會生成一個(gè)簽名的地址,用戶/企業(yè)打開就能夠簽名,里面有拒簽操作。用戶觸發(fā)了不同的狀態(tài)就會有不同的回調(diào) action

  • 開發(fā)前必讀
環(huán)境 域名 公網(wǎng)IP 端口
正式生產(chǎn)環(huán)境 https://openapi.esign.cn 118.31.181.75 443
沙箱模擬環(huán)境 https://smlopenapi.esign.cn 114.55.17.44 443
  • e簽寶.文檔中心-公有云文檔-電子簽名SaaS API標(biāo)準(zhǔn)版-電子簽名 SaaS API 標(biāo)準(zhǔn)版產(chǎn)品介紹

  • e簽寶.文檔中心-公有云文檔-電子簽名SaaS API標(biāo)準(zhǔn)版-接口交互時(shí)序圖

二、我們再熟悉下接口中這幾個(gè)字段的意思

1、accountId

  • 個(gè)人賬號id,合同簽署的時(shí)候可以選擇你的名字的這個(gè)簽名或者自己手動寫。

2、orgId

  • 機(jī)構(gòu)賬號id,合同簽署的時(shí)候簽名要用到。

3、fileId

  • 文件ID,用于簽署的PDF文件
  • 來源:可以自己直接上傳,根據(jù)文件的后綴判斷是否需要轉(zhuǎn)pdf文件,再上傳,注意接口的這2個(gè)參數(shù):contentTypeconvert2Pdf。e簽寶.文檔中心-公有云文檔-電子簽名SaaS API標(biāo)準(zhǔn)版-API文檔-文件上傳
  • 也可以自己生成模板文件之后再上傳。PDF模板文件3種制作說明文檔
  • 查詢文件上傳狀態(tài):查看所上傳文件的當(dāng)前狀態(tài),本接口支持輪詢。當(dāng)接口返回的 文件狀態(tài) status 值為 2 或 5 時(shí),此文件才可以被正常添加到簽署流程中。
  • 查詢PDF文件詳情:查看所上傳文件的當(dāng)前狀態(tài)、文件名稱、文件大小和下載鏈接,本接口不支持輪詢。當(dāng)接口返回的 文件狀態(tài) status 值為 2 或 5 時(shí),此文件才可以被正常添加到簽署流程中或下載PDF文件。

4、templateId

  • 模板ID,可執(zhí)行 添加控件、刪除控件 操作,模板內(nèi)容確定后可調(diào) 填充內(nèi)容生成PDF 接口 生成合同文件。

5、flowId

  • 流程id,發(fā)起一個(gè)簽署流程生成的id
  • 可根據(jù)該id 查詢流程的進(jìn)度 簽署流程查詢,查詢 流程簽署人列表
  • 流程結(jié)束后執(zhí)行 流程文檔下載,生成了最終的流程數(shù)據(jù)。

6、回調(diào)通知接收說明

  • 還有我們最關(guān)心的,流程回調(diào) 回調(diào)通知接收說明, 回調(diào)地址在 一步發(fā)起簽署 接口中的 flowConfigInfo[‘noticeDeveloperUrl’]
  • 響應(yīng)e簽寶回調(diào)通知:當(dāng)收到e簽寶的回調(diào)通知后,開發(fā)者返回介于200~299的HTTP狀態(tài)碼給e簽寶,e簽寶均認(rèn)為推送成功。建議返回給e簽寶的響應(yīng)Body數(shù)據(jù)格式如下:{"code":"200","msg":"success"}
  • 我們根據(jù)回調(diào)路徑中的 action參數(shù)來判斷事件類型,如下:
Action事件類型 Action事件名稱(點(diǎn)擊查看具體描述)對應(yīng)的業(yè)務(wù)操作(點(diǎn)擊查看具體描述)
SIGN_FLOW_UPDATE 簽署人簽署完成
SIGN_FLOW_FINISH 流程結(jié)束
SIGN_DOC_EXPIRE_REMIND 流程文件過期前提醒
SIGN_DOC_EXPIRE 流程文件過期
BATCH _ ADD _ WATERMARK _ REMIND 文件添加數(shù)字水印完成
FEEDBACK_SIGNERINFO 簽署人申請修改身份信息
PROCESS_HANDOVER 經(jīng)辦人轉(zhuǎn)交簽署任務(wù)
WILL_FINISH 意愿認(rèn)證完成
PARTICIPANT_MARKREAD 簽署人已讀
FILE_ABNORMAL_REMIND 文件已加密/已損壞通知
  • php回調(diào)中接收參數(shù)并響應(yīng)Demo
    //數(shù)據(jù)回調(diào)業(yè)務(wù)處理public function callback() {
//        $data = '{"action":"SIGN_FLOW_UPDATE","flowId":"11111113a466442abbce094c9368ac7c","accountId":"22XXXe2a","authorizedAccountId":"33XXXe3a","signTime":"2019-07-24 19:33:06","order":1,"signResult":2,"thirdOrderNo":"cust0001","resultDescription":"簽署完成","timestamp":1563967986960,"thirdPartyUserId":"A34006"}';$data = file_get_contents('php://input'); // php://input 是個(gè)可以訪問請求的原始數(shù)據(jù)的只讀流。當(dāng)請求方式是post,并且Content-Type不等于”multipart/form-data”時(shí),可以使用php://input來獲取原始請求的數(shù)據(jù)。return self::callbackService($data);}/*** 務(wù)處理:實(shí)際使用中把該函數(shù)放到service中* @param $data* @return array 結(jié)果數(shù)組*/public function callbackService($data){$result = false;$data = json_decode($data, true);$action = isset($data['action']) ? $data['action'] : ''; //標(biāo)記該通知的業(yè)務(wù)類型if ($action) {switch ($action) {case 'SIGN_DOC_EXPIRE': //流程文件過期 回調(diào)通知$flowId = $data['flowId']; //流程id$fileId = $data['fileId']; //文件ID,多文檔已逗號分隔$timestamp = $data['timestamp']; //時(shí)間戳/*** TODO 在這里處理我們的業(yè)務(wù),操作我們的數(shù)據(jù)表,視情況是否加上數(shù)據(jù)表回滾操作*/$result = true;break;case 'SIGN_FLOW_UPDATE': //簽署人簽署完成回調(diào)通知$result = true;break;case "SIGN_FLOW_FINISH": //簽署流程結(jié)束 回調(diào)通知$flowId = $data['flowId']; //流程ID$flowStatus = $data['flowStatus']; //流程狀態(tài): 2 - 已完成: 所有簽署人完成簽署;3 - 已撤銷: 發(fā)起方撤銷簽署任務(wù);5 - 已過期: 簽署截止日到期后觸發(fā);7 - 已拒簽。/*** 在我們的數(shù)據(jù)表處理該邏輯,改變我們數(shù)據(jù)表的狀態(tài),備注,更新時(shí)間 等字段~* TODO 業(yè)務(wù)... 在這里處理我們的業(yè)務(wù),操作我們的數(shù)據(jù)表,視情況是否加上數(shù)據(jù)表回滾操作*/$result = true;break;}}//開發(fā)者返回介于200~299的HTTP狀態(tài)碼給e簽寶,e簽寶均認(rèn)為推送成功。//建議返回給e簽寶的響應(yīng)Body數(shù)據(jù)格式如下:{"code":"200","msg":"success"}if ($result) {$ret = ['code' => '200',  'msg' => 'success'];} else {$ret = ['code' => '0', 'msg' => 'error'];}return json_encode($ret, JSON_UNESCAPED_UNICODE); //數(shù)組轉(zhuǎn)json字符串}

三、Demo文檔

1、官網(wǎng)提供的官網(wǎng)文檔

  • Demo下載
  • Demo下載-請點(diǎn)擊進(jìn)入此鏈接后按需下載。

2、Demo下載

  • 我選擇 PHP語言DEMO - 請求簽名鑒權(quán)方式 81KB 下載
  • 我下載后放到了百度網(wǎng)盤,有需要的可前往下載 鏈接:https://pan.baidu.com/s/1i42ruPO4wR9MJmf7DUrV2g 提取碼:ty79

3、Demo中的調(diào)用Demo

  • b2cDemo.php 文件詳情
<?phpuse factory\base\Account;
use factory\base\FileTemplate;
use factory\base\Seals;
use factory\base\SignFile;
use factory\bean\Doc;
use factory\bean\FlowInfo;
use factory\bean\PosBean;
use factory\bean\Signer;
use factory\bean\SignerAccount;
use factory\bean\Signfield;
use factory\Factory;header("Content-type:text/html;charset=utf-8");
include("../eSignOpenAPI.php");
//此示例為企業(yè)和個(gè)人場景的簽署示例代碼,簽署方式為一步發(fā)起簽署,如果需要分步簽署,簽署部分代碼示例可參考b2bDemo
var_dump("--------------------------初始化 start----------------------------");
$host="https://smlopenapi.esign.cn";//請求網(wǎng)關(guān)host
$project_id="";//應(yīng)用id
$project_scert="";//密鑰
Factory::init($host,$project_id,$project_scert);
Factory::setDebug(true);//是否開啟日志記錄,傳true或false,日志存放在根目錄的phplog.txt文件
//-----------------基礎(chǔ)信息初始化 end--------------------------
var_dump("--------------------------初始化 end----------------------------");$filePath="D:\\IDEAproject\\PdfFile\\dstPdf\\qianshu.pdf";//文件地址if(!is_file($filePath)){echo '文件不存在';exit;}//-----------------------個(gè)人賬號信息用于創(chuàng)建個(gè)人賬號接口傳入-----------------------------$thirdPartyUserIdPsn="1232133232";//thirdPartyUserId參數(shù),用戶唯一標(biāo)識,自定義保持唯一即可$namePsn="";//name參數(shù),姓名$idTypePsn="CRED_PSN_CH_IDCARD";//idType參數(shù),證件類型$idNumberPsn="";//idNumber參數(shù),證件號$mobilePsn="";//mobile參數(shù),手機(jī)號//------------------------企業(yè)賬號信息用于創(chuàng)建機(jī)構(gòu)賬號接口傳入----------------$thirdPartyUserIdOrg="1212312312312";//thirdPartyUserId參數(shù),用戶唯一標(biāo)識,自定義保持唯一即可$nameOrg="杭州天谷";//name參數(shù),機(jī)構(gòu)名稱$idTypeOrg="CRED_ORG_USCC";//idType參數(shù),證件類型$idNumberOrg="";//idNumber參數(shù),機(jī)構(gòu)證件號var_dump("------------------ 創(chuàng)建個(gè)人賬號 start -----------------");
$createPsn = Account::createPersonByThirdPartyUserId($thirdPartyUserIdPsn,$namePsn,$idTypePsn,$idNumberPsn);
$createPsn->setMobile($mobilePsn);
$createPsnResp = $createPsn->execute();//execute方法發(fā)起請求
$createPsnJson = json_decode($createPsnResp->getBody());
$accountId = $createPsnJson->data->accountId;//生成的個(gè)人賬號保存好,后續(xù)接口調(diào)用需要使用
var_dump("------------------ 創(chuàng)建個(gè)人賬號 end ---------------");var_dump("------------------ 創(chuàng)建企業(yè)賬號 start ---------------");
$createOrg = Account::createOrganizationsByThirdPartyUserId($thirdPartyUserIdOrg,$accountId,$nameOrg,$idTypeOrg,$idNumberOrg
);
$createOrgResp = $createOrg->execute();
$createOrgJson=json_decode($createOrgResp->getBody());
$orgId=$createOrgJson->data->orgId;
var_dump("------------------ 創(chuàng)建企業(yè)賬號 end ---------------");var_dump("------------------ 通過上傳方式創(chuàng)建文件 start -----------------");
$contentBase64Md5 = UtilHelper::getContentBase64Md5($filePath);
$filesize = filesize($filePath);
$fileContent = file_get_contents($filePath);
$getFileUploadUrl = FileTemplate::getFileUploadUrl($contentBase64Md5, "application/pdf", false, "測試合同.pdf", $filesize);
$getFileUploadUrlResp = $getFileUploadUrl->execute();
$getFileUploadUrlJson = json_decode($getFileUploadUrlResp->getBody());
$fileId = $getFileUploadUrlJson->data->fileId;//文件id保存好,后續(xù)使用
$uploadUrl = $getFileUploadUrlJson->data->uploadUrl;//上傳url保存好,后續(xù)使用
var_dump("------------------ 通過上傳方式創(chuàng)建文件 end -----------------");var_dump("------------------ 文件流上傳方法 start -----------------");
$uploadFile = FileTemplate::uploadFile($filePath, "application/pdf", $uploadUrl);
$uploadFileResp = $uploadFile->execute();
var_dump($uploadFileResp->getBody());
var_dump("------------------ 文件流上傳方法 end -----------------");var_dump("------------------ 一步發(fā)起簽署 start -----------------");
$doc = new Doc();
$doc->setFileId($fileId);
$docs = array($doc);
$flowInfo = new FlowInfo();
$flowInfo->setBusinessScene("b2c合同簽署測試")->setAutoArchive(true)//自動歸檔->setAutoInitiate(true);//自動開啟流程
$psnSignfield = new Signfield();
$posBean = new PosBean();
$psnSignfield->setFileId($fileId)->setPosBean($posBean->setPosPage(1)->setPosX(113)->setPosY(225));
$psnSignfields = array($psnSignfield);//構(gòu)造個(gè)人signfields參數(shù)對象$orgSignfield = new Signfield();
$posBean = new PosBean();
$orgSignfield->setFileId($fileId)->setPosBean($posBean->setPosPage(1)->setPosX(224)->setPosY(334))->setActorIndentityType(2);//機(jī)構(gòu)簽署必傳
$orgSignfields = array($orgSignfield);//構(gòu)造個(gè)人signfields參數(shù)對象$signerpsn = new Signer();
$signerAccount1 = new SignerAccount();
$signerAccount1->setSignerAccountId($accountId);
$signerpsn->setSignerAccount($signerAccount1)->setSignfields($psnSignfields);;//傳入個(gè)人signer信息$signerorg = new Signer();
$signerA1ccount2 = new SignerAccount();
$signerA1ccount2->setSignerAccountId($accountId)->setAuthorizedAccountId($orgId);
$signerorg->setSignerAccount($signerA1ccount2)->setSignfields($orgSignfields);//傳入企業(yè)signer信息$signers = array($signerpsn, $signerorg);//$createFlowOneStep = SignFile::createFlowOneStep($docs, $flowInfo, $signers);
$flowOneStepResp = $createFlowOneStep->execute();
$flowOneStepJson = json_decode($flowOneStepResp->getBody());
$flowId = $flowOneStepJson->data->flowId;//流程id保存好
var_dump("------------------ 一步發(fā)起簽署 end -----------------");var_dump("------------------ 獲取簽署地址 start -----------------");
$getFileSignUrl = SignFile::getFileSignUrl($flowId, $accountId);
$getFileSignUrl->setOrganizeId($orgId);
$getFileSignUrlResp = $getFileSignUrl->execute();
$getFileSignUrlJson = json_decode($getFileSignUrlResp->getBody());
$shortUrl = $getFileSignUrlJson->data -> shortUrl;
var_dump("簽署短連接,復(fù)制到瀏覽器打開\n".$shortUrl);
var_dump("------------------ 獲取簽署地址 end -----------------");

4、根據(jù)Demo自己封裝簽署方法

  • 流程發(fā)起簽署API:$flowInfo配置參數(shù)如下:一步發(fā)起簽署
    //簽署:企業(yè)對個(gè)人public function oneStepB2C($data){$accountId = $data['account_id']; //個(gè)人賬號id$orgId = $data['org_id']; //企業(yè)賬號id$fileId = $data['file_id']; //文件id$businessScene = $data['business_scene']; //任務(wù)主題//查詢模板文件詳情$fileInfo = self::filePDFDetail($data);$pdfTotalPages = $fileInfo['pdfTotalPages']; //給最后一頁設(shè)置個(gè)人或者公司的蓋章區(qū)域//設(shè)置簽署區(qū)域的坐標(biāo) x軸坐標(biāo),左下角為原點(diǎn);y軸坐標(biāo),左下角為原點(diǎn)$posPersonX = 470;$posOrganizeX = 130;$posY = 150;$doc = new Doc();$doc->setFileId($fileId);$docs = array($doc);//流程配置$flowConfigInfo = ['noticeDeveloperUrl' => $this->callbackUrl, //回調(diào)地址:https://www.xxxxapi.com/esaas/businessCallback];$flowInfo = new FlowInfo();$flowInfo->setBusinessScene($businessScene)->setAutoArchive(true)//自動歸檔->setAutoInitiate(true)//自動開啟流程->setFlowConfigInfo($flowConfigInfo);$signValidity = 0; //簽署有效截止日期,毫秒,默認(rèn)不失效;注:超過簽署有效截止時(shí)間,則無法繼續(xù)簽署。若該參數(shù)設(shè)置的時(shí)間到期,則會觸發(fā)【流程結(jié)束回調(diào)通知】if ($signValidity > 0) {$flowInfo->setSignValidity($signValidity);}$psnSignfield = new Signfield();$posBean = new PosBean();$psnSignfield->setFileId($fileId)->setPosBean($posBean->setPosPage($pdfTotalPages)->setPosX($posPersonX)->setPosY($posY)); //設(shè)置蓋章區(qū)域:頁碼;x軸坐標(biāo),左下角為原點(diǎn);y軸坐標(biāo),左下角為原點(diǎn)$psnSignfields = array($psnSignfield); //構(gòu)造個(gè)人signfields參數(shù)對象$signerpsn = new Signer();$signerAccount1 = new SignerAccount();$signerAccount1->setSignerAccountId($accountId);$signerpsn->setSignerAccount($signerAccount1)->setSignfields($psnSignfields); //傳入個(gè)人signer信息$orgSignfield = new Signfield();$posBean = new PosBean();$orgSignfield->setFileId($fileId)->setPosBean($posBean->setPosPage($pdfTotalPages)->setPosX($posOrganizeX)->setPosY($posY)) //設(shè)置蓋章區(qū)域:頁碼;x軸坐標(biāo),左下角為原點(diǎn);y軸坐標(biāo),左下角為原點(diǎn)->setActorIndentityType(2); //機(jī)構(gòu)簽署必傳$orgSignfields = array($orgSignfield);//構(gòu)造機(jī)構(gòu)signfields參數(shù)對象$signerorg = new Signer();$signerA1ccount2 = new SignerAccount();$signerA1ccount2->setSignerAccountId($accountId)->setAuthorizedAccountId($orgId);$signerorg->setSignerAccount($signerA1ccount2)->setSignfields($orgSignfields); //傳入企業(yè)signer信息$signers = array($signerpsn, $signerorg);//$createFlowOneStep = SignFile::createFlowOneStep($docs, $flowInfo, $signers);$flowResult = self::execResponse($createFlowOneStep);$flowId = $flowResult['flowId']; //流程id保存好$getFileSignUrl = SignFile::getFileSignUrl($flowId, $accountId);$getFileSignUrl->setOrganizeId($orgId);$result = self::execResponse($getFileSignUrl);/*** TODO 加入自己的邏輯操作:保存到自己的數(shù)據(jù)庫*/return [$flowResult, $result];}//簽署:個(gè)人public function oneStepC($data){$accountId = $data['account_id']; //個(gè)人賬號id$fileId = $data['file_id']; //文件id$businessScene = $data['business_scene']; //任務(wù)主題//查詢模板文件詳情$fileInfo = self::filePDFDetail($data);$pdfTotalPages = $fileInfo['pdfTotalPages']; //給最后一頁設(shè)置個(gè)人或者公司的蓋章區(qū)域//設(shè)置簽署區(qū)域的坐標(biāo) x軸坐標(biāo),左下角為原點(diǎn);y軸坐標(biāo),左下角為原點(diǎn)$posPersonX = 470;$posY = 150;$doc = new Doc();$doc->setFileId($fileId);$docs = array($doc);//流程配置$flowConfigInfo = ['noticeDeveloperUrl' => $this->callbackUrl, //回調(diào)地址:https://www.xxxxapi.com/esaas/businessCallback];$flowInfo = new FlowInfo();$flowInfo->setBusinessScene($businessScene)->setAutoArchive(true)//自動歸檔->setAutoInitiate(true)//自動開啟流程->setFlowConfigInfo($flowConfigInfo);$signValidity = 0; //簽署有效截止日期,毫秒,默認(rèn)不失效;注:超過簽署有效截止時(shí)間,則無法繼續(xù)簽署。若該參數(shù)設(shè)置的時(shí)間到期,則會觸發(fā)【流程結(jié)束回調(diào)通知】if ($signValidity > 0) {$flowInfo->setSignValidity($signValidity);}$psnSignfield = new Signfield();$posBean = new PosBean();$psnSignfield->setFileId($fileId)->setPosBean($posBean->setPosPage($pdfTotalPages)->setPosX($posPersonX)->setPosY($posY)); //設(shè)置蓋章區(qū)域:頁碼;x軸坐標(biāo),左下角為原點(diǎn);y軸坐標(biāo),左下角為原點(diǎn)$psnSignfields = array($psnSignfield); //構(gòu)造個(gè)人signfields參數(shù)對象$signerpsn = new Signer();$signerAccount1 = new SignerAccount();$signerAccount1->setSignerAccountId($accountId);$signerpsn->setSignerAccount($signerAccount1)->setSignfields($psnSignfields); //傳入個(gè)人signer信息$signers = array($signerpsn);//$createFlowOneStep = SignFile::createFlowOneStep($docs, $flowInfo, $signers);$flowResult = self::execResponse($createFlowOneStep);$flowId = $flowResult['flowId']; //流程id保存好$getFileSignUrl = SignFile::getFileSignUrl($flowId, $accountId);$result = self::execResponse($getFileSignUrl);/*** TODO 加入自己的邏輯操作:保存到自己的數(shù)據(jù)庫*/return [$flowResult, $result];}/*** 統(tǒng)一執(zhí)行接口數(shù)據(jù)* @param mixed $requestObject 對象 use Identity\factory\request\EsignRequest;* @param mixed $codeName 業(yè)務(wù)碼字段名* @return array*/public function execResponse(EsignRequest $requestObject, $codeName = 'code'){$executeObject = $requestObject->execute();//execute方法發(fā)起請求$resultJson = $executeObject->getBody(); //獲取結(jié)果json數(shù)據(jù)//記錄日志$log = json_encode($_REQUEST, JSON_UNESCAPED_UNICODE) . PHP_EOL . $resultJson; //記錄REQUEST數(shù)據(jù),換行,并記錄 響應(yīng)數(shù)據(jù)Log::write($log); //日志記入 use think\facade\Log;$result = json_decode($resultJson, true); //json轉(zhuǎn)arrayif ($result[$codeName] != $this->successCode) { //根據(jù)狀態(tài)碼判斷結(jié)果throw new BaseException($result['message']);}//返回data數(shù)據(jù)$data = isset($result['data']) ? $result['data'] : []; //刪除等操作時(shí),data為nullreturn $data;}

5、sdk使用

  • sdk使用的話,根據(jù)自己的目錄存放位置,來選擇是否需要添加命名空間

四、最簡單的接口調(diào)用順序

我這里說的最簡單是指,我們不通過調(diào)用模板接口操作模板文件數(shù)據(jù)(模板接口里的參數(shù)太復(fù)雜了)
咱們這里就用一個(gè)只需要簽署用戶姓名,企業(yè)姓名 的合同,則接口的調(diào)用順序如下:

  • 1、創(chuàng)建個(gè)人簽署賬號 對應(yīng)的 修改 查詢 注銷 接口也可以封裝一下(accountId, thirdPartyUserId 二選一)
  • 2、創(chuàng)建機(jī)構(gòu)簽署賬號 對應(yīng)的 修改 查詢 注銷 接口也可以封裝一下(orgId, thirdPartyUserId 二選一)
  • 3、文件上傳 對應(yīng)的 查詢文件上傳狀態(tài)(當(dāng)接口返回的 文件狀態(tài) status 值為 2 或 5 時(shí),此文件才可以被正常添加到簽署流程中。)查詢PDF文件詳情(當(dāng)接口返回的 文件狀態(tài) status 值為 2 或 5 時(shí),此文件才可以被正常添加到簽署流程中或下載PDF文件) 也可以封裝一下
  • 4、針對模板的操作,跳過
  • 5、選擇一步發(fā)起簽署,這個(gè)接口里可以配置回調(diào):具體的代碼請參考 Demo文件中的 b2cDemo.php
  • 6、回調(diào)操作:通過 action 判斷回調(diào)的類型,具體請參考我上面的:回調(diào)通知接收說明
  • 7、PDF文件驗(yàn)簽:這一步看情況
  • 8、回調(diào)如果簽署成功,則 流程文檔下載 歸檔,會返回文檔地址字段 fileUrl, 有效時(shí)間1小時(shí);該鏈接建議只用于下載,不要直接預(yù)覽;可以給用戶查看簽署后的文件。
  • 說明:這里面的步驟我們需要設(shè)計(jì)數(shù)據(jù)表存儲e簽寶數(shù)據(jù),需要有我們的數(shù)據(jù)交互,請根據(jù)接口的 請求、返回?cái)?shù)據(jù) 自行設(shè)計(jì)數(shù)據(jù)表。

五、需要注意的點(diǎn)

1、創(chuàng)建個(gè)人簽署賬號接口,證件包含小寫的 x

  • 1、thirdPartyUserId 創(chuàng)建個(gè)人賬號的唯一標(biāo)識:我們需要保證參數(shù)的唯一性,并且能關(guān)聯(lián)上用戶,否則一個(gè)用戶會一直創(chuàng)建賬戶~
  • 2、idNumber 證件號:身份證中有X字母的,需要傳入大寫的X。需要代碼處理一下:strtoupper($data['id_number']);

2、文件上傳接口,文件名格式

  • fileName 文件名稱:格式問題 文件名稱不支持以下9個(gè)字符:
文件名稱(必須帶上文件擴(kuò)展名,不然會導(dǎo)致后續(xù)發(fā)起流程校驗(yàn)過不去 示例:合同.pdf );
注意:
(1)該字段的文件后綴名稱和真實(shí)的文件后綴需要一致。比如上傳的文件類型是word文件,那該參數(shù)需要傳“xxx.docx”,不能是“xxx.pdf”
(2)該字段建議直接傳入pdf文件,其他類型文件建議本地自行轉(zhuǎn)換成pdf,避免通過接口格式轉(zhuǎn)換引起的格式錯(cuò)誤、耗時(shí)久等問題。
(3)文件名稱不支持以下9個(gè)字符:/ \ : * " < > | ?

3、業(yè)務(wù)碼字段并不都是 code,也可能是 errCode

  • 文件上傳 步驟二 文件流上傳,返回的 是 errCode 不是 code,這個(gè)需要注意一下

4、方法不存在

  • 如果有缺失的方法,自己可以按照官方的sdk自行增加php文件,他這里一個(gè)PHP文件是對應(yīng)一個(gè)接口,然后在一個(gè)php文件中調(diào)用這些php文件。SDK封裝方式和京東一樣,很靈活。
  • 注意:我們自定義的文件最好取一個(gè)不會重復(fù)的文件名,加上你的筆名后綴啥的(比如 QryPdfDetailZSF.php),如果更新官方文檔,被覆蓋了就很尷尬了。

5、簽署章子位置的設(shè)置

  • 通過 setPosPage()setPosX()setPosY() 設(shè)置://設(shè)置蓋章區(qū)域:頁碼;x軸坐標(biāo),左下角為原點(diǎn);y軸坐標(biāo),左下角為原點(diǎn)
  • demo 如下
$orgSignfield = new Signfield();
$posBean = new PosBean();
$orgSignfield->setFileId($fileId)->setPosBean($posBean->setPosPage(1)->setPosX(224)->setPosY(334))->setActorIndentityType(2);//機(jī)構(gòu)簽署必傳
$orgSignfields = array($orgSignfield);//構(gòu)造個(gè)人signfields參數(shù)對象

6、接口請求統(tǒng)一處理,封裝一個(gè)方法統(tǒng)一請求

  • 接口請求都是執(zhí)行execute(),getBody()方法,我們不需要每次都調(diào)用。結(jié)合第三個(gè)問題,封裝一個(gè)方法。
    /*** 通過accountId查詢個(gè)人簽署賬號* @return array*/public function qryPersonByaccountId(){$account = Account::qryPersonByaccountId($_REQUEST['account_id']); //use Identity\factory\base\Account;$result = self::execResponse($account);/*** TODO 與自己的數(shù)據(jù)庫交互*/return $result;}/*** 統(tǒng)一執(zhí)行接口數(shù)據(jù)* @param mixed $requestObject 對象 use Identity\factory\request\EsignRequest;* @param mixed $codeName 業(yè)務(wù)碼字段名* @return array*/public function execResponse(EsignRequest $requestObject, $codeName = 'code'){$executeObject = $requestObject->execute();//execute方法發(fā)起請求$resultJson = $executeObject->getBody(); //獲取結(jié)果json數(shù)據(jù)//記錄日志$log = json_encode($_REQUEST, JSON_UNESCAPED_UNICODE) . PHP_EOL . $resultJson; //記錄REQUEST數(shù)據(jù),換行,并記錄 響應(yīng)數(shù)據(jù)Log::write($log); //日志記入 use think\facade\Log;$result = json_decode($resultJson, true); //json轉(zhuǎn)arrayif ($result[$codeName] != $this->successCode) { //根據(jù)狀態(tài)碼判斷結(jié)果die($result['message']); //根據(jù)你的實(shí)際情況寫}//返回data數(shù)據(jù)$data = isset($result['data']) ? $result['data'] : []; //刪除等操作時(shí),data為nullreturn $data;}

六、寫在最后

  • 這篇文章僅供大家參考,歡迎各位大佬指出問題~

總結(jié)

以上是生活随笔為你收集整理的PHP e签宝电子签名Saas API 对接流程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

在线免费视频一区 | 中文视频在线看 | 国产中文自拍 | 久久一视频 | 精品999在线 | 国产免费久久av | 青春草免费在线视频 | 亚洲精品国精品久久99热 | 色姑娘综合网 | 中文字幕日韩电影 | 中文字幕视频播放 | 免费的国产精品 | 天天干天天碰 | 亚洲无人区小视频 | 欧美xxxxx在线视频 | 看全黄大色黄大片 | 91香蕉久久 | 日本精品视频一区二区 | 中文字幕精品一区二区精品 | 91精品麻豆 | 在线观看黄av | 日韩理论片在线 | 国产一区高清在线 | 日本h在线播放 | 久久精品日本啪啪涩涩 | 在线观看完整版免费 | 日韩在线视频二区 | 久免费视频 | www.狠狠插.com | 国产精品v a免费视频 | 国产成人99av超碰超爽 | 欧美成人tv | 日日摸日日碰 | 免费成人在线网站 | 激情视频网页 | 国产精品黄色在线观看 | 国产男女无遮挡猛进猛出在线观看 | 国内99视频 | 日韩免费在线一区 | 欧美日韩精品在线观看视频 | 日韩美女久久 | 国产精品免费久久久 | 国产精品99久久久久 | 国产淫片免费看 | 97韩国电影| 婷婷激情在线观看 | 2023av在线| 一区国产精品 | 日韩欧美在线免费 | 欧美在线视频免费 | 久久伊人五月天 | 这里只有精品视频在线观看 | 在线色视频小说 | 亚洲国产中文字幕 | 国产手机在线视频 | 中文字幕高清视频 | 黄色aaa毛片 | 日韩免费一级a毛片在线播放一级 | 五月激情久久 | 国产精品免费视频久久久 | 97超碰资源 | 在线视频久 | 中文字幕精 | 国产精品ssss在线亚洲 | 国产自产在线视频 | 国产精品免费久久久久久久久久中文 | 亚洲视频免费在线观看 | 久久久精品二区 | 精品在线99 | 国产原创在线 | av一本久道久久波多野结衣 | 国产精品婷婷午夜在线观看 | av黄网站| 96亚洲精品久久久蜜桃 | 久久成人精品电影 | 国产精品九色 | 久久私人影院 | 久久躁日日躁aaaaxxxx | 五月婷婷激情五月 | 涩av在线 | 亚洲一区精品二人人爽久久 | av中文字幕在线看 | 中文字幕日韩有码 | 精品视频网站 | 国产精品初高中精品久久 | 久久情侣偷拍 | 91久久久久久国产精品 | 国产综合在线视频 | 中文av影院| 不卡中文字幕av | 国产精品久久久久久久av电影 | 午夜精品久久久久久99热明星 | 美女网站在线看 | 婷婷四房综合激情五月 | 在线视频1卡二卡三卡 | 一区二区欧美激情 | 九九热1 | 亚洲一级理论片 | 国产生活一级片 | 天天操夜夜操国产精品 | 91黄在线看 | 国产 中文 日韩 欧美 | 日韩欧美一区二区三区在线 | 久99久视频 | 九九九热精品免费视频观看网站 | 久久久久一区二区三区 | 日韩国产在线观看 | 国产精品美女视频网站 | 午夜免费福利视频 | 久久免费黄色大片 | 最近中文字幕在线播放 | 一区免费视频 | 亚洲精品国产精品国 | 99在线精品免费视频九九视 | 久久国产成人午夜av影院潦草 | 伊人国产视频 | 五月天伊人网 | 人人超碰人人 | 国产玖玖精品视频 | 国产在线观看污片 | 亚洲精品国产成人 | 综合色播| 天天操网站 | 九九热久久免费视频 | 亚洲精品乱码久久久久久 | 天堂在线一区二区 | 国产精品久久久久永久免费观看 | 日韩视频免费观看高清完整版在线 | 在线观看韩国av | 人人搞人人干 | 亚洲一区免费在线 | 国内99视频| 精品一区二区免费视频 | 欧美国产日韩中文 | 精品在线你懂的 | 91麻豆产精品久久久久久 | 欧美热久久 | 日批网站在线观看 | 亚洲涩综合 | 夜色资源站国产www在线视频 | 久草国产视频 | 插综合网 | 免费看黄在线观看 | 波多野结衣一区二区 | 日韩黄色免费电影 | 狠狠精品 | 一区二区三区免费在线观看 | 波多野结衣视频一区二区 | 99视频在线免费看 | 久久国产综合视频 | 国产色婷婷精品综合在线手机播放 | 国产精品午夜久久 | 国产原创在线视频 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 999久久久精品视频 日韩高清www | 国产精品中文字幕在线观看 | 黄色网在线免费观看 | 一区二区三区免费在线观看视频 | 日本激情中文字幕 | 国产h片在线观看 | 久久久免费精品国产一区二区 | 91毛片视频 | 成人a在线| 久久久久观看 | 99国内精品久久久久久久 | 色综合天天天天做夜夜夜夜做 | 久视频在线 | www.久久婷婷 | 中文字幕在线视频一区二区 | 免费在线观看av片 | 91麻豆精品国产91久久久使用方法 | 激情久久一区二区三区 | 黄污网站在线 | 久久午夜电影院 | 啪啪凸凸 | 亚洲精品乱码久久久久久蜜桃不爽 | 7777精品伊人久久久大香线蕉 | 66av99精品福利视频在线 | 免费成人在线视频网站 | 91麻豆精品国产91久久久无需广告 | 天天摸天天操天天爽 | 欧美一级片 | 综合久久五月天 | 天天干天天干天天干天天干天天干天天干 | 国产精品久久久999 国产91九色视频 | 四虎永久免费网站 | 三级av网站 | 欧美成人影音 | 激情视频一区 | 丁香五婷 | 99久久这里有精品 | 在线亚洲欧美日韩 | 超碰人人射 | aaa毛片视频 | 最近久乱中文字幕 | 国产精品自产拍在线观看中文 | 精品国产乱码一区二 | 色偷偷人人澡久久超碰69 | 国产在线不卡精品 | 中文字幕丝袜制服 | 婷婷深爱| 五月激情丁香婷婷 | 国产福利午夜 | 日韩在线电影 | 精品国产一区二区三区久久久久久 | 成人av免费 | 成人国产精品久久久 | 中文字幕国产一区二区 | 亚洲欧美日韩国产精品一区午夜 | 人人爱人人射 | 麻豆一级视频 | 国产精品视频 | 亚洲一区日韩在线 | 欧美最猛性xxxxx免费 | 91在线视频在线观看 | 欧美视频国产视频 | 超黄视频网站 | 国内揄拍国内精品 | 日日干夜夜爱 | 国产精品久久久久久久久久久久午 | 欧美精品网站 | 成人黄色在线视频 | 黄a在线看 | 亚洲永久精品在线 | 国产欧美最新羞羞视频在线观看 | 国产精品久久在线观看 | 天堂va欧美va亚洲va老司机 | 在线免费观看视频 | 日韩在线观看第一页 | 亚洲综合色站 | 日韩最新av | 久久久久久影视 | 亚洲在线成人精品 | 国产精品男女视频 | 日韩伦理一区二区三区av在线 | 免费精品视频在线 | 日韩 在线| 国产亚洲片 | 天天伊人狠狠 | 日韩资源在线播放 | 国产精品视频资源 | 久色免费视频 | 精品1区2区 | 国产精品久久久久久久久久东京 | 91.精品高清在线观看 | 欧美国产日韩久久 | 麻豆精品国产传媒 | 久久艹国产视频 | 伊人久久五月天 | 综合色亚洲 | 精品亚洲国产视频 | 国产美女在线观看 | 久久免费视频2 | 久久久精品国产一区二区 | 久久视奸 | 天天干夜夜爽 | 不卡的av在线播放 | 欧美日韩精品久久久 | 91精品久久久久久综合五月天 | 国产亚洲永久域名 | 香蕉视频国产在线观看 | 在线 你懂 | 国产成人在线网站 | 最新日韩中文字幕 | 日韩免费视频在线观看 | 在线91精品 | 欧美高清视频不卡网 | 最近中文字幕视频完整版 | 欧洲亚洲女同hd | 女人18精品一区二区三区 | 丁香婷婷激情啪啪 | 国产美女黄网站免费 | 黄色av免费电影 | 97福利 | 精品一区 在线 | www.色的| 97视频在线免费 | 日韩两性视频 | 中文字幕在线视频一区二区三区 | av电影在线观看完整版一区二区 | 免费毛片一区二区三区久久久 | 国产偷国产偷亚洲清高 | 国产午夜一区 | 亚洲精品视频在线观看视频 | 久久99国产综合精品免费 | 永久黄网站色视频免费观看w | 亚洲国产剧情 | 日韩av一卡二卡三卡 | 精品国产伦一区二区三区观看说明 | 在线观看免费 | 国产一级免费在线观看 | 欧美一级欧美一级 | 91成版人在线观看入口 | 91一区二区三区在线观看 | 国产精品一区在线观看你懂的 | 欧美一级视频在线观看 | 人人澡人人爽欧一区 | 天天操天天爽天天干 | 亚洲国产一区二区精品专区 | 亚洲一区精品二人人爽久久 | 免费av看片 | 狠狠狠狠狠狠狠干 | 成人免费xxxxxx视频 | 91视频链接 | 欧美五月婷婷 | 日韩精品一区二区免费 | 日韩精品视频免费在线观看 | 成人永久免费 | 日本最新一区二区三区 | 久久一区二区三区超碰国产精品 | 337p欧美 | 夜色资源站国产www在线视频 | 天天色天天射天天综合网 | 最近2019年日本中文免费字幕 | 欧美日韩国产精品一区 | 97在线免费视频 | 久久久久久久久久福利 | 国产精品12 | 日韩av一区二区在线影视 | www.亚洲视频 | 日韩一二区在线观看 | 久久综合久久综合久久 | 国产一区二区在线免费播放 | 国产精品美女久久久久久 | 成人av网站在线播放 | 毛片随便看 | 亚洲综合网站在线观看 | 久久精品网站免费观看 | 国产做爰视频 | 成人av片在线观看 | 人人干天天射 | 亚洲第一区在线观看 | 色94色欧美 | 久久免费视频这里只有精品 | 国产精品九九九九九九 | 国产在线观看高清视频 | 国产字幕在线看 | 黄网站a | 在线亚洲欧美日韩 | 精品国产免费一区二区三区五区 | 美女在线免费观看视频 | 射射色 | 久草在线视频中文 | 国产欧美精品xxxx另类 | 国产美女免费 | 黄色a视频 | 国产中文在线播放 | 欧美激情视频一区 | 在线观看久草 | 色a4yy| 日本三级在线观看中文字 | 久久av一区二区三区亚洲 | 黄色一及电影 | 最新国产精品拍自在线播放 | 免费看色视频 | 午夜视频99 | 亚洲精品久 | 99久高清在线观看视频99精品热在线观看视频 | 在线视频 你懂得 | www黄| 国产一区二区在线看 | av超碰在线 | 99这里只有精品视频 | 1000部18岁以下禁看视频 | 干亚洲少妇 | 日韩3区 | 久久久免费视频播放 | 久久久久99精品成人片三人毛片 | 99精品美女 | 免费色视频 | 亚洲国产精品va在线看黑人 | 精品国产免费观看 | 免费在线观看亚洲视频 | 久久精品久久精品久久39 | 久久久久久电影 | 国产视频亚洲视频 | 日韩高清一区 | 中文字幕在线看视频 | 狠狠色噜噜狠狠狠狠2022 | 免费在线激情电影 | 一级黄色在线视频 | 亚洲h视频在线 | 欧美日韩免费一区二区三区 | 亚洲视频一区二区三区在线观看 | 91精选在线 | 99视频黄| 99在线观看视频 | 午夜美女福利 | 成人久久电影 | 日韩在线国产精品 | 狠狠地操| 国产美女无遮挡永久免费 | 日韩三级视频在线观看 | 国产91精品一区二区麻豆亚洲 | 成人久久久久久久久 | 欧美日韩免费一区二区三区 | 久久精品黄 | 日日日操操 | 91福利视频免费观看 | 中文字幕在线国产精品 | 在线久久 | 日本久久高清视频 | 亚洲国产中文字幕在线视频综合 | 国产精品嫩草影视久久久 | 国产视频在线观看一区 | 中文字幕国语官网在线视频 | 爱爱av在线 | 国产成人精品免费在线观看 | 91亚洲狠狠婷婷综合久久久 | 三级av在线免费观看 | 视频精品一区二区三区 | 91视频电影| av免费在线免费观看 | 97成人精品视频在线观看 | 久久国产精品免费一区二区三区 | 天天干天天做 | 中文字幕中文字幕中文字幕 | 国产香蕉97碰碰久久人人 | 久久免费高清视频 | 久久96国产精品久久99漫画 | av免费在线看网站 | 99久久久成人国产精品 | 久久中文欧美 | h视频在线看| 久久av免费| 91香蕉视频720p | 国产香蕉视频在线观看 | 国产麻豆剧传媒免费观看 | 亚洲免费一级 | 免费日韩av电影 | 99r国产精品 | 日本久久免费视频 | 国产成人精品一区二区三区在线观看 | 黄色资源在线观看 | 国产小视频在线观看 | 激情欧美丁香 | 久久久久久久久久久网 | 免费麻豆 | 欧美精选一区二区三区 | 久久国产免费视频 | 91免费视频网站在线观看 | 婷婷免费视频 | 久久天天操 | 免费男女羞羞的视频网站中文字幕 | 一区在线免费观看 | 午夜久久久精品 | 欧美久久久一区二区三区 | 99国产在线| 日韩精品免费一区二区在线观看 | 欧美色图亚洲图片 | 日韩大片在线看 | 久久在线视频精品 | 欧美日韩色婷婷 | 日韩一区二区三区免费视频 | 97视频在线观看视频免费视频 | 日日夜夜91| 91视视频在线直接观看在线看网页在线看 | 欧美精品一区二区性色 | 91成人在线免费观看 | 国产一区二区三精品久久久无广告 | 九九热免费在线观看 | www.久久久精品 | 麻豆 91 在线 | 激情婷婷综合 | 亚洲国产中文字幕在线观看 | 久久国产片 | 国产精品国产亚洲精品看不卡 | 精品成人a区在线观看 | 欧美另类tv| 国产精品免费久久久久 | 久久精品—区二区三区 | 综合影视 | 亚洲综合激情 | 四虎影视久久久 | 天天综合视频在线观看 | 天天插狠狠插 | 97激情影院 | 国产三级国产精品国产专区50 | 五月婷婷香蕉 | 69av免费视频 | 人人艹人人 | 在线观看岛国片 | 黄色一级在线免费观看 | 亚洲午夜精 | 久久免费视频精品 | 成人av电影网址 | 四虎成人在线 | 色婷婷激情网 | 黄污网站在线观看 | 亚洲2019精品| 欧美性护士 | 国产精品久久久久久模特 | 免费亚洲电影 | 欧美福利久久 | 手机在线永久免费观看av片 | 国产又粗又猛又黄又爽的视频 | 欧美 亚洲 另类 激情 另类 | 97超碰在线免费观看 | 日本中文乱码卡一卡二新区 | 精品国产aⅴ麻豆 | 日韩精品一区二区三区免费观看视频 | 久久久久久久久久久久久久免费看 | 午夜精品一区二区三区免费 | 久久久久久国产精品久久 | 波多野结衣小视频 | 久久er99热精品一区二区 | 国产精品亚 | 国产999视频在线观看 | 免费看黄20分钟 | 日韩专区在线观看 | 精品久久久久久久久久国产 | 欧美性生交大片免网 | 久久综合免费视频 | 日本精品视频在线观看 | 日日操日日 | 日韩欧美精品在线观看 | 黄色免费大全 | 久草视频在线资源站 | 91看片在线免费观看 | 国产一级精品视频 | 涩涩网站在线观看 | av在线专区 | 香蕉影视app | 色狠狠干 | 草久久久久久久 | 欧美日韩精 | 国产91大片| 亚洲丝袜一区 | 亚洲成人精品影院 | 国产麻豆剧果冻传媒视频播放量 | 欧美精品久久久久久久免费 | 高清视频一区 | 国产一区二区高清不卡 | 久草资源在线观看 | a视频免费看 | www欧美日韩 | 毛片网站免费在线观看 | 亚洲影视资源 | 婷婷中文字幕在线观看 | 一区二区不卡高清 | 久久在线播放 | 久久国产高清 | 国产最新视频在线 | av在线免费播放网站 | 国产美女在线观看 | 中文字幕国内精品 | 精品成人久久 | 国产成人久久精品77777综合 | 中文字幕av电影下载 | 91视频亚洲 | 国产精品手机在线播放 | 国产精品久久9 | www.夜色321.com | 天天爽天天做 | 亚洲一区欧美激情 | 麻豆视频在线播放 | 成年人网站免费在线观看 | 青青草国产成人99久久 | 天堂av免费观看 | 久久视频二区 | 国产精品永久在线观看 | 五月婷婷激情综合网 | 美女视频久久黄 | 亚洲v精品 | 色网站在线免费 | 五月婷在线 | 免费日韩 | 四虎影视国产精品免费久久 | 中文字幕视频在线播放 | 深爱激情五月婷婷 | 国产成人久久精品77777 | 色综合网 | 四虎www| 九九99靖品| 久久国产91 | 国产99在线播放 | 国产+日韩欧美 | 麻豆视频在线免费 | 综合久久精品 | 丁香高清视频在线看看 | v片在线播放 | 免费在线一区二区 | 操操日 | 江苏妇搡bbbb搡bbbb | 欧美性粗大hdvideo | 午夜av电影 | 成人av在线直播 | 色先锋av资源中文字幕 | 九月婷婷色 | 亚洲精品视频免费在线 | 国模一区二区三区四区 | 亚洲精选视频免费看 | 日韩欧美专区 | 成人午夜电影网站 | 色综合久久天天 | 在线观看av国产 | 国产精品3区 | 成 人 黄 色 免费播放 | 国产一区二区在线播放视频 | 亚洲国产高清在线观看视频 | 日韩h在线观看 | 亚州精品在线视频 | 日韩在线观看av | 又黄又爽免费视频 | 一区二区视频在线看 | 六月激情网| 久久99久久精品国产 | 精品毛片一区二区免费看 | 亚洲电影一区二区 | 成人va在线观看 | 777奇米四色| 久久久精品免费观看 | 亚洲精品乱码久久久久久按摩 | 人人干天天干 | 最近日本字幕mv免费观看在线 | 91在线成人| 久久99中文字幕 | 天天干视频在线 | av一级在线 | 久草在线免费资源站 | 国产精品久久久久久久久软件 | 亚洲激情六月 | 国产精品一区二区在线观看 | 久久综合色一综合色88 | 欧美日韩性视频在线 | 在线天堂日本 | 国内视频在线 | 久久影院午夜论 | 在线日韩中文字幕 | av在线收看 | 国产精品激情在线观看 | 欧美精品乱码久久久久 | 麻豆视频免费网站 | 一区二区三区高清在线观看 | 99色精品视频 | 亚洲理论片在线观看 | 国产精品久久久一区二区 | 在线日韩| 黄色小视频在线观看免费 | 亚洲国产中文字幕 | 中文字幕在线免费看 | 中文字幕第一页在线播放 | 狠狠色丁香九九婷婷综合五月 | 亚洲丁香久久久 | 欧美国产日韩在线视频 | 干综合网 | 91av手机在线观看 | 国产成年免费视频 | www.天天操| 在线观看亚洲成人 | 人人操日日干 | 久久精品99精品国产香蕉 | 中文字幕免费观看 | 综合av在线 | 亚洲国产精品激情在线观看 | 91麻豆精品国产91久久久更新时间 | 在线一区观看 | 亚洲情感电影大片 | 在线 精品 国产 | 国产精品成人av在线 | 国产精品福利在线观看 | 粉嫩高清一区二区三区 | 九九热免费在线观看 | 亚洲一级电影 | 极品久久久 | 国产人成在线视频 | 国产精品激情在线观看 | 日韩偷拍精品 | 在线国产精品视频 | 8x成人在线 | 蜜臀av.com| 一级片视频免费观看 | 国内精品在线看 | 免费在线观看成人小视频 | 欧美专区日韩专区 | 久久中文字幕在线视频 | 国产精品theporn | 手机看片中文字幕 | 九色91在线视频 | 久久久免费毛片 | 国产日本在线观看 | avhd高清在线谜片 | 国产成视频在线观看 | 中文永久字幕 | 色就是色综合 | 国产精品美女视频 | 亚洲aⅴ乱码精品成人区 | www.在线看片.com | 国产精品v欧美精品v日韩 | 国产婷婷一区二区 | 亚洲国产字幕 | 国产精品欧美久久久久天天影视 | 黄色小说视频网站 | 欧美激情视频一二区 | 麻豆视频在线免费观看 | 欧美日一级片 | 91在线视频免费91 | 97日日碰人人模人人澡分享吧 | 国产日韩视频在线 | 日韩欧美在线综合网 | 国产区在线 | 91久久久久久国产精品 | 亚洲美女久久 | 在线观影网站 | 国产一级a毛片视频爆浆 | 国产精品女同一区二区三区久久夜 | 日韩精品欧美专区 | 国产精品18久久久久久久网站 | 国产手机精品视频 | 亚州天堂 | 国产日韩精品在线 | 中文字幕资源网 | 国产亚洲精品xxoo | 日韩av片无码一区二区不卡电影 | 午夜久久久影院 | 天天色.com | 中文字幕乱视频 | 99r国产精品 | 久章草在线观看 | 少妇高潮冒白浆 | av一级免费 | 在线免费观看黄色av | 在线 成人 | 一区二区高清在线 | 手机成人在线电影 | 99综合影院在线 | 欧美肥妇free| 国产精品美女999 | 国产精品成人免费精品自在线观看 | 在线视频 国产 日韩 | 国产精品嫩草影院99网站 | 插插插色综合 | 91在线观看欧美日韩 | 91理论片午午伦夜理片久久 | 一 级 黄 色 片免费看的 | 国产精品成人av久久 | 91视频在线观看下载 | 午夜婷婷在线观看 | 国产精品一区二区三区在线免费观看 | 日韩精品网址 | 激情婷婷综合网 | 色先锋av资源中文字幕 | 一区二区三区免费 | 中文字幕乱码亚洲精品一区 | 91精品国产99久久久久 | 黄色精品视频 | 在线免费高清一区二区三区 | 久久99精品久久久久婷婷 | 久久精彩| 亚洲最新av | 国产在线理论片 | 在线观看久久久久久 | 婷婷丁香综合 | 天天操天天爽天天干 | 丁香影院在线 | 玖玖视频精品 | 在线观看国产一区 | 日韩视频中文 | 99精品视频在线免费观看 | 成人免费看黄 | 午夜18视频在线观看 | 91日韩精品一区 | 天天插综合 | 国产欧美精品一区二区三区四区 | 久久,天天综合 | 深爱婷婷激情 | 伊人色综合久久天天 | 黄色大全免费网站 | 92中文资源在线 | 三级视频片 | 91在线看黄 | 欧美亚洲三级 | 精品国产乱码久久久久久1区二区 | 成人av电影免费在线观看 | 亚洲精品在线免费 | 亚洲伊人天堂 | 亚洲国产三级在线 | 深爱激情婷婷网 | 国产91国语对白在线 | 午夜精品成人一区二区三区 | 91av视频在线免费观看 | 欧美一区二区精品在线 | 成人久久精品视频 | 天天天射 | 欧美一区二区三区在线播放 | 国产精品毛片久久久久久 | 一区二区三区四区在线 | 国产九九九精品视频 | 麻豆视传媒官网免费观看 | 黄色福利网站 | 欧美成人一区二区 | 91精选| 中文字幕在线免费观看 | 999成人精品 | 久久久69 | 久久精品在线 | 成人午夜精品 | 手机av网站 | 国内成人av| 精品福利在线观看 | 久久亚洲免费 | 成人久久久久久久久 | www色,com | 99热最新在线| 蜜臀aⅴ国产精品久久久国产 | 国产亚洲成人网 | 97在线观看免费观看高清 | 不卡的av| 狠狠操91| 五月香婷 | 精品国自产在线观看 | 爱色婷婷| 欧美在线观看视频一区二区三区 | 麻豆视频入口 | 免费观看一区二区三区视频 | 在线观看av黄色 | 免费看短| 91精品一区二区在线观看 | 久久成人国产精品入口 | 国产 在线观看 | 在线观看免费一区 | 91成人小视频 | 四虎国产| 三级黄色理论片 | 日日麻批40分钟视频免费观看 | 日韩视频在线一区 | 日日操天天爽 | 国产区av在线 | 99视频在线看| 黄色在线看网站 | 亚洲一级黄色av | 久久久国产电影 | 66av99精品福利视频在线 | 久久av观看 | 久久99精品久久久久久三级 | 九九久久视频 | 国外调教视频网站 | 欧美精品二 | 网站你懂的 | 成人毛片一区 | 亚洲一区二区精品 | 91亚洲精| 久久精品中文字幕免费mv | 人人爱人人添 | 久久天天躁狠狠躁亚洲综合公司 | 免费色网 | 日韩欧美精品在线视频 | 99精品国产在热久久下载 | 人人爽爽人人 | 黄色一二级片 | 精品视频9999 | 美女免费网站 | 日韩资源在线观看 | 国内精品亚洲 | 天堂av在线网址 | 国产三级视频 | 国产精品久久久久永久免费 | 国产综合精品久久 | 久久综合色婷婷 | 成人av手机在线 | 日韩一二三在线 | 亚洲国产欧美在线看片xxoo | 日韩在线精品 | 国产美女视频免费观看的网站 | 中文字幕免费在线看 | 亚洲精品综合欧美二区变态 | 91免费日韩 | 成人小视频在线观看免费 | a色视频 | 午夜av一区二区三区 | 亚洲精品99久久久久久 | 久99视频 | 欧美日本一二三 | 午夜国产一区二区 | 久在线 | 国产96精品 | 永久免费精品视频网站 | 手机在线看永久av片免费 | av在线专区| 国产免费激情久久 | 日韩久久精品一区二区 | 久久天天躁夜夜躁狠狠躁2022 | 亚洲 综合 国产 精品 | 欧洲亚洲国产视频 | 亚洲视频久久久久 | 国产在线污 | 福利av影院 | 99久久一区 | 天天透天天插 | 欧美91精品国产自产 | 伊人久在线| 国产a级片免费观看 | 久久国产免费看 | 国产一线二线三线性视频 | 久草免费新视频 | 成人免费在线观看电影 | 中文字幕在线成人 | 国产精品久久电影网 | 久久国产精品第一页 | 高清av在线 | 91精品亚洲影视在线观看 | 日日躁你夜夜躁你av蜜 | 中文字幕高清有码 | 国产91精品一区二区麻豆亚洲 | 天天操天天操天天操天天操天天操天天操 | 日韩视频1区| 天堂网一区 | 国产精品手机视频 | 成人午夜电影在线 | 欧美一级片在线观看视频 | 国产裸体bbb视频 | 成人毛片在线观看 | 亚洲人成人天堂h久久 | 91chinesexxx | 江苏妇搡bbbb搡bbbb | 国产一级大片免费看 | 久久久久久久久国产 | 久久艹艹 | 中文字幕亚洲高清 | 国语精品免费视频 | 精品一区二区在线免费观看 | 国产精品一区二 | 国产九九热视频 | 国产精品久久久久久麻豆一区 | 亚洲成av人片在线观看 | 在线观看久草 | 国产精品videossex国产高清 | 国产精品18久久久 | 国产精品九色 | 国产精品久久久久久久午夜片 | 色天天综合网 | 91最新在线视频 | 天天天干天天射天天天操 | 成年人视频在线观看免费 | 五月天婷婷视频 | 一区在线电影 | 激情影院在线 | 婷婷综合av | 五月丁香 | 成人在线播放免费观看 | 五月婷婷激情综合网 | 黄色一级大片在线免费看国产一 | 69视频网站 | 日韩久久视频 | 337p日本欧洲亚洲大胆裸体艺术 | 丰满少妇一级片 | 国产无套精品久久久久久 | 一级片视频在线 | 亚洲精选国产 | 国产精品第三页 | 精品在线视频一区二区三区 | 天天射天天射天天 | 国产视频在线观看免费 | 国产一区在线视频观看 | 视频三区| 国产午夜剧场 | 国产在线美女 | 麻豆视频免费入口 | 五月婷丁香网 | 91正在播放 | 免费在线观看国产黄 | 天天射网站 | 欧美精品乱码久久久久久按摩 | 97在线观看视频国产 | 天堂中文在线播放 | 国产91精品在线播放 | 美女网站视频久久 | 日韩欧美一区二区三区视频 | 久久尤物电影视频在线观看 | 国内精品视频在线 | 97免费视频在线 | 手机av在线不卡 | 久久久久久久久久久久av | 国产精品久久久久久久久婷婷 | 国产一级电影免费观看 | 国产日韩精品一区二区 | 狠狠躁日日躁夜夜躁av | 亚洲在线| av片中文| 国产很黄很色的视频 | 亚洲精品国产精品99久久 | 婷婷香蕉 | 麻花豆传媒mv在线观看网站 | 亚洲精品在线网站 | 久久久久国产精品视频 | 久久色中文字幕 | 国产免费观看久久黄 | 色精品视频| 91精品国产高清 | 亚洲精品在线视频网站 | 91日韩免费 | 日韩成人黄色 | 国产成人一区二区三区在线观看 | 日日日爽爽爽 | av三级av| 欧美男同网站 | 久久精品国产一区二区三 | 激情综合电影网 |