Maison >développement back-end >tutoriel php >Exemple de code PHP - solution générale pour l'impression de formulaires électroniques
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
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
接口名称 | 接口描述 |
---|---|
注册云打印机 | 将开发者账号与云打印机关联 |
删除云打印机 | 解除开发者账号与云打印机关联 |
发送打印任务 | 给云打印机发送打印任务 |
获取云打印机列表 | 获取开发者账号已经关联的云打印机信息 |
查询打印任务详情 | 获取某个打印任务信息 |
获取云打印机信息 | 获取某个云打印机信息 |
É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 :
Name | Type | Est-ce nécessaire | Description | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
string | Oui | Nom de l'interface API | ||||||||||||||||||||||||
app_id td> | string | Oui | ID utilisateur (attribué lors de l'inscription à la plateforme ouverte, affichage dans la console) tr>|||||||||||||||||||||||||
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
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) | <.>|
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) | ||
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"=>'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. 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"=>'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. 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"=>'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));
-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!