微信APP统一支付二签方法

canca2年前 (2022-07-07)微信314

微信APP支付二签方法

/**
 * 2 二次签名返回给APP
 */
$signParam = array(
    'appid' => $result['appid'],
    'partnerid' => $result['mch_id'],
    'prepayid' => $result['prepay_id'],
    'package' => 'Sign=WXPay',
    'noncestr' => $wxpay->createNoncestr(),
    'timestamp' => time(),  //系统时间戳,精确到秒
);
$signParam['sign'] = $wxpay->getSign($signParam, $API_KEY);
//转JSON并返回
echo json_encode($signParam);
/**
     * 作用:产生随机字符串,不长于32位
     */
    public function createNoncestr($length = 32)
    {
        $chars = "abcdefghijklmnopqrstuvwxyz0123456789";
        $str = "";
        for ($i = 0; $i < $length; $i++) {
            $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
        }
        return $str;
    }
 /**
     * 作用:生成签名(MD5形式)
     */
    public function getSign($Obj, $api_key)
    {
        foreach ($Obj as $k => $v) {
            $Parameters[$k] = $v;
        }
        //签名步骤一:按字典序排序参数
        ksort($Parameters);
        $String = $this->formatBizQueryParaMap($Parameters, false);
        //签名步骤二:在string后加入KEY
        $String = $String . "&key=" . $api_key;
        //签名步骤三:MD5加密
        $String = md5($String);
        //签名步骤四:所有字符转为大写
        $result_ = strtoupper($String);
        return $result_;
    }


相关文章

微信支付中的p12证书提取公钥、私钥、证书、序列号等

今天做微信支付开发,然后产品给我了相应的商户号、apikey、公众号、p12证书等等。说准备工作都已经做好了,可以进行开发了。但是我看微信文档里没有提到p12证书,都是pem证书。怎么办,百度吧。&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。