>  기사  >  백엔드 개발  >  PHP 코드 예제 - 전자 양식 인쇄를 위한 일반 솔루션

PHP 코드 예제 - 전자 양식 인쇄를 위한 일반 솔루션

不言
不言원래의
2018-04-24 14:49:495283검색

이 기사에서는 PHP 코드 예제를 사용하여 전자 청구서 인쇄에 대한 일반적인 솔루션을 소개합니다. 이제는 필요한 친구가 참조할 수 있습니다.

물류 및 특급 배송, ERP, 창고업 및 기타 관련 운송업에서는 인쇄 요구 사항을 충족하기 위해 다양한 전자 청구서 프린터, 전자 청구서 인쇄 소프트웨어, 전자 청구서 인쇄 도구가 시중에 나와 있지만 모바일 인쇄를 충족하는 것은 그리 좋지 않습니다. . 휴대폰 전자 청구서 인쇄를 위한 일반적인 솔루션은 다음과 같습니다: Kuaibao 전자 청구서 클라우드 인쇄 장점: 프린터 모델 및 브랜드에 제한이 없으며 모든 주요 택배 회사의 전자 청구서를 인쇄할 수 있습니다. Cainiao 전자 청구서 얼굴 양식은 일괄 인쇄, 원격 인쇄 및 전자 얼굴 양식 프린터 공유를 지원합니다.


1. 클라우드 프린팅 소개

Kuaibao 전자 양식 클라우드 프린팅은 원클릭으로 일반 감열식 프린터를 클라우드에 연결하고 패키지화된 프린터 관리 및 인쇄 작업 등의 인터페이스를 제공합니다. 전송 및 작업 상태 업데이트는 개발자가 하루 만에 완전한 기능을 갖추고 사용하기 쉬운 모바일 전자 양식 인쇄 프로그램을 개발하는 데 도움이 됩니다.

1. 미니멀한 액세스: 일반 프린터가 모바일 공유 클라우드에 연결됩니다.

2. 매우 빠른 요청: 단 한 번의 http 요청으로 인쇄가 완료됩니다.

3. 매우 빠른 사용자 정의: 전자 양식. 인쇄 소프트웨어는 반나절 안에 사용할 수 있습니다


2. 클라우드 프린팅 사용 방법

Kuaibao Cloud Printing에는 6개의 API가 포함되어 있으며, 이는 다양한 시나리오에서 사용되며 사용 프로세스에 따라 다른 인터페이스를 갖습니다. 소프트웨어


클라우드 프린팅 API 목록
인터페이스 이름 인터페이스 설명
클라우드 프린터 등록 클라우드 프린터에 개발자 계정 연결
삭제 클라우드 프린터 개발자 계정 연결 해제 클라우드 프린터 사용
인쇄 작업 보내기 클라우드 프린터로 인쇄 작업 보내기
클라우드 프린터 목록 가져오기 개발자 계정과 연결된 클라우드 프린터 정보 가져오기
인쇄 작업 세부정보 쿼리 특정 인쇄 작업 정보 가져오기
클라우드 프린터 정보 가져오기 클라우드 프린터 정보 가져오기

클라우드 인쇄를 사용하려면 다음을 준비해야 합니다.


도크 준비
준비사항 비고
전자서식프린터 브랜드, 기종 제한 없음
클라우드 프린팅 에이전트 프로그램 설치 (다운로드 주소 : http://ckd.so/ydy) win 7 and 위 시스템은 Mac 시스템은 지원하지 않습니다
획득한 Kuaidi Open Platform 개발자 계정 정보(ID 및 API Key) Kuaidi Open Platform(http://open.kuaidihelp.com/)에 등록하면 얻을 수 있습니다.

클라우드 프린팅 API를 사용하는 단계, 특정 비즈니스에 따라 연결할 API를 선택할 수 있습니다:



3. 클라우드 프린팅 기술 도킹(예: PHP)

인터페이스 이름: cloud.print.do

공식 주소: https://kop.kuaidihelp.com/api

요청 방법: HTTP POST

요청 방법 인코딩 형식: utf-8

공개 요청 매개변수:


이름 유형 필요 여부 설명
method string is API 인터페이스 이름
app_id 문자열 입니다. 사용자 ID(오픈 플랫폼 등록 시 할당, 콘솔에서 확인)
sign string 규칙에 따라 생성된 검증 적법성 서명입니다(md5(app_id + 메소드 + ts + api_key) ))
ts string 현재 요청의 타임스탬프입니다.
data string JSON 형식 요청 매개변수입니다. 설정

공개 응답 매개변수


Name Type 필수인가요? Description
code int 응답 상태 코드입니다. 0-성공, 0-실패
msg string Yes 결과 설명 반환
uid string Yes The 이 요청에 대한 유일한 비즈니스 흐름 물 number
data string JSON 형식 응답 데이터
입니다.

요청 매개변수


입니다.
Name Type 필수인가요 Description
agent_id string 클라우드 프린터 번호
action string 메소드 식별자(print.json.cn)입니다.
print_type string 1: 하단 순서 2: 인쇄 3: 하단 순서 및 인쇄입니다. 3, 작업 내 설정이 우선합니다)
batchstring 배치
print_datastring입니다. 은(는) 인쇄 데이터
시퀀스 string 현재/전체, 기본값은 1/1
template_id string 템플릿 ID 세부정보 보기
cp_code string 익스프레스 브랜드입니다.
pickup_code string 픽업 코드(선택 사항)
입니다. print_ type string 1입니다. : 하단순서 2: 인쇄 3: 하단순서 및 인쇄 (선택, 기본값 3)
user_name string 은 인쇄하는 사람의 이름, 영업사원인 경우. 휴대폰 번호 포함 가능(선택)
notestring yes note(선택)
goods_namestring 아이템 이름( 선택사항)
weight string item Weight(선택 사항)
tid string 입니다(주문 번호와 같은 고유 식별자를 사용하는 것이 좋습니다. 제출 및 콜백 시 사용됩니다. 이 필드를 반환하세요. 이 필드는 주문 번호 신청 시에도 사용됩니다.)
recipient string is recipient information
주소 string is 받는 사람 주소
province string is 받는 지방
district string 수혜 카운티입니다. 클래스 이름
city string 수신 도시 이름
입니다.Detail string is 수신자 상세 주소
mobile string is 수신자 휴대폰
name string 은(는) 수신자입니다. 이름
phone string 수신자 유선
routing_info string 입니다 특급 라우팅 정보
통합 string is jibao 토지 정보
name string is jibao 토지 이름
origin string 라우팅 아웃렛입니다. 회사
code string is 라우팅 네트워크 회사 번호
name string is 라우팅 네트워크 회사 번호 이름
route_code string 두 개 또는 세 개의 문단
sortation string 큰 문자와 한 문단의 코드
name 문자열 의 이름입니다. 큰 글자로
sender string 보내는 메시지
주소 string 입니다. 보내는 사람 주소
province string 발신자 지역
입니다.District string 발신자의 카운티 이름
city string 발신자의 도시 이름
detail 문자열 발신인의 상세 주소
mobile string 발신인의 휴대폰
이름 string입니다. 이(가) 보냄 사람 이름
phone string 발신자 유선전화
waybill_code string 운송장 번호

응답 매개변수


Name Type 필수인가요? Description
status string status
task_id 문자열 이 요청 작업 ID

는 Java, C#, Python, PHP, Node.js, Curl 및 기타 6개 언어 액세스를 지원합니다. 다음은 요청 보내기 작업을 보여주기 위한 예로 PHP를 사용합니다. 코드 예시 .

1. 단일 인쇄 작업, 요청 예시

$host = "https://kop.kuaidihelp.com/api";
$method = "POST";
$headers = array();
//根据API的要求,定义相对应的Content-Type
array_push($headers, "Content-Type".":"."application/x-www-form-urlencoded; charset=UTF-8");
$querys = "";
$bodys = [
"app_id"=>'50001',
"method"=>'cloud.print.do',
"sign"=>"bdf3b5f50865ac813cbdfd6c9b572b79",
"ts"=>'1524209949',
"data"=>'{		
			"action":"print.json.cn(菜鸟标准格式JSON)", //
			"agent_id":"目标打印代理", //必填
			"print_type":"打印类型", //1:预览, 2:打印, 3:打印预览. 未设置则默认为3.(任务内设置,则以任务内设置为准)
			"batch":"", //字符串"true"或者bool值 true则为批量,其他值则为非批量 是否为批量
			"print_data": {
				"sequence": "1/1", //可选,打印文档当前序列:当前/总数,默认1/1
				"template_id": "模板id",
				"cp_code": "快递品牌(提供模板id,此字段会被忽略)",//参照“快递品牌列表”,兼容菜鸟和快宝品牌编码
				"pickup_code": "取件码(可选)",
				"print_type": "1:底单 2:打印 3:底单和打印.(可选,默认3)",
				"user_name": "打印人的名称,若是业务员,可包括手机号码(可选)",
				"note": "备注(可选)",
				"goods_name": "物品名(可选)",
				"weight": "物品重量(可选)",
				"tid": "(建议用订单号之类的唯一标识,提交和回调时将返回该字段, 申请单号时也将使用该字段当订单号)",
				"recipient": {
					"address": {
					"city": "宁德市",
					"detail": "哦里咯啦咯啦",
					"district": "福鼎市",
					"province": "福建省"
					},
					"mobile": "13344556677",
					"name": "XXX",
					"phone": ""
				},
				"routing_info": {
					"consolidation": {"name": "温州转福鼎包(集包名)"},
					"origin": {"code": "610025","name": "四川邛崃公司"},
					"route_code": "009 030(二三段码)",
					"sortation": {"name": "福鼎351(大字 一段码)"}
				},
			"sender": {
				"address": {
					"city": "成都市",
					"detail": "兴民街55号",
					"district": "邛崃市",
					"province": "四川省"
				},
				"mobile": "13344556677",
				"name": "XXX",
				"phone": ""
			},
			"waybill_code": "333333333333"
			}
			}'
];
$bodys = http_build_query($bodys);
$url = $host;
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_FAILONERROR, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, true);
if (1 == strpos("$".$host, "https://"))
{
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
}
curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys);
var_dump(curl_exec($curl));

2. 일괄 인쇄 작업, 요청 예시

$host = "https://kop.kuaidihelp.com/api";
$method = "POST";
$headers = array();
//根据API的要求,定义相对应的Content-Type
array_push($headers, "Content-Type".":"."application/x-www-form-urlencoded; charset=UTF-8");
$querys = "";
$bodys = [
"app_id"=>'50001',
"method"=>'cloud.print.do',
"sign"=>"bdf3b5f50865ac813cbdfd6c9b572b79",
"ts"=>'1524209949',
"data"=>'{
    "action":"print.json.cn(菜鸟标准格式JSON)", //
    "agent_id":"目标打印代理", //必填
    "print_type":"打印类型", //1:预览, 2:打印, 3:打印预览. 未设置则默认为3.(任务内设置,则以任务内设置为准)
    "batch":"", //字符串"true"或者bool值 true则为批量,其他值则为非批量 是否为批量
    "print_data":  [
  {
    "cod_amount": 200, //如果是货到付款服务,则使用该字段
    "sequence": "1/1", //可选,打印文档当前序列:当前/总数,默认1/1
    "template_id": "模板id",
    "cp_code": "快递品牌",//参照“快递品牌列表”,兼容菜鸟和快宝品牌编码
    "pickup_code": "取件码(可选)",
    "print_type": "1:底单 2:打印 3:底单和打印.(可选,默认3)",
    "user_name": "打印人的名称,若是业务员,可包括手机号码(可选)",
    "note": "备注(可选)",
    "goods_name": "物品名(可选)",
    "weight": "物品重量(可选)",
    "tid": "(建议用订单号之类的唯一标识,提交和回调时将返回该字段, 申请单号时也将使用该字段当订单号)",
    "recipient": {
      "address": {
        "city": "宁德市",
        "detail": "哦里咯啦咯啦",
        "district": "福鼎市",
        "province": "福建省"
      },
      "mobile": "13344556677",
      "name": "XXX",
      "phone": ""
    },
    "routing_info": {
      "consolidation": {
        "name": "温州转福鼎包(集包名)"
      },
      "origin": {
        "code": "610025",
        "name": "四川邛崃公司"
      },
      "route_code": "009 030(二三段码)",
      "sortation": {
        "name": "福鼎351(大字 一段码)"
      }
    },
    "sender": {
      "address": {
        "city": "成都市",
        "detail": "兴民街55号",
        "district": "邛崃市",
        "province": "四川省"
      },
      "mobile": "13344556677",
      "name": "XXX",
      "phone": ""
    },
    "waybill_code": "333333333333"
  }
]

}'
];
$bodys = http_build_query($bodys);
$url = $host;
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_FAILONERROR, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, true);
if (1 == strpos("$".$host, "https://"))
{
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
}
curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys);
var_dump(curl_exec($curl));

3. "Micro Express Mailbox"(WeChat 공용 계정)에 구성된 추적 번호 소스와 결합하여 자동으로 가져옵니다. 추적 번호, 인쇄 템플릿, 라우팅 정보 예시

$host = "https://kop.kuaidihelp.com/api";
$method = "POST";
$headers = array();
//根据API的要求,定义相对应的Content-Type
array_push($headers, "Content-Type".":"."application/x-www-form-urlencoded; charset=UTF-8");
$querys = "";
$bodys = [
"app_id"=>'50001',
"method"=>'cloud.print.do',
"sign"=>"bdf3b5f50865ac813cbdfd6c9b572b79",
"ts"=>'1524209949',
"data"=>'{
    "action":"print.json.cn(菜鸟标准格式JSON)", //
    "agent_id":"目标打印代理", //必填
    "print_type":"打印类型", //1:预览, 2:打印, 3:打印预览. 未设置则默认为3.(任务内设置,则以任务内设置为准)
    "batch":"", //字符串"true"或者bool值 true则为批量,其他值则为非批量 是否为批量
    "print_data":  {
  "cod_amount": 200, //如果是货到付款服务,则使用该字段
  "sequence": "1/1", //可选,打印文档当前序列:当前/总数,默认1/1
  "template_id": "模板id",
  "cp_code": "快递品牌(提供模板id,此字段会被忽略)",//参照“快递品牌列表”,兼容菜鸟和快宝品牌编码
  "pickup_code": "取件码(可选)",
  "print_type": "1:底单 2:打印 3:底单和打印.(可选,默认3)",
  "user_name": "打印人的名称,若是业务员,可包括手机号码(可选)",
  "note": "备注(可选)",
  "goods_name": "物品名(可选)",
  "weight": "物品重量(可选)",
  "tid": "(建议用订单号之类的唯一标识,提交和回调时将返回该字段, 申请单号时也将使用该字段当订单号)",
  "sender": {
      "address": {
          "province": "江西省",
          "city": "赣州市",
          "district": "寻乌县",
          "detail": "寻乌县"
      },
      "mobile": "13344556677",
      "phone": "",
      "name": "XXX"
  },
  "recipient": {
      "address": {
          "province": "江西省",
          "city": "宜春市",
          "district": "袁州区",
          "detail": "秀江外滩电13栋"
      },
      "mobile": "13344556677",
      "phone": "",
      "name": "XXX"
  },
  "routing_info": {},
  "waybill_code": "" //留空!留空!留空!
  }


}'
];
$bodys = http_build_query($bodys);
$url = $host;
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_FAILONERROR, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, true);
if (1 == strpos("$".$host, "https://"))
{
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
}
curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys);
var_dump(curl_exec($curl));


-끝-

위 내용은 PHP 코드 예제 - 전자 양식 인쇄를 위한 일반 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:PHP 정규 표현식다음 기사:PHP 정규 표현식