我已经集成了UPS航运API在我的网站,允许用户创建航运标签,并采取打印出来,
标签已创建,用户也可以打印标签,但标签正在生成,这基本上是一个图像文件,是从代码返回,我正在使用,但我也想添加公司标志上,请让我知道我怎么做。
- 下面是我用来创建标签的代码
function create_shipping_label($shipping_digest) {
// SHIP ACCEPT REQUEST
$xmlRequest1 = '<?xml version = "1.0″ encoding = "ISO-8859-1″?>
<AccessRequest>
<AccessLicenseNumber>' . UPS_ACCESS_LICENCE_NUMBER . '</AccessLicenseNumber>
<UserId>' . UPS_USERNAME . '</UserId>
<Password>' . UPS_PASSWORD . '</Password>
</AccessRequest>
<?xml version = "1.0″ encoding = "ISO-8859-1″?>
<ShipmentAcceptRequest>
<Request>
<TransactionReference>
<CustomerContext>Customer Comment</CustomerContext>
</TransactionReference>
<RequestAction>ShipAccept</RequestAction>
<RequestOption>1</RequestOption>
</Request>
<ShipmentDigest>' . $shipping_digest . '</ShipmentDigest>
</ShipmentAcceptRequest>
';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, PREFIX."ups.com/ups.app/xml/ShipAccept");
// uncomment the next line if you get curl error 60: error setting certificate verify locations
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
// uncommenting the next line is most likely not necessary in case of error 60
// curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlRequest1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3600);
$xmlResponse = curl_exec($ch); // SHIP ACCEPT RESPONSE
$xml = $xmlResponse;
preg_match_all("/\<ShipmentAcceptResponse\>(.*?)\<\/ShipmentAcceptResponse\>/s", $xml, $bookblocks);
foreach ($bookblocks[1] as $block) {
preg_match_all("/\<GraphicImage\>(.*?)\<\/GraphicImage\>/", $block, $author); // GET LABEL
preg_match_all("/\<TrackingNumber\>(.*?)\<\/TrackingNumber\>/", $block, $tracking); // GET TRACKING NUMBER
// ( $author[1][0] . "\n" );
}
return '<img id="shipping_label_image" src="data:image/gif;base64,' . $author[1][0] . '"/>';
}
1条答案
按热度按时间carvr3hs1#
由于您使用的是激光标签,您只需要返回附加的HTML,公司图像位于运输标签图像的上方或下方。