yansongda / laravel-pay

可能是我用过的最优雅的 Alipay/WeChat/Unipay 的 laravel 支付扩展包了

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

驗簽出錯:Alipay Sign Verify FAILED

visualNext opened this issue · comments

版本號

"laravel/framework": "5.8.*",
"yansongda/laravel-pay": "^2.1"

問題描述

支付寶支付成功回傳出現 Alipay Sign Verify FAILED 的錯誤訊息

支付寶密鑰取得方式

支付寶
公私鑰是按照網站說明產生
https://opendocs.alipay.com/open/291/105971

代碼

config/pay.php

'alipay' => [
        // 支付宝分配的 APPID
        'app_id' => env('ALI_APP_ID', ''),

        // 支付宝异步通知地址
        'notify_url' => env('APP_URL').'/api/pay/alipay/notify',

        // 支付成功后同步通知地址
        'return_url' => env('APP_URL').'/api/pay/alipay/return',

        // 阿里公共密钥,验证签名时使用
        'ali_public_key' => env('ALI_PUBLIC_KEY', ''),

        // 自己的私钥,签名时使用
        'private_key' => env('ALI_PRIVATE_KEY', ''),

        'log' => [
            'file' => storage_path('logs/alipay.log'),
            'level' => 'debug',
            'type' => 'single', // optional, 可选 daily.
        ],
],

OrderController.php

public function notify($method)
{
    if ($method == 'wechat') {
        Log::info('Pay method wechat');
        $pay = Pay::wechat();
    } else {
        Log::info('Pay method alipay');
        $pay = Pay::alipay();
    }
    try{
        Log::info('Pay notify message');
        $data = $pay->verify();

        $order = Order::where('order_no', $data->out_trade_no)->first();
        if(!$order->status) {
            $order->status = true;
            $order->payment_time = Carbon::now()->toDateTimeString();
            $order->save();
        }
        Log::debug('Pay notify', $data->all());
        return response()->json([
            'status' => 'success',
            'data' => $pay->success()
        ]);
    } catch (\Exception $e) {
        Log::error($e->getMessage());
        return response()->json([
            'status' => 'error',
            'message' => trans('api.pay_error')
        ]);
    }
}

public function return($method)
{
    $data = Pay::alipay()->verify();
}

Alipay 日誌

yansongda.pay.WARNING > Alipay Sign Verify FAILED {"gmt_create":"2020-05-05 10:39:11","charset":"utf-8","seller_email":"*****","subject":"企业方案-10","sign":"*****","buyer_id":"2088522069415796","invoice_amount":"0.01","notify_id":"2020050500222103912015791423061300","fund_bill_list":"[{\"amount\":\"0.01\",\"fundChannel\":\"ALIPAYACCOUNT\"}]","notify_type":"trade_status_sync","trade_status":"TRADE_SUCCESS","receipt_amount":"0.01","app_id":"2017082308341861","buyer_pay_amount":"0.01","sign_type":"RSA2","seller_id":"2088721642933483","gmt_payment":"2020-05-05 10:39:12","notify_time":"2020-05-05 10:39:12","version":"1.0","out_trade_no":"e94ce5b7a47827a9bc3fb9c48beca5ad","total_amount":"0.01","trade_no":"2020050522001415791446123599","auth_app_id":"2017082308341861","buyer_logon_id":"183****4684","point_amount":"0.00"} 

Laravel 日誌

[2020-05-05 10:39:13] local.INFO: Pay method alipay  
[2020-05-05 10:39:13] local.INFO: Pay notify message  
[2020-05-05 10:39:13] local.ERROR: INVALID_SIGN: Alipay Sign Verify FAILED
commented

我也遇到了这个问题,查询find提示Alipay Sign Verify FAILED 但是却打印出了成功的查询结果!

{"alipay_trade_query_response":{"code":"10000","msg":"Success","buyer_logon_id":"188******31","buyer_pay_amount":"0.00","buyer_user_id":"2088212773163646","invoice_amount":"0.00","out_trade_no":"O20200721150756128","point_amount":"0.00","receipt_amount":"0.00","send_pay_date":"2020-07-21 15:08:01","total_amount":"0.01","trade_no":"2020072122001463641436941420","trade_status":"TRADE_SUCCESS"},"sign":"ubXu0RElcqekB9zAZ/2jeqrwhLudToBlYmqbUBVk6XTZrQkTnfydoOM6qua0roSpfHcIbmPsZnA2pvVyBgW0OkkzBElAQXOaqWO14YlXGhjUxaLAci8qfagxh65Uz6t4EvaR8UCjiizWEZFcAaO/Tgv/2KF75ASBeR+mmgo/Au9pDV/ltAzvvdaYX/YQOcmk+Efm/j2IeV2zI0SznwFduhqec93Oxh0jxcH9x5K0LZ1ybDsGNd4vC5Wq3lwAPa3gwGgwO8fbGCVj4yI4debuxM08HvtaPynS9ttouzUU+h6KelaXByYiT8QVbSqywWhCOf51NtscI059PSroXdpL+w=="}

我也遇到了这个问题,查询find提示Alipay Sign Verify FAILED 但是却打印出了成功的查询结果!

{"alipay_trade_query_response":{"code":"10000","msg":"Success","buyer_logon_id":"188******31","buyer_pay_amount":"0.00","buyer_user_id":"2088212773163646","invoice_amount":"0.00","out_trade_no":"O20200721150756128","point_amount":"0.00","receipt_amount":"0.00","send_pay_date":"2020-07-21 15:08:01","total_amount":"0.01","trade_no":"2020072122001463641436941420","trade_status":"TRADE_SUCCESS"},"sign":"ubXu0RElcqekB9zAZ/2jeqrwhLudToBlYmqbUBVk6XTZrQkTnfydoOM6qua0roSpfHcIbmPsZnA2pvVyBgW0OkkzBElAQXOaqWO14YlXGhjUxaLAci8qfagxh65Uz6t4EvaR8UCjiizWEZFcAaO/Tgv/2KF75ASBeR+mmgo/Au9pDV/ltAzvvdaYX/YQOcmk+Efm/j2IeV2zI0SznwFduhqec93Oxh0jxcH9x5K0LZ1ybDsGNd4vC5Wq3lwAPa3gwGgwO8fbGCVj4yI4debuxM08HvtaPynS9ttouzUU+h6KelaXByYiT8QVbSqywWhCOf51NtscI059PSroXdpL+w=="}

我也遇到了这个问题,你们是怎么处理的呢 到底是成功没有

麻烦尝试使用最新 v3 版

感谢支持