有图有派 2024-01-16 10:27 采纳率: 65.8%
浏览 3
已结题

在调用YunGouOS微信支付时的错误,请解决下

这几天在写一个支付系统,因为对方是个人网站,无法提供执照,所以只能使用第三方服务。我使用的第三方服务是YunGouOS(API帮助文档地址是:https://open.pay.yungouos.com/#/callback/notify)%E3%80%82%E4%BD%BF%E7%94%A8%E7%9A%84%E8%AF%AD%E8%A8%80%E6%98%AFpython%E8%AF%AD%E8%A8%80%EF%BC%8C%E6%A1%86%E6%9E%B6%E6%98%AFDjango%E3%80%82

1.创建订单并返回二维码,显示到前端已经实现,没有问题。

2.问题是回调函数。YunGouOS一直给我返回:

{'msg': '签名错误,请检查签名', 'code': 1}

说是签名错误,但是我反复地检查了我的KEY和商户号,没有错误,并且使用了两种方法去实现这个回调,都是错误的,都是返回上面的信息。
这两中方法是!
1、让服务器保存我的商户号、订单号、签名,并在回调中将其取出

2、在回调中重新计算签名并请求回调地址

这两种方式都是错的,不知道错哪儿了,请大家帮帮忙解决下!

我把代码贴出来,敏感信息打码

img

这是我的签名算法

img

  • 写回答

9条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-01-16 10:31
    关注

    引自免费微信小程序:皆我百晓生

    根据你提供的信息,问题出现在回调函数中,YunGouOS返回了签名错误的信息。你尝试了两种方式来实现回调,但都出现了错误。

    可能的原因是签名算法的实现出现了问题,导致签名错误。请检查以下几个方面是否正确:

    1. 签名算法是否正确实现:根据你提供的签名算法代码,可以看出它实现了一个字符串的拼接和MD5加密,并将结果转换为大写字母。确保拼接的字符串、密钥、参数的排序等步骤都正确。

    2. 请求回调地址时是否传递了正确的签名参数:在回调函数中,你使用了requests库向回调地址发送了请求。请确保在请求中正确地传递了商户号、订单号和生成的签名参数。

    3. 检查是否有其他参数需要传递:根据YunGouOS的API文档,可能还需要传递其他参数。请确认是否漏掉了某些参数。

    4. 确保商户号和密钥的正确配置:请确保商户号和密钥在代码中没有输入错误,并且与你在YunGouOS平台上的商户管理中的配置保持一致。

    如果你确定签名算法和请求都没有问题,但仍然出现签名错误,请考虑以下几个可能的原因:

    1. 参数编码问题:请确保使用相同的编码格式来生成签名和发送请求。

    2. 时区问题:确认你的服务器的时区设置与YunGouOS平台一致,避免因为时区不同导致的签名错误。

    如果你想进一步解决问题,可以提供更多的代码和请求示例,以便我能够更准确地帮助你排查问题。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月16日
  • 创建了问题 1月16日

悬赏问题

  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染