yansongda / pay

可能是我用过的最优雅的 Alipay/WeChat/Douyin/Unipay/江苏银行 的支付 SDK 扩展包了
http://pay.yansongda.cn
MIT License
5.05k stars 1.03k forks source link

支付宝网页支付成功,但是验证失败 #73

Closed xiaohigh closed 6 years ago

xiaohigh commented 6 years ago

包版本号

"require": {
        "php": ">=7.0.0",
        "fideloper/proxy": "~3.3",
        "laravel/framework": "5.5.*",
        "laravel/tinker": "~1.0",
        "yansongda/laravel-pay": "^2.0",
        "yansongda/pay": "^2.0"
    },
    "require-dev": {
        "barryvdh/laravel-debugbar": "^3.1",
        "filp/whoops": "~2.0",
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "~1.0",
        "phpunit/phpunit": "~6.0",
        "symfony/thanks": "^1.0"
    },

问题描述

支付成功,但是跳转验证失败

代码

public function payConfirm()
{
    $data = Pay::alipay(config('pay.alipay'))->verify();
}

alipay 日志

2018-01-24 08:15:48 > WARNING > Alipay Sign Verify FAILED {"total_amount":"0.01","timestamp":"2018-01-24 16:15:56","sign":"SzXwYPCQ8CQhAkYWBhRphTc2RJzvb37HPFeqc2xkraBOD1Wt00egxfKXGdPzJbhdY6X/fcH2k15BkyRb3ht0tmPaaBBylSppAcCSRmWVlw4CZMWqkvW3n8DVUFQ609IBxzR/5xOr//u8w6RdHzv9R3i6eKNx64xf3XEBFFvmmZFbK8daMpn+cwHiK10VXAxjsRaio2ScxhyGIEumxFX3GWWXDpfHoUOwc+Y7CD1f2kLLNCS2XbtY5AM+i8TG3ulf9oGN9TBxKF3HNDTO+nwaWDar0QYKSb3Y7ogG2XXiPEiKpmhixPV4rKJgdrbdzWwJuT7FCpPWA8BAklB0tLEkAQ==","trade_no":"2018012421001004580228611359","sign_type":"RSA2","auth_app_id":"2016083101829857","charset":"GBK","seller_id":"2088221571819819","method":"alipay.trade.page.pay.return","app_id":"2016083101829857","out_trade_no":"1516781725883270","version":"1.0"} []

报错详情

20180124161603

yansongda commented 6 years ago

属于验签错误。

请参考 #5 ,#8 ,#12,#16,#63 。

感谢您的支持!谢谢

LIJIZHENG commented 5 years ago

支付成功没有调回调接口

LIJIZHENG commented 5 years ago

咋办

15237179193 commented 5 years ago

支付成功没有调回调接口

我也遇到了,支付成功了,还在支付界面,没跳转支付成功的页面,该怎么处理啊

hi2210331918 commented 5 years ago

哥们 这个问题解决没 我现在也遇到了

sunshine-he commented 7 months ago

@yansongda 大佬,您好。我这边也遇到了验签失败的问题。情况和其他小伙伴的有点不一样,可能是系统框架引起的。我这边一个项目用的php原生写的mvc,请求进来时会带上 m=模块名,c=控制器名,a=方法名,这样的形式,导致验签时参数可能多了。 调了好多,虽然最后是解决了,但我把取消的代码写到yansongda支付框架里了,不知外面怎么写,下面贴个图。 image 请问,如果不在框架里写的话,可以怎么写呢。如果后面框架升级什么的,可能要重新检查调试。

sunshine-he commented 7 months ago

同步验签时,我用了 unset($_GET['m'],$_GET['a'],$_GET['c']); 这个是可以。异步验签时是post请求,我试着把post参数里的相关参数取消但不行,看插件日志打印时发现有上面多余参数,但用系统里的日志记录post参数,又没发现这个多余的参数。请教了