Signature.php 928 Bytes
<?php

namespace WebPlugin\Pay;

/**
 * 接口签名
 */
class Signature
{
    /**
     * 排序参数
     * @param array $package
     * @return array
     */
    static function packageSort(array $package)
    {
        ksort($package);
        reset($package);
        return $package;
    }

    /**
     * 组合签名
     * @param array $package
     * @return string
     */
    static function makeSign(array $package)
    {
        $packageList = array();
        foreach ($package as $key => $val) {
            $packageList[] = trim($key . '=' . $val);
        }
        return strtolower(md5(implode('&', $packageList)));
    }

    /**
     * 校验签名
     * @param $submitSign
     * @param $makeSign
     * @return bool
     */
    static function verifySign($submitSign, $makeSign)
    {
        return strtolower($submitSign) == strtolower($makeSign);
    }
}