当前位置: 首页 > 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";
            }
        }

相关文章:

  • 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 开发环境搭建指南
  • 广东早熟荔枝“抢滩”上海,向长三角消费者喊话:包甜,管够
  • 独行侠以1.8%概率获得状元签,NBA原来真的有剧本?
  • 广东韶关一镇干部冲进交通事故火海救人,获授“见义勇为”奖励万元
  • 哈马斯表示已释放一名美以双重国籍被扣押人员
  • 这一次,又被南昌“秀”到了
  • “无锡景・江南韵”:中国评弹艺术在尼日利亚收获众多粉丝