<?php
/**
 * 生成的交易号
 *
 * @author sun
 */
class PaymentTransactionId {
    
    public function __construct() {

    }
    
    /**
     * 按照规定的格式显示，不足的补0
     * @param int $value 值
     * @param int $length 长度
     * @return string
     */
    public static function formatValue($value, $length) {
        return sprintf("%0{$length}d", $value);
    }
    
    /**
     * 随机产生的订单号后四位数
     * 1-9999
     */
    public static function randValue() {
        return rand(1, 9999);
    }
    
    /**
     * 获取某个产品的交易号
     * @param string $wayAlias 产品别号
     * @return string
     */
    public static function getTransactionId($wayAlias) {
        $housebeanWay = new PaymentHousebeanWay();
        //类型代号
        $type = $housebeanWay->getTypeByWayAlias($wayAlias);
        $formatType = self::formatValue($type, 2);
        //随机数
        $randValue = self::formatValue(self::randValue(), 4);
        //订单号
        return time() . $formatType . $randValue;
    }
}
