欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP通過(guò)pem文件校驗(yàn)簽名異常問(wèn)題解決

 更新時(shí)間:2023年09月16日 10:10:42   作者:whynogome  
在對(duì)接第三方支付過(guò)程中,支付成功異步回調(diào)時(shí),校驗(yàn)簽名,一直無(wú)法通過(guò),最后經(jīng)過(guò)排查,是引用秘鑰文件時(shí),報(bào)錯(cuò)了,本文給大家分享PHP通過(guò)pem文件校驗(yàn)簽名異常問(wèn)題解決方法,需要的朋友可以參考下

問(wèn)題描述:

在對(duì)接第三方支付過(guò)程中,支付成功異步回調(diào)時(shí),校驗(yàn)簽名,一直無(wú)法通過(guò)。但是在支付成功時(shí)有一個(gè)同步返回也需要校驗(yàn)簽名,用的是同樣的校驗(yàn)方法,都沒(méi)有問(wèn)題。當(dāng)把回調(diào)時(shí)傳遞的參數(shù)放在postman中,手動(dòng)發(fā)起回調(diào),也可以通過(guò)簽名校驗(yàn)

最后經(jīng)過(guò)排查,是引用秘鑰文件時(shí),報(bào)錯(cuò)了,錯(cuò)誤代碼如下

public static function verify(array $data, $sign)
    {
        if (empty($data) || empty($sign)) {
            return "";
        }
        //code+msg+date+result,
        $code   = $data['code'] ?? '';
        $msg    = $data['msg'] ?? '';
        $date   = $data['date'] ?? '';
        $result = $data['result'] ?? '';
        $signString = $code . $msg . $date . $result;
		$mallbook_key_file = __DIR__.'rsa_public.pem';
        $pubKey = file_get_contents($mallbook_key_file);
        /** 此處可能會(huì)返回false **/
        $res = openssl_get_publickey($pubKey);
        $result =  openssl_verify($signString , base64_decode($sign), $res) === 1;
        openssl_free_key($res);
        return $result; 
    }

上面代碼其實(shí)是沒(méi)有問(wèn)題的,問(wèn)題出在rsa_public.pem文件的內(nèi)容,秘鑰內(nèi)容都寫在同一行了,沒(méi)有按照標(biāo)準(zhǔn)的秘鑰格式書(shū)寫,如下

在這里插入圖片描述

解決方法

第一種

按標(biāo)準(zhǔn)的秘鑰書(shū)寫格式修改秘鑰文件每行只能有64個(gè)字符,如下

在這里插入圖片描述

第二種

直接在代碼中拼接秘鑰字符串

$pubKey ='MIGfMA0GCSqGSIb3DQE***************************************
********************************************************************
***************1mwyu7RTDC8Wp7LGddnlkJsmL8masgMxA6cc9NwIDAQAB';
    $str= chunk_split($pubKey, 64, "\n");
    $key = "-----BEGIN PUBLIC KEY-----\n$str-----END PUBLIC KEY-----\n";
    $signature = base64_decode($sign);
    return openssl_verify($signString, $signature, $key, OPENSSL_ALGO_SHA1) === 1;

到此這篇關(guān)于PHP通過(guò)pem文件校驗(yàn)簽名異常的文章就介紹到這了,更多相關(guān)php em文件校驗(yàn)簽名內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • WordPress上傳圖片錯(cuò)誤:不是合法的JSON響應(yīng)解決辦法

    WordPress上傳圖片錯(cuò)誤:不是合法的JSON響應(yīng)解決辦法

    這篇文章主要給大家介紹了關(guān)于WordPress上傳圖片錯(cuò)誤:不是合法的JSON響應(yīng)的解決辦法,WordPress提示JSON錯(cuò)誤通常是由于服務(wù)器配置或插件沖突引起的,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • set_exception_handler函數(shù)在ThinkPHP中的用法

    set_exception_handler函數(shù)在ThinkPHP中的用法

    這篇文章主要介紹了set_exception_handler函數(shù)在ThinkPHP中的用法,分析了官方給出了set_exception_handler函數(shù)用法說(shuō)明及示例,并講述了在ThinkPHP中的應(yīng)用實(shí)例,需要的朋友可以參考下
    2014-10-10
  • Laravel中注冊(cè)Facades的步驟詳解

    Laravel中注冊(cè)Facades的步驟詳解

    這篇文章主要介紹了Laravel中注冊(cè)Facades的步驟,詳細(xì)分析了Laravel中注冊(cè)Facades的原理,實(shí)現(xiàn)方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2016-03-03
  • php實(shí)現(xiàn)網(wǎng)站插件機(jī)制的方法

    php實(shí)現(xiàn)網(wǎng)站插件機(jī)制的方法

    這些天想作一個(gè)在網(wǎng)站中實(shí)現(xiàn)插件的功能,谷歌了一下,發(fā)現(xiàn)一篇文章感覺(jué)對(duì)我?guī)椭艽螅鰜?lái)和大家分享,廢話不多說(shuō),直接帖出代碼供大家分析.
    2009-11-11
  • php教程之phpize使用方法

    php教程之phpize使用方法

    phpize是用來(lái)擴(kuò)展php擴(kuò)展模塊的,通過(guò)phpize可以建立php的模塊,下面介紹一個(gè)他的使用方法,需要的朋友可以參考下
    2014-02-02
  • PHP中Closure類的使用方法及詳解

    PHP中Closure類的使用方法及詳解

    Closure類又被大家稱之為匿名函數(shù),在php5.3的時(shí)候引入的。顧名思義匿名函數(shù)就是沒(méi)有定義名字的函數(shù)。本篇文章給大家介紹php中Closure類的使用及詳解,需要的朋友可以參考下
    2015-10-10
  • PHP設(shè)計(jì)模式(觀察者模式)

    PHP設(shè)計(jì)模式(觀察者模式)

    這篇文章主要介紹了PHP設(shè)計(jì)模式(觀察者模式),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • destoon文章模塊調(diào)用企業(yè)會(huì)員資料的方法

    destoon文章模塊調(diào)用企業(yè)會(huì)員資料的方法

    這篇文章主要介紹了destoon文章模塊調(diào)用企業(yè)會(huì)員資料的方法,非常實(shí)用的一個(gè)技巧,需要的朋友可以參考下
    2014-08-08
  • php中用unset銷毀變量并釋放內(nèi)存

    php中用unset銷毀變量并釋放內(nèi)存

    在本篇文章里小編給大家分享的是關(guān)于php中用unset銷毀變量并釋放內(nèi)存的實(shí)例分享內(nèi)容,需要的朋友們可以參考下。
    2020-05-05
  • Twig模板引擎用法入門教程

    Twig模板引擎用法入門教程

    這篇文章主要介紹了Twig模板引擎用法,分析了Twig模板引擎的基本功能、安裝與簡(jiǎn)單使用方法,需要的朋友可以參考下
    2016-01-01

最新評(píng)論