Ce que cet article vous apporte concerne la signature de vérification de rappel de paiement de l'application WeChat du serveur PHP pour modifier le statut de paiement de la commande. Les amis dans le besoin peuvent s'y référer.
<?php //处理微信支付回调 $time = time(); $testxml = file_get_contents("php://input"); //接收微信发送的支付成功信息 //file_put_contents('D:\webroot\xianyijie\JK\weixin.txt',$testxml); $result = XMLDataParse($testxml); file_put_contents("D:\webroot\xianyijie\JK\weixin.txt", json_encode($result)."\r\n", FILE_APPEND); //将信息写入txt文件做支付备份 $sign_return = $result['sign']; //如果成功返回了 if($result['return_code'] == 'SUCCESS' && $result['result_code'] == 'SUCCESS'){ $key = "商户密钥key"; unset($result['sign']); $sign = appgetSign($result,$key); if($sign == $sign_return) //验证签名 { //这里是验签成功后的sql操作 //如果操作成功 return "<xml><return_code><![CDATA[SUCCESS]]></return_code> <return_msg><![CDATA[OK]]></return_msg> </xml>"; //如果操作失败 return "fail"; } } /* * 格式化参数格式化成url参数 生成签名sign */ function appgetSign($Obj,$appwxpay_key) { foreach ($Obj as $k => $v) { $Parameters[$k] = $v; } //签名步骤一:按字典序排序参数 ksort($Parameters); $String = formatBizQueryParaMap($Parameters, false); //echo '【string1】'.$String.'</br>'; //签名步骤二:在string后加入KEY if($appwxpay_key){ $String = $String."&key=".$appwxpay_key; } //echo "【string2】".$String."</br>"; //签名步骤三:MD5加密 $String = md5($String); //echo "【string3】 ".$String."</br>"; //签名步骤四:所有字符转为大写 $result_ = strtoupper($String); //echo "【result】 ".$result_."</br>"; return $result_; } //xml格式数据解析函数 function XMLDataParse($data){ $xml = simplexml_load_string($data,NULL,LIBXML_NOCDATA); $array=json_decode(json_encode($xml),true); return $array; } ?>
Articles connexes recommandés :
Demander des codes pour les méthodes de publication et d'obtention en curl en PHP
À propos des touches du milieu PHP Contenu analyse
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!