当前位置: 首页 > news >正文

API之 要求接口上传pdf 以 合同PDF的二进制数据,multpart方式上传

在这里插入图片描述

实现

	   //时间戳13位毫秒
	    private function getMillisecond() {
	        list($s1,$s2) = explode(' ',microtime());
	        return (float)sprintf('%.0f',(floatval($s1) + floatval($s2)) * 1000);
	    }

		// 组装参数
		private function gysscPost1($url,$data)
        {

            // $data['timestamp'] = '1694402111964';
            $data['timestamp'] = $this->getMillisecond();
            $data['v'] = '1.0';
            $data['appKey'] = $this->appKey;
            $data['method'] = $data['method'];
            $data['token'] = $this->token;
            $data['format'] = 'json';
            $data['paramType'] = 'json';
            $contractBytes = $data['contractBytes'];   // 上传pdf的文件地址
            unset($data['contractBytes']);

            ksort($data);
            
            $data['sign'] = $sign_str;
            
            $res = $this->curl1('http://39.101.164.226:8073/openapi', $data,$contractBytes);
            $result = $this->decrypt($res);      //解密
            return $result;
        }
        
        public function curl1($url, $post,$contractBytes,$is_json = false,$aHeader='')
        {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_HEADER, false);
            curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);
            curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
            curl_setopt($ch, CURLOPT_URL, $url);
            
            // 重点是下面 传参
            $post['contractBytes']= curl_file_create($contractBytes, mime_content_type($contractBytes), time() . 'pdf');

            curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
            curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                'Content-Type: multipart/form-data',
                $aHeader
            ));

            // 返回结果
            $result = curl_exec($ch);

            if($result != false)
            {
                curl_close($ch);
                return $result;
            } else {
                $error = curl_errno($ch);
                curl_close($ch);
                return "curl出错,错误码:$error";
            }
        }
http://www.dtcms.com/a/4476.html

相关文章:

  • Pickcode:教孩子们编码的新视觉语言
  • 【机器学习】Nonlinear Independent Component Analysis - Aapo Hyvärinen
  • c# 基础语法
  • 注解案例:山寨Junit与山寨JPA
  • 合肥中科深谷嵌入式项目实战——基于ARM语音识别的智能家居系统(三)
  • 【11月比赛合集】48场可报名的数据挖掘大奖赛,任君挑选!
  • 第二十章 多线程
  • java面试-zookeeper
  • 【Linux】-进程间通信-共享内存(SystemV),详解接口函数以及原理(使用管道处理同步互斥机制)
  • 功能测试进阶建议,学习思路讲解
  • 每日一题:LeetCode-589.N叉树的前序遍历
  • Web前端—移动Web第三天(移动Web基础、rem、less、综合案例—极速问诊)
  • Zotero在word中插入带超链接的参考文献/交叉引用/跳转参考文献
  • 9 HDFS架构剖析
  • 论文阅读——DiffusionDet
  • 基于鹈鹕算法优化概率神经网络PNN的分类预测 - 附代码
  • Flink Operator 使用指南 之 全局配置
  • Unity开发之C#基础-File文件读取
  • WPF基础DataGrid控件
  • Docker Golang 开发环境搭建指南
  • 电动汽车充放电V2G模型MATLAB代码
  • 【论文阅读笔记】Deep learning for time series classification: a review
  • HTML+CSS+ElementUI搭建个人博客静态页面展示(纯前端)
  • 笔记59:序列到序列学习Seq2seq
  • 如何用 GPTs 帮你写科研项目申请书?
  • gitlab利用CI多工程持续构建
  • C/C++ 实现Windows注册表操作
  • 网络知识学习(笔记二)
  • laravel引入element-ui后,blade模板中使用elementui时,事件未生效问题(下载element-ui到本地直接引入项目)
  • QT小记:The QColor ctor taking ints is cheaper than the one taking string literals