A-A+
解决ecshop支付宝已付款但后台显示“未付款”的异步问题
用的是大商创的系统,但使用的是ecshop的核心,在购买了商品付款成功之后,后台却显示未付款,说明支付宝异步返回并没有成功,寻找了一些可解决的方案,自己用的是线上的测试环境81端口,有可能跟这个有关系,支付宝的支付返回接口应该是不支持80以外的端口的,更何口网址之后还带有81端口了,遂直接使用线上正式环境进行测试,一切OK。
如果依然没有异步返回成功的话,还有一种可能就是respond.php文件。处理的是接受到的return数据。但是没有为支付宝提供异步返回的状态。
在其根目录下找到respond.php文件,找到如下代码:
if($payment->respond()){
将其修改为如下:
- if($payment->respond()){
- echo "success";
- }else{
- echo "fail";
- }
这种仅是自己的修改,并未进行过真正的测试,而在这次支付接口异步返回不成功的案例中,我的是因为端口的问题,更改一下即可,大家如果遇到这种问题的话,可以多在服务器环境中找找答案。