sdk = $sdk ?: new HuifuOnboardSdk(); } public function submit(array $form, array $fileMap) { SdkLoader::requireRequest('V2UserBasicdataIndvRequest.php'); $meta = $this->sdk->newReqMeta(); $request = new \BsPaySdk\request\V2UserBasicdataIndvRequest(); $request->setReqSeqId($meta['req_seq_id']); $request->setReqDate($meta['req_date']); $request->setName($form['name']); $request->setCertType('00'); $request->setCertNo($form['cert_no']); $request->setCertValidityType($form['cert_validity_type']); $request->setCertBeginDate($form['cert_begin_date']); $request->setMobileNo($form['mobile_no']); if (!empty($form['reg_detail'])) { $request->setAddress($form['reg_detail']); } $fileList = []; if (!empty($fileMap['F02'])) { $fileList[] = [ 'file_type' => 'F02', 'file_id' => $fileMap['F02'], 'file_name' => 'id_front.jpg', ]; } if (!empty($fileMap['F03'])) { $fileList[] = [ 'file_type' => 'F03', 'file_id' => $fileMap['F03'], 'file_name' => 'id_back.jpg', ]; } $extend = []; if ($form['cert_validity_type'] === '0' && !empty($form['cert_end_date'])) { $extend['cert_end_date'] = $form['cert_end_date']; } if ($fileList) { $extend['file_list'] = json_encode($fileList, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); } if ($extend) { $request->setExtendInfo($extend); } $result = $this->sdk->getClient()->postRequest($request); $data = $this->sdk->getClient()->parseResponse($result); $huifuId = $data['huifu_id'] ?? ''; if ($huifuId === '') { throw new \RuntimeException('个人开户未返回 huifu_id'); } return [ 'req_date' => $meta['req_date'], 'req_seq_id' => $meta['req_seq_id'], 'huifu_id' => $huifuId, 'resp' => $data, ]; } }