Maison  >  Article  >  développement back-end  >  Exemple de code PHP - solution générale pour l'impression de formulaires électroniques

Exemple de code PHP - solution générale pour l'impression de formulaires électroniques

不言
不言original
2018-04-24 14:49:495284parcourir

Le contenu de cet article concerne la solution générale pour l'impression de formulaires électroniques avec des exemples de code PHP. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

La logistique, la livraison express, le commerce électronique, l'ERP, l'entreposage, etc. impliquent tous des activités de livraison et nécessitent tous d'utiliser l'impression de factures électroniques. Il existe sur le marché diverses imprimantes de factures électroniques, logiciels d'impression de factures électroniques et outils d'impression de factures électroniques. répondre aux besoins d'impression, mais il ne peut pas bien répondre à l'impression mobile. Voici une solution générale pour l'impression de formulaires électroniques sur téléphone portable : Impression en nuage de formulaires électroniques Kuaibao Ses avantages : Il n'y a aucune restriction sur le modèle et la marque de l'imprimante, et elle peut imprimer pour tous les principaux. sociétés express Formulaire électronique, vous pouvez imprimer le formulaire électronique Cainiao, prendre en charge l'impression par lots, prendre en charge l'impression à distance, réaliser le partage d'imprimante de formulaire électronique, etc.


1. Introduction à l'impression cloud

L'impression cloud de documents électroniques Kuaibao connecte les imprimantes thermiques ordinaires au cloud en un seul clic et fournit une gestion d'imprimante encapsulée, l'envoi de tâches d'impression, la mise à jour de l'état des tâches et d'autres interfaces, aidant les développeurs à développer en une journée une interface entièrement fonctionnelle. et un programme d'impression de formulaires électroniques mobile facile à utiliser est développé. Il présente les fonctionnalités suivantes :

1. Accès simple : les imprimantes ordinaires sont connectées au cloud partagé mobile

2. Requête extrêmement rapide : l'impression peut être effectuée avec une seule requête http<.>

3. Personnalisation extrêmement rapide : Posséder le logiciel d'impression de formulaires électroniques en une demi-journée


2. Comment l'utiliser impression cloud

Kuaibao Cloud Printing comprend 6 API, qui sont utilisées dans différents scénarios et ont différentes interfaces selon le processus utilisé par le logiciel


Pour utiliser l'impression cloud, vous devez effectuer la préparation suivante :
云打印API列表
接口名称 接口描述
注册云打印机 将开发者账号与云打印机关联
删除云打印机 解除开发者账号与云打印机关联
发送打印任务 给云打印机发送打印任务
获取云打印机列表 获取开发者账号已经关联的云打印机信息
查询打印任务详情 获取某个打印任务信息
获取云打印机信息 获取某个云打印机信息


Étapes pour utiliser l'API d'impression cloud, vous pouvez choisir l'API à connecter en fonction de l'entreprise spécifique :



3. Docking de la technologie d'impression cloud (en prenant PHP comme exemple)

Nom de l'interface : cloud.print.do

Adresse formelle : https://kop.kuaidihelp. com/api

Méthode de requête : HTTP POST

Format d'encodage de la méthode de requête : utf-8

Paramètres de requête publique :


ID utilisateur (attribué lors de l'inscription à la plateforme ouverte, affichage dans la console) tr>
Name Type Est-ce nécessaire Description
名称 类型 是否必须 描述
method string API接口名称
app_id string 用户ID(注册开放平台时分配,在控制台中查看)
sign string 按照规则(md5(app_id + method + ts + api_key))生成的验证合法性签名
ts string 当前请求的时间戳
data string JSON格式请求参数设置
méthode
string Oui Nom de l'interface API
app_id td> string Oui
sign chaîne Oui Suivez la signature de légalité de vérification générée par la règle (md5(app_id + method + ts + api_key))
ts string Oui L'horodatage de la requête actuelle
data string Oui Paramètres des paramètres de demande de format JSON

Paramètres de réponse publique


名称 类型 是否必须 描述
code int 响应状态码。0-成功,非0-失败
msg string 返回结果说明
uid string 本次请求唯一业务流水号
data string JSON格式响应数据

Paramètres de la demande


<.>string est le nom de la personne qui imprime If. c'est un vendeur, il peut inclure le numéro de téléphone portable (facultatif)chaîne est Remarques (facultatif) string est Nom de l'article (facultatif) Informations du destinataireAdresse du destinataireProvince destinataireNom du comté destinataireNom de la ville destinataire
Nom Type Est-ce obligatoire Description
agent_id string est le numéro d'imprimante cloud
action string est identifiant de méthode (print.json.cn)
print_type string est 1 : ordre inférieur 2 : impression 3 : inférieur commande et impression (Facultatif, par défaut 3, si défini dans la tâche, le paramètre dans la tâche prévaudra)
lot string est s'il s'agit d'un lot
print_data chaîne est données d'impression
séquence chaîne est le nombre actuel/total de , la valeur par défaut est 1/1
template_id string est l'identifiant du modèle voir les détails
cp_code string est la marque express
pickup_code string est le code de retrait (facultatif)
print_type string est 1 : ordre inférieur 2 : impression 3 : ordre inférieur et impression (facultatif, 3 par défaut)
user_name
note
goods_name
poids chaîne est poids de l'article (facultatif)
tid string est (il est recommandé d'utiliser un identifiant unique tel que le numéro de commande, ce champ sera renvoyé lors de la soumission et du rappel , formulaire de candidature Ce champ sera également utilisé lorsque le numéro de commande est
adresse chaîne est
province string est
district string est
ville chaîne est
détail chaîne est adresse détaillée du destinataire
mobile la chaîne est le téléphone portable du destinataire
nom chaîne est nom du destinataire
téléphone string est la ligne fixe du destinataire
routing_info string est la informations de routage express
consolidation chaîne est informations sur l'emplacement du colis
nom chaîne est le nom du lieu de collecte
origine chaîne est société de points de routage
code chaîne est le numéro d'entreprise du point de routage
nom chaîne est le numéro d'entreprise du point de routage nom
route_code chaîne est deux ou trois paragraphes
sortation string est gros caractères et un paragraphe de code
name string est le nom de en grosses lettres
l'expéditeur chaîne envoie des informations
adresse chaîne est adresse de l'expéditeur
province chaîne est la province de expéditeur
district string est le nom du comté de l'expéditeur
city string est le nom de la ville de l'expéditeur
detail string est l' adresse détaillée de l'expéditeur
mobile chaîne est téléphone portable de l'expéditeur
nom chaîne est le nom de l'expéditeur
téléphone string est le numéro de téléphone fixe de l'expéditeur
waybill_code la chaîne est le numéro de lettre de transport

Paramètres de réponse


名称 类型 是否必须 描述
status string 状态
task_id string 此次请求任务ID

Prend en charge l'accès à 6 langages dont Java, C#, Python, PHP, Node.js, Curl, etc. Les prises suivantes PHP à titre d'exemple. Montrez l'exemple de code Envoyer la tâche de demande.

1. Tâche d'impression unique, exemple de demande

$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"=>&#39;50001&#39;,
"method"=>&#39;cloud.print.do&#39;,
"sign"=>"bdf3b5f50865ac813cbdfd6c9b572b79",
"ts"=>&#39;1524209949&#39;,
"data"=>&#39;{		
			"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"
			}
			}&#39;
];
$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. Tâche d'impression par lots, exemple de demande

$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"=>&#39;50001&#39;,
"method"=>&#39;cloud.print.do&#39;,
"sign"=>"bdf3b5f50865ac813cbdfd6c9b572b79",
"ts"=>&#39;1524209949&#39;,
"data"=>&#39;{
    "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"
  }
]

}&#39;
];
$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. La source du numéro de commande configurée dans la « Micro Express Small Mailbox » (compte officiel WeChat) obtient automatiquement le numéro de commande, le modèle d'impression et l'exemple d'informations d'acheminement

$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"=>&#39;50001&#39;,
"method"=>&#39;cloud.print.do&#39;,
"sign"=>"bdf3b5f50865ac813cbdfd6c9b572b79",
"ts"=>&#39;1524209949&#39;,
"data"=>&#39;{
    "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": "" //留空!留空!留空!
  }


}&#39;
];
$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));


-la fin-

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:expression régulière phpArticle suivant:expression régulière php