支付宝支付

  1. 支付SDK下载

  2. 我的应用列表

  3. 手机支付文档

  4. 电脑支付文档

  5. 验签工具下载

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

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

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

  9. 支付宝支付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 = 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 = 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 = 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);
    
@耿志环 2012-∞ 冀ICP备17033181号, powered by Gitbook修订: 2019-07-08 16:49:59

results matching ""

    No results matching ""