niltor / open-pdd-net-sdk

拼多多开放平台DotNet SDK
https://www.nuget.org/packages/MSDev.PddOpenSdk/
Apache License 2.0
162 stars 49 forks source link

.Net 5.0使用MSDev.PddOpenSdk.AspNetCore (2.3.5),时会报签名错误 #12

Closed sxd37miao closed 3 years ago

sxd37miao commented 3 years ago

问题原因应该是这个 image 这边是netstandard2.1的 而代码里边 open-pdd-net-sdk\PddOpenSdk\PddOpenSdk\Services\PddCommonApi.cs 165行 `

if NET452

        var Unix = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
        dic.Add("timestamp", (long)(DateTime.UtcNow - Unix).TotalMilliseconds);

endif

if NETSTANDARD2_0

        dic.Add("timestamp", DateTimeOffset.Now.ToUnixTimeSeconds());

endif

这边没有判断netstandard2.1的,所以请求的时候就缺少了timestamp参数,导致报错 我改成这样就好了

if NET452

        var Unix = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
        dic.Add("timestamp", (long)(DateTime.UtcNow - Unix).TotalMilliseconds);

endif

if NETSTANDARD2_0

        dic.Add("timestamp", DateTimeOffset.Now.ToUnixTimeSeconds());

endif

if NETSTANDARD2_1

        dic.Add("timestamp", DateTimeOffset.Now.ToUnixTimeSeconds());

endif

`

niltor commented 3 years ago

将在2.4.0版本进行修复。