久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线

返回列表 發(fā)帖
查看: 2078|回復: 7

[已處理] 支付寶驗簽后的一個BUG,導致積分無法購買。

4

主題

15

回帖

25

積分

初學乍練

貢獻
0 點
金幣
5 個
樓主
發(fā)表于 2023-3-9 12:20:09 | 只看樓主 |只看大圖 |倒序瀏覽 |閱讀模式
BUG反饋
程序版本: X3.5
瀏覽器: Chrome 
BUG地址: 隱藏內(nèi)容
BUG截圖: -
測試用戶名: 隱藏內(nèi)容
測試密碼: 隱藏內(nèi)容
昨天搞了5個小時,今天是4個小時。

api/payment/payment_alipay.php         
第88行      
openssl_free_key() 使用出錯,導致即使驗簽通過,也無法繼續(xù)執(zhí)行。
openssl_free_key($public_key);
//$public_key是公鑰字符串,不屬于資源,而openssl_free_key()是用來釋放資源的,所以在釋放字符串的時候出現(xiàn)錯誤,我不知道這樣子理解對不對。

unset($public_key);  //所以我把它改成unset來代替openssl_free_key() 。

這樣子就不影響安全性,也能達到目的。


1 貢獻

最佳答案

PS:根據(jù)描述,應該是PHP8產(chǎn)生的問題,因為PHP8不允許空值的限制越發(fā)嚴重了,所以未引入的資源或空資源釋放報錯了,在PHP7應該是沒問題的
回復

使用道具 舉報

31

主題

5901

回帖

1萬

積分

應用開發(fā)者

貢獻
619 點
金幣
1444 個
QQ
沙發(fā)
發(fā)表于 2023-3-9 12:53:47 | 只看Ta
$public_key是公鑰,自然是屬于密鑰資源的一種啊……
openssl_free_key用于釋放密鑰資源,用法沒毛病。
  1. openssl_free_key(resource $key_identifier): void
復制代碼
openssl_free_key() 從內(nèi)存中釋放和指定的 key_identifier相關(guān)聯(lián)的密鑰。
回復

使用道具 舉報

31

主題

5901

回帖

1萬

積分

應用開發(fā)者

貢獻
619 點
金幣
1444 個
QQ
板凳
發(fā)表于 2023-3-9 12:57:43 | 只看Ta
建議你通過支付寶開放平臺 > 支持 > 技術(shù)支持 > 自助工具 > 云排查 訪問并排查 異步通知問題排查 和 請求返回錯誤問題排查
回復

使用道具 舉報

4

主題

15

回帖

25

積分

初學乍練

貢獻
0 點
金幣
5 個
地板
 樓主| 發(fā)表于 2023-3-9 18:05:37 | 只看Ta
湖中沉 發(fā)表于 2023-3-9 12:57
建議你通過支付寶開放平臺 > 支持 > 技術(shù)支持 > 自助工具 > 云排查 訪問并排查 異步通知問題排查 和 請求返 ...

我是純系統(tǒng)centos7,安裝了寶塔,然后安裝了dzx3.5,
php8 mysql 5.6
*******************
我后來沒用unset()而是在釋放資源前面把公鑰列到資源里,再釋放。
$public_key= openssl_pkey_get_public($public_key);//將公鑰列入資源
   openssl_free_key($public_key);//釋放資源公鑰
*******************
這句openssl_free_key()即使沒有的話,應該也無傷大雅吧。
回復

使用道具 舉報

4

主題

15

回帖

25

積分

初學乍練

貢獻
0 點
金幣
5 個
5#
 樓主| 發(fā)表于 2023-3-9 18:07:19 | 只看Ta
云排查也沒有問題哦。
通知時間:2023-03-09 17:57:50
通知地址:http://www.域名.com/api/payment/notify/notify_alipay.php
通知內(nèi)容: http://www.域名.com/api/payment/notify/notify_alipay.php?gmt_create=2023-03-09 17:57:43************
商戶響應:http狀態(tài)碼: 200, 返回: success.
提示:成功
回復

使用道具 舉報

31

主題

5901

回帖

1萬

積分

應用開發(fā)者

貢獻
619 點
金幣
1444 個
QQ
6#
發(fā)表于 2023-3-9 20:39:23 | 只看Ta
wzzjhc 發(fā)表于 2023-3-9 18:05
我是純系統(tǒng)centos7,安裝了寶塔,然后安裝了dzx3.5,
php8 mysql 5.6
*******************

目前這個做法大致沒問題,但正確的應該是補充openssl_get_publickey行為(你用的別名的也可以),然后用這個資源去做openssl_verify,問題就不大了
回復

使用道具 舉報

31

主題

5901

回帖

1萬

積分

應用開發(fā)者

貢獻
619 點
金幣
1444 個
QQ
7#
發(fā)表于 2023-3-9 20:41:49 | 只看Ta
https://gitee.com/Discuz/DiscuzX/pulls/2037
提交了此PR,并實站測試:
從下到上,分別:
第一次:密鑰模式(未修改前),自動成功
第二次:密鑰模式(修改后),自動成功
第三次:證書模式(修改后),自動成功

暫未測試未修改前的證書模式

截圖202303092039284660.jpg (161.89 KB, 下載次數(shù): 13)

截圖202303092039284660.jpg
回復

使用道具 舉報

31

主題

5901

回帖

1萬

積分

應用開發(fā)者

貢獻
619 點
金幣
1444 個
QQ
8#
發(fā)表于 2023-3-9 20:43:48 | 只看Ta
PS:根據(jù)描述,應該是PHP8產(chǎn)生的問題,因為PHP8不允許空值的限制越發(fā)嚴重了,所以未引入的資源或空資源釋放報錯了,在PHP7應該是沒問題的
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

  • 關(guān)注公眾號
  • 有償服務(wù)微信
  • 有償服務(wù)QQ

手機版|小黑屋|Discuz! 官方交流社區(qū) ( 皖I(lǐng)CP備16010102號 |皖公網(wǎng)安備34010302002376號 )|網(wǎng)站地圖|star

GMT+8, 2025-9-18 19:17 , Processed in 0.084379 second(s), 33 queries .

Powered by Discuz! W1.0 Licensed

Copyright © 2001-2025 Discuz! Team.

關(guān)燈 在本版發(fā)帖
有償服務(wù)QQ
有償服務(wù)微信
返回頂部
快速回復 返回頂部 返回列表