Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

代码有BUG,获取微信证书的时候,在返回结果为数组中调用方法 #816

Closed
wlq673736503 opened this issue Jun 28, 2023 · 6 comments · Fixed by #818
Closed

Comments

@wlq673736503
Copy link

wlq673736503 commented Jun 28, 2023

包版本号

v3.4.2

问题描述

在使用 Pay::set(DirectionInterface::class, ArrayDirection::class); 后,会出错

Functions.php 239行, 在返回为数组的方法中, 调用另一个方法,报错

image

前面返回的是数组,但是后面 在数组中调用 get('data', []) ,导致报错

image
这里返回的数组,不是对象,导致报错

你的代码

image

$result = Pay::wechat()->scan($order);

我是要生成微信二维码, 这个问题导致 支付宝和微信都不能生成二维码,但是API已经正确返回

报错详情

 "message": "Call to a member function get() on array",
"exception": "Error",
"file": "/www/wwwroot/code/cnbtb/self/lpshop/lpshop_pc/vendor/yansongda/pay/src/Functions.php",
"line": 239,
"trace": [
    {
        "file": "/www/wwwroot/code/cnbtb/self/lpshop/lpshop_pc/vendor/yansongda/pay/src/Functions.php",
        "line": 203,
        "function": "Yansongda\\Pay\\reload_wechat_public_certs"
    },

sdk 日志

nginx/apache 日志

涉及到 异步通知、同步通知 的问题,请贴出来

@wlq673736503 wlq673736503 changed the title 代码有BUG,获取微信证书的时候,在数组中调用方法 代码有BUG,获取微信证书的时候,在返回结果为数组中调用方法 Jun 28, 2023
@yansongda
Copy link
Owner

yansongda commented Jun 28, 2023

这里是有问题,后面可能会删掉这个 ArrayDirection,情况太多了,增加了复杂度

@wlq673736503
Copy link
Author

这里是有问题,后面可能会删掉这个 ,情况太多了,增加了复杂度ArrayDirection

文档里面的这段句话可以删除了,否则开了以后,涉及到这个方法的,全部出错
image

@yansongda
Copy link
Owner

是的,晚些时候我想想看怎么处理比较好

@wlq673736503
Copy link
Author

是的,晚些时候我想想看怎么处理比较好

源码里面全部走对象实例比较好,如果想要返回数组,由 使用者在最终输出的地方转一下就好了。就和 laravel 一样

@wlq673736503
Copy link
Author

wlq673736503 commented Jun 28, 2023

是的,晚些时候我想想看怎么处理比较好

还有个问题 3.4.0 3.4.1 3.4.2 都一样

$result = Pay::alipay()->scan($order);

支付宝生成二维码,好像不能用,我没去排查源码,

"msg" => "Business Failed"
"code" => "40004"
"sub_msg" => "ACCESS_FORBIDDEN"
"sub_code" => "ACQ.ACCESS_FORBIDDEN"

返回这个, 我现在用的 支付宝表单 没有问题,只有QR二维码有问题

@yansongda
Copy link
Owner

是的,晚些时候我想想看怎么处理比较好

还有个问题 3.4.0 3.4.1 3.4.2 都一样

$result = Pay::alipay()->scan($order);

支付宝生成二维码,好像不能用,我没去排查源码,

"msg" => "Business Failed"
"code" => "40004"
"sub_msg" => "ACCESS_FORBIDDEN"
"sub_code" => "ACQ.ACCESS_FORBIDDEN"

返回这个, 我现在用的 支付宝表单 没有问题,只有QR二维码有问题

这个你参考 支付宝,支付宝那边报错,看看是不是没权限

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants