ECPay / SDK_PHP

30 stars 13 forks source link

example/Logistics/AllInOne/RedirectToLogisticsSelection.php 範例無效 #2

Closed oommgg closed 1 year ago

oommgg commented 1 year ago

https://github.com/ECPay/SDK_PHP/blob/eb9daf0cd1a8f2454588dd39daf149510e5c4f95/example/Logistics/AllInOne/RedirectToLogisticsSelection.php#L7-L37

L11

$postService = $factory->create('PostWithAesStrResponseService');

這似乎應該是 PostWithAesJsonResponseService 才對

L37

$response = $postService->post($input, $url);

這邊如果 TempLogisticsID0 時,回傳的值都是 [undefined],請問要如何新增暫存物流單呢?

erictseng618 commented 1 year ago

L11: 該 API 綠界 Response 參數是 Json 格式的字串,不是Json資料,若改成 PostWithAesJsonResponseService ,該範例會因為型態檢查而失敗 L37: 經確認可成功新增暫存物流單,因目前無法模擬出 [undefined] 情境, 若需要更進一步確認,請提供更詳細的 error log 至 techsupport@ecpay.com.tw

oommgg commented 1 year ago

恐怖的是,我在整個 /src 路徑下搜尋 PostWithAesStrResponseService 都找不到這個對應的 class 與 字串

執行直接報錯

[2022-10-21 11:29:29] local.ERROR: Class 'PostWithAesStrResponseService' not found {"userId":1,"exception":"[object] (Error(code: 0): Class 'PostWithAesStrResponseService' not found at /Users/Ben/src/xxxxx/vendor/ecpay/sdk/src/Factories/Factory.php:118)
[stacktrace]
#0 /Users/Ben/src/xxxxx/app/Http/Controllers/Api/V1/TestController.php(21): Ecpay\\Sdk\\Factories\\Factory->create('PostWithAesStrR...')
#1 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): App\\Http\\Controllers\\Api\\V1\\TestController->index()
#2 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction('index', Array)
#3 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Routing/Route.php(262): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(App\\Http\\Controllers\\Api\\V1\\TestController), 'index')
#4 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\\Routing\\Route->runController()
#5 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Routing/Router.php(721): Illuminate\\Routing\\Route->run()
#6 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#7 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#8 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#9 /Users/Ben/src/xxxxx/app/Http/Middleware/Token.php(22): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#10 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\Token->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#11 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(127): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#12 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(103): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest(Object(Illuminate\\Http\\Request), Object(Closure), Array)
#13 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(55): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequestUsingNamedLimiter(Object(Illuminate\\Http\\Request), Object(Closure), 'api', Object(Closure))
#14 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle(Object(Illuminate\\Http\\Request), Object(Closure), 'api')
#15 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#16 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Routing/Router.php(723): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#17 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Routing/Router.php(698): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#18 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Routing/Router.php(662): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#19 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Routing/Router.php(651): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#20 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(167): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#21 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
#22 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#23 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#24 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#25 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#26 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#27 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#28 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#29 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#30 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#31 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#32 /Users/Ben/src/xxxxx/vendor/fruitcake/laravel-cors/src/HandleCors.php(52): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#33 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fruitcake\\Cors\\HandleCors->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#34 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#35 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Http\\Middleware\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#36 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#37 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(142): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#38 /Users/Ben/src/xxxxx/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(111): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#39 /Users/Ben/src/xxxxx/public/index.php(52): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#40 /Users/Ben/src/xxxxx/server.php(21): require_once('/Users/Ben/src/...')
#41 {main}
"} 
oommgg commented 1 year ago

原來直接使用 composer require ecpay/sdk

安裝的版本是:

❯ composer info ecpay/sdk
name     : ecpay/sdk
descrip. : ECPay SDK
keywords :
versions : * 1.1.0
type     : library
license  : MIT License (MIT) (OSI approved) https://spdx.org/licenses/MIT.html#licenseText
homepage :
source   : [git] https://github.com/ECPay/SDK_PHP.git 5cbb10182652195c6f402a26c4f7749a5920658c
dist     : [zip] https://api.github.com/repos/ECPay/SDK_PHP/zipball/5cbb10182652195c6f402a26c4f7749a5920658c 5cbb10182652195c6f402a26c4f7749a5920658c
path     : /Users/Ben/src/aipaint/vendor/ecpay/sdk
names    : ecpay/sdk

autoload
psr-4
Ecpay\Sdk\ => src/

requires
php >=5.3

requires (dev)
phpunit/phpunit *

這個 tag 是 v1.1 的版本,要麻煩你們針對最新的版本打一個新的 tag 或是修改一下說明文件

composer require ecpay/sdk:dev-master

這樣才會同步到最新的版本

❯ composer require ecpay/sdk:dev-master
./composer.json has been updated
Running composer update ecpay/sdk
Loading composer repositories with package information
Updating dependencies
Lock file operations: 0 installs, 1 update, 0 removals
  - Upgrading ecpay/sdk (1.1.0 => dev-master eb9daf0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 0 installs, 1 update, 0 removals
  - Downloading ecpay/sdk (dev-master eb9daf0)
  - Upgrading ecpay/sdk (1.1.0 => dev-master eb9daf0): Extracting archive
AllennChang commented 1 year ago

感謝您的提醒, 已更新版本, 若有什麼問題, 歡迎再跟我們反應, 謝謝您