Maison  >  Article  >  cadre php  >  Problème d'échec de la vérification de la signature de rappel asynchrone Alipay du site Web thinkphp

Problème d'échec de la vérification de la signature de rappel asynchrone Alipay du site Web thinkphp

藏色散人
藏色散人avant
2020-07-03 13:26:583332parcourir

La colonne de didacticiel suivante du framework thinkphp vous présentera le problème de l'échec de la vérification de la signature de rappel asynchrone Alipay sur le site Web thinkphp. J'espère qu'elle sera utile aux amis dans le besoin. !

Problème d'échec de la vérification de la signature de rappel asynchrone Alipay du site Web thinkphp

Un projet en cours utilise le paiement du site Web mobile Alipay. Le projet est réalisé avec tp. Après avoir téléchargé le SDK Alipay et l'avoir modifié, il peut être appelé normalement. est également accessible, mais elle est asynchrone. La vérification de la signature de l'interface échoue toujours avec une erreur, et elle est attribuée à la ligne 580 de AopClient.php La section de code inférieure

if ("RSA2" == $signType) {
    $result = (bool) openssl_verify($data, base64_decode($sign), $res, OPENSSL_ALGO_SHA256);//这句报错
} else {
    $result = (bool) openssl_verify($data, base64_decode($sign), $res);
}

s'imprime print_r(openssl_error_string());, et le le résultat est

error:0906D06C:PEM routines:PEM_read_bio:no start line

Baidu n'a aucun résultat, a dit quelqu'un. Les certificats étaient tellement foirés avec des erreurs qu'il était inutile pour moi de changer les certificats.

Plus tard, j'ai découvert par hasard qu'il y avait un problème avec la saisie, et j'ai finalement trouvé une raison :

Lorsque vous recevez des notifications asynchrones Alipay ici, vous ne pouvez pas utiliser la fonction I

$data=I("post.");//项目中这样写,导致支付宝传来的数据部分特殊字符被过滤,具体主要是fund_bill_list和sign这两部分
$data=$_POST;//写成这样就好了

Encore une chose :

Peu importe si la vérification de la signature est correcte ou non, openssl_error_string() affiche toujours error:0906D06C:PEM routines:PEM_read_bio:no start line C'est ma situation et je ne suis pas entré dans les détails.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer