以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  重新发布后,已解决:WxPayData签名存在但不合法,好像https前没有出错过  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=159570)

--  作者:zhangjian222200
--  发布时间:2020/12/30 18:30:00
--  重新发布后,已解决:WxPayData签名存在但不合法,好像https前没有出错过
服务器记录:
2020-12-30 15:06:20.1925
正常记录,进入了api_GetSandboxSignKey函数,顶部专设记录 ’进入函数api_GetSandboxSignKey报下一条错误

2020-12-30 15:06:20.3958
<!DOCTYPE HTML>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8"/>
    <title>公益404</title>
</head>
<body>
<script type="text/javascript" src="//qzonestyle.gtimg.cn/qzone/hybrid/app/404/search_children.js" charset="utf-8"></script>
</body>
</html><!--[if !IE]>|xGv00|904eae036276b0335c391560dfbd5f16<![endif]-->
2020-12-30 15:06:20.3978
WxPayData签名存在但不合法1!
2020-12-30 15:06:20.4017
调用的目标发生了异常。
   在 System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   在 System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   在 Foxtable.UserFunctions.Execute(String Name, Object[] Args)
WxPayData签名存在但不合法!
   在 UserCode.WxPayData.FromXml(String xml)
   在 UserCode.Aa2z4ibatiZsEpHWj(Object[] Args)

api_GetSandboxSignKey函数完整代码:
Functions.Execute("LogText","正常记录,进入了api_GetSandboxSignKey函数,顶部专设记录")

\'获取支付验收验签秘钥API
Dim url As String = "https://api.mch.weixin.qq.com/sandboxnew/pay/getsignkey"

Dim req As new WxPayData
req.SetValue("mch_id", Vars("mchid"))
req.SetValue("nonce_str", req.GenerateNonceStr())\'//随机字符串
req.SetValue("sign", req.MakeSign())\'//签名

Dim hc As New HttpClient(url)
hc.C
hc.Timeout = 6
hc.Content = req.ToXML
Dim ret As String = hc.GetData()
Functions.Execute("logtext",ret)
Dim result As new WxPayData()
result.FromXml(ret)

If result.GetValue("return_code") = "FAIL"
    Functions.Execute("logtext",result.GetValue("return_msg"))
    \'msgbox("获取支付验收验签秘钥API失败,原因: " & result.GetValue("return_msg"))
End If
Vars("test_key") = result.GetValue("sandbox_signkey")
\'msgbox(Vars("test_key"))
Return result

上面,有的代码,看不见,专门存了,可以下载看
[此贴子已经被作者于2020/12/30 21:18:31编辑过]

--  作者:zhangjian222200
--  发布时间:2020/12/30 19:37:00
--  
重新发布,再次测试,这个错误不见了

服务器记录正常,不再有这个记录WxPayData签名存在但不合法1!
[此贴子已经被作者于2020/12/30 19:37:34编辑过]

--  作者:有点蓝
--  发布时间:2020/12/31 8:41:00
--  
有可能是签名过期了,重新生成签名即可