PHP
function generateCustomUPC($product_type, $manufacturer_code, $product_code): string
{
// 将商品类型、厂商代码和商品代码转换为字符串
$product_type = (string)$product_type;
$manufacturer_code = (string)$manufacturer_code;
$product_code = (string)$product_code;
// 确保厂商代码和商品代码的长度为5位
$manufacturer_code = str_pad($manufacturer_code, 5, '0', STR_PAD_LEFT);
$product_code = str_pad($product_code, 5, '0', STR_PAD_LEFT);
// 计算校验码
$upcs = $product_type . $manufacturer_code . $product_code;
$odd_sum = array_sum([$upcs[0], $upcs[2], $upcs[4], $upcs[6], $upcs[8], $upcs[10]]);
$even_sum = array_sum([$upcs[1], $upcs[3], $upcs[5], $upcs[7], $upcs[9]]);
$check_digit = (10 - (($odd_sum * 3 + $even_sum) % 10)) % 10;
// 返回UPC码
return $upcs . $check_digit;
}
Python
def generate_upc(product_type, manufacturer_code, product_code):
# 将商品类型、厂商代码和商品代码转换为字符串
product_type = str(product_type)
manufacturer_code = str(manufacturer_code)
product_code = str(product_code)
# 确保厂商代码和商品代码的长度为5位
manufacturer_code = manufacturer_code.zfill(5)
product_code = product_code.zfill(5)
# 计算校验码
upcs = product_type + manufacturer_code + product_code
odd_sum = sum([int(upcs[i]) for i in range(0, 11, 2)])
even_sum = sum([int(upcs[i]) for i in range(1, 11, 2)])
check_digit = (10 - ((odd_sum * 3 + even_sum) % 10)) % 10
# 返回UPC码
return upcs + str(check_digit)