收藏
回答

云托管,支付,统一下单接口,报错40003,invalid openid,是什么原因呢?

麻烦大佬帮忙看一下,小程序,云托管支付的统一下单接口,报错40003 invalid openid。

环境如下:

微信云托管 : springboot-nnii

云托管全局设置>微信支付配置>配置了微信公众号wx17***7c1、微信小程序wxb***6da两个。绑定状态是已绑定。商户号是15*****。

问题如下:

小程序(还未上线),调用统一下单接口(/_/pay/unifiedorde)时,报错40003 invalid openid。

小程序传参数subMchId是商户号15*****,openId是oXh2U60ULSOi3t9rPpIQvN5E0Tw8。

但是公众号调用统一下单接口,就可以下单成功,正常返回。

公众号的subMchId也是商户号15*****,openId是,oqX-c6A_QYOJMgh2qzTTlfYK2tiE,除了openId,两个请求参数都一样。因为绑定的都是同一个商户号下。

这两个openid都是通微信号生成的,调用的服务也都是同一个接口,就不知道什么原因,为什么小程序对应的openId不存在。然后还想请问一下通过什么接口能判断小程序的openid是否在appid下?

=================解决了==================

原因:公众号和小程序部署在同一个云托管的同一台机器,而云托管下支付单时,没有要求传appid,取得是创建云托管的默认appid(我的是公众号appid),所以小程序的openid下支付单,就会报openid不存在

解决办法:

1。小程序迁到自己的云托管(验证没问题了)


2。大佬建议云托管》设置》资源复用,也适合这个场景,但我没验证过这个,应该也可以。https://developers.weixin.qq.com/miniprogram/dev/wxcloudrun/src/guide/reuse/

最后一次编辑于  2023-11-24
回答关注问题邀请回答
收藏

2 个回答

登录 后发表内容