yansongda / laravel-pay

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

为尝试转换传递的字符无效,这些字符已被忽略

miniwater opened this issue · comments

支付宝支付运行报错
Invalid characters passed for attempted conversion, these have been ignored

环境
laravel 8
php 8

larave.log

[2021-07-22 14:41:20] production.ERROR: Invalid characters passed for attempted conversion, these have been ignored {"exception":"[object] (ErrorException(code: 0): Invalid characters passed for attempted conversion, these have been ignored at /Users/miniwater/project/vendor/yansongda/pay/src/Plugin/Alipay/PreparePlugin.php:139)
[stacktrace]
#0 [internal function]: Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(8192, 'Invalid charact...', '/Users/miniwate...', 139)
#1 /Users/miniwater/project/vendor/yansongda/pay/src/Plugin/Alipay/PreparePlugin.php(139): hexdec('x')
#2 /Users/miniwater/project/vendor/yansongda/pay/src/Plugin/Alipay/PreparePlugin.php(125): Yansongda\\Pay\\Plugin\\Alipay\\PreparePlugin->hex2dec('0x10C764E9D5603...')
#3 /Users/miniwater/project/vendor/yansongda/pay/src/Plugin/Alipay/PreparePlugin.php(94): Yansongda\\Pay\\Plugin\\Alipay\\PreparePlugin->formatCert(Array)
#4 /Users/miniwater/project/vendor/yansongda/pay/src/Plugin/Alipay/PreparePlugin.php(53): Yansongda\\Pay\\Plugin\\Alipay\\PreparePlugin->getAlipayRootCertSn(Array)
#5 /Users/miniwater/project/vendor/yansongda/pay/src/Plugin/Alipay/PreparePlugin.php(25): Yansongda\\Pay\\Plugin\\Alipay\\PreparePlugin->getPayload(Array)
#6 /Users/miniwater/project/vendor/yansongda/supports/src/Pipeline.php(132): Yansongda\\Pay\\Plugin\\Alipay\\PreparePlugin->assembly(Object(Yansongda\\Pay\\Rocket), Object(Closure))
#7 /Users/miniwater/project/vendor/yansongda/supports/src/Pipeline.php(90): Yansongda\\Supports\\Pipeline->Yansongda\\Supports\\{closure}(Object(Yansongda\\Pay\\Rocket))
#8 /Users/miniwater/project/vendor/yansongda/pay/src/Provider/AbstractProvider.php(73): Yansongda\\Supports\\Pipeline->then(Object(Closure))
#9 /Users/miniwater/project/vendor/yansongda/pay/src/Provider/AbstractProvider.php(43): Yansongda\\Pay\\Provider\\AbstractProvider->pay(Array, Array)
#10 /Users/miniwater/project/vendor/yansongda/pay/src/Provider/Alipay.php(43): Yansongda\\Pay\\Provider\\AbstractProvider->call('\\\\Yansongda\\\\Pay\\\\...', Array)
#11 /Users/miniwater/project/routes/api.php(66): Yansongda\\Pay\\Provider\\Alipay->__call('app', Array)
#12 /Users/miniwater/project/vendor/laravel/framework/src/Illuminate/Routing/Route.php(230): App\\Providers\\RouteServiceProvider->{closure}(Object(Illuminate\\Http\\Request))
#13 /Users/miniwater/project/vendor/laravel/framework/src/Illuminate/Routing/Route.php(200): Illuminate\\Routing\\Route->runCallable()
#14 /Users/miniwater/project/vendor/laravel/framework/src/Illuminate/Routing/Router.php(693): Illuminate\\Routing\\Route->run()
#15 /Users/miniwater/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#16 /Users/miniwater/project/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#17 /Users/miniwater/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#18 /Users/miniwater/project/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(127): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#19 /Users/miniwater/project/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(103): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest(Object(Illuminate\\Http\\Request), Object(Closure), Array)
#20 /Users/miniwater/project/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(55): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequestUsingNamedLimiter(Object(Illuminate\\Http\\Request), Object(Closure), 'api', Object(Closure))
#21 /Users/miniwater/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle(Object(Illuminate\\Http\\Request), Object(Closure), 'api')
#22 /Users/miniwater/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#23 /Users/miniwater/project/vendor/laravel/framework/src/Illuminate/Routing/Router.php(695): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#24 /Users/miniwater/project/vendor/laravel/framework/src/Illuminate/Routing/Router.php(670): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#25 /Users/miniwater/project/vendor/laravel/framework/src/Illuminate/Routing/Router.php(636): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#26 /Users/miniwater/project/vendor/laravel/framework/src/Illuminate/Routing/Router.php(625): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#27 /Users/miniwater/project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(166): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#28 /Users/miniwater/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
#29 /Users/miniwater/project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#30 /Users/miniwater/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#31 /Users/miniwater/project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#32 /Users/miniwater/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#33 /Users/miniwater/project/vendor/fruitcake/laravel-cors/src/HandleCors.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#34 /Users/miniwater/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fruitcake\\Cors\\HandleCors->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#35 /Users/miniwater/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#36 /Users/miniwater/project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(141): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#37 /Users/miniwater/project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#38 /Users/miniwater/project/public/index.php(52): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#39 /Users/miniwater/project/server.php(21): require_once('/Users/miniwate...')
#40 {main}
"} 

alipay.log

config
pay.php

<?php

declare(strict_types=1);

use Yansongda\Pay\Pay;

return [
    'alipay' => [
        'default' => [
            // 支付宝分配的 app_id
            'app_id' => '***********',
            // 应用私钥
            'app_secret_cert' => '***********,
            // 应用公钥证书 路径
            'app_public_cert_path' => app_path('Help/cert/appCertPublicKey.crt'),
            // 支付宝公钥证书 路径
            'alipay_public_cert_path' => app_path('Help/cert/alipayCertPublicKey.crt'),
            // 支付宝根证书 路径
            'alipay_root_cert_path' => app_path('Help/cert/alipayRootCert.crt'),
            'return_url' => '',
            'notify_url' => 'https://***********,
            'mode' => Pay::MODE_NORMAL,
        ],
    ],
    'wechat' => [
        'default' => [
            // 公众号 的 app_id
            'mp_app_id' => '***********',
            // 小程序 的 app_id
            'mini_app_id' => '***********',
            // app 的 app_id
            'app_id' => '***********',
            // 商户号
            'mch_id' => '',
            // 合单 app_id
            'combine_app_id' => '',
            // 合单商户号
            'combine_mch_id' => '',
            // 商户秘钥
            'mch_secret_key' => '',
            // 商户私钥
            'mch_secret_cert' => '',
            // 商户公钥证书路径
            'mch_public_cert_path' => '',
            // 微信公钥证书路径
            'wechat_public_cert_path' => '',
            'mode' => Pay::MODE_NORMAL,
        ],
    ],
    'http' => [ // optional
        'timeout' => 5.0,
        'connect_timeout' => 5.0,
        // 更多配置项请参考 [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html)
    ],
    // optional,默认 warning;日志路径为:sys_get_temp_dir().'/logs/yansongda.pay.log'
    'log' => [
        'enable' => true,
        'file' => storage_path('logs/alipays.log'),
        'level' => 'debug',
        'type' => 'single', // optional, 可选 daily.
        'max_file' => 30,
    ],
];

是不是配置错了

支付宝重新生成crt还是一样

换旧版的2.3解决了,转账功能看日志缺了参数

$order = [
    'out_biz_no' => time(),
    'trans_amount' => '0.01',
    'product_code' => 'TRANS_ACCOUNT_NO_PWD',
    'payee_info' => [
        'identity' => 'ghdhjw7124@sandbox.com',
        'identity_type' => 'ALIPAY_LOGON_ID',
    ],
    'biz_scene'=>'DIRECT_TRANSFER'//补上就好了
];

$result = $alipay->transfer($order);

新版依然不知道哪里有问题。。。。。。