企业微信userid转openid时返回errcode:40003,errmsg:invalid userid

调微信支付时中需要将userid转换成openid

阅读文档(https://work.weixin.qq.com/api/doc#90000/90135/90202)后开始调用,

结果接口返回:

{"errcode":40003,"errmsg":"invalid userid, hint: [1563539598_4_6ae561db56e26aba05e01ee837ef724c], from ip: 116.52.237.66, more info at https://open.work.weixin.qq.com/devtool/query?e=40003"}

检查入参和POST方式均没有问题,网上搜索有人通过接口调试工具是可以正常返回openid的

https://segmentfault.com/q/1010000014811463/a-1020000014850318

https://blog.csdn.net/a545132569/article/details/89512913

于是按照博客中的方式,也去腾讯提供的调试页面测试https://work.weixin.qq.com/api/devtools/devtool.php

发现可以正常获取openid

博客里的哥们说自己通过chrome发现腾讯提供的调试页面请求的地址和文档中的地址不一样,他在自己的代码中把请求地址改成和调试页面中一样的地址就ok了,但是我照做了还是不行。于是就开始用postman模拟请求,后来发现post中body选项下选form-data,得到的响应和我代码调用时获取的一样,都是题目中的errcode:40003,errmsg:invalid userid,但是body选项下选raw的时候就可以正常获取openid了。

 

这下就真相大白了,我代码里用httpclient发起的post的请求时和postman里选form-data的时候是一样的,弄清了这两种方式的区别,为httpclient发起请求增加了raw这种形式的调用,问题解决。

httpclient调用参考博客:https://www.cnblogs.com/zhangfei/p/5099036.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值