支付宝支付

  1. 作者QQ:67065435 QQ群:821635552

  2. 本站内容全部为作者原创,转载请注明出处!

常用链接

  1. 应用列表

  2. 已有功能

  3. 更多功能

  4. 密钥生成

文档大全

  1. APP支付文档

  2. 手机支付文档

  3. 电脑支付文档

  4. 验签工具下载

  5. 我的应用列表

业务流程

  1. 支付宝APP支付流程 应用

  2. 支付宝M站支付流程 手机

  3. 支付宝PC站支付流程 电脑

核心代码

  1. 支付宝支付RSA2生成sign、验证sign,PHP核心代码

    <?php
    /**
     * 对private_key进行处理
     * @param $private_key
     * @return string
     */
    function dealPrivateKey($private_key)
    {
        $private_key = chunk_split($private_key, 64, "\n");
        $private_key = "-----BEGIN RSA PRIVATE KEY-----\n$private_key-----END RSA PRIVATE KEY-----\n";
        return $private_key;
    }
    
    /**
     * 对public_key进行处理
     * @param $public_key
     * @return string
     */
    function dealPublicKey($public_key)
    {
        $public_key = chunk_split($public_key, 64, "\n");
        $public_key = "-----BEGIN PUBLIC KEY-----\n$public_key-----END PUBLIC KEY-----\n";
        return $public_key;
    }
    
    /**
     * 阿里创建签名
     * @param $data
     * @return string
     */
    function buildSign($data)
    {
        $private_key = file_get_contents(__DIR__ . '/private_key.txt');
        $private_key = trim($private_key);
        $private_key = dealPrivateKey($private_key);
        $private_key = openssl_pkey_get_private($private_key);
        openssl_sign($data, $sign, $private_key, OPENSSL_ALGO_SHA256);
        $sign = base64_encode($sign);
        return $sign;
    }
    
    /**
     * 阿里验证签名
     * @param $data
     * @param $sign
     * @return bool
     */
    function verifySign($data, $sign)
    {
        $sign = base64_decode($sign);
        $public_key = file_get_contents(__DIR__ . '/public_key.txt');
        $public_key = trim($public_key);
        $public_key = dealPublicKey($public_key);
        $public_key = openssl_pkey_get_public($public_key);
        $is_sign = openssl_verify($data, $sign, $public_key, OPENSSL_ALGO_SHA256) === 1;
        return $is_sign;
    }
    
    /**
     * 验证回调签名
     * @param $sign_str
     * @param $sign
     * @return bool
     */
    function verifyBack($sign_str, $sign)
    {
        $sign = base64_decode($sign);
        $public_key = file_get_contents(__DIR__ . '/alipay/public_app_key.txt');
        $public_key = trim($public_key);
        $public_key = dealPublicKey($public_key);
        $public_key = openssl_pkey_get_public($public_key);
        $is_sign = openssl_verify($sign_str, $sign, $public_key, OPENSSL_ALGO_SHA256) === 1;
        return $is_sign;
    }
    
    //把数据转化为json
    $data = json_encode([],JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
    //生成签名
    $sign = buildSign($data);
    //验证签名
    $is_sign = verifySign($data, $sign);
    //打印验证签名结果
    var_dump($is_sign);
    
Copyright © 豆包嘿嘿~ 2012-∞ 冀ICP备17033181号 all right reserved,powered by Gitbook修订: 21-07-05 18:01

results matching ""

    No results matching ""