JavaScript が無効になっているよ!

Opencart - Square Payment

 ·  ☕ 1 分(読了時間)  ·  🐨 Puliyo

最近Opencartをイジっていた。

公式で認められた統合会計ツール Square Payment で会計を行おうとした時、エラーが発生した。

“Confirm Order” を押下するとリクエストが飛ぶのだが返り値は 500、 UI上の警告メッセージも空。

ユーザー側では原因を特定できないため、サーバーのログを確認するとウェブサーバーに以下の記載が:

2019/02/06 15:53:49 [error] 29847#29847: *5250 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: Call to undefined function Squareup\bcmul() in /srv/opencart/html/system/library/squareup/api.php:788
Stack trace:
#0 /srv/opencart/html/catalog/controller/extension/payment/squareup.php(201): Squareup\Api->lowestDenomination(2730, 'JPY')
#1 /srv/opencart/storage/modification/system/engine/action.php(79): ControllerExtensionPaymentSquareup->checkout()
#2 /srv/opencart/html/catalog/controller/startup/router.php(25): Action->execute(Object(Registry))
#3 /srv/opencart/storage/modification/system/engine/action.php(79): ControllerStartupRouter->index()
#4 /srv/opencart/html/system/engine/router.php(67): Action->execute(Object(Registry))
#5 /srv/opencart/html/system/engine/router.php(56): Router->execute(Object(Action))
#6 /srv/opencart/html/system/framework.php(165): Router->dispatch(Object(Action), Object(Action))
#7 /srv/opencart/html/vqmod/vqcache/vq2-system_startup.php(104): require_once('/srv/opencart/h...')
#8 /srv/opencart/html/index.php(23): start('catalog" while reading response header from upstream, client: <IP>, server: store.puliyo.com, request: "POST /index.php?route=extension/payment/squareup/checkout HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.0-fpm.sock:", host: "store.puliyo.com", referrer: "https://store.puliyo.com/index.php?route=checkout/checkout"
2019/02/06 15:57:21 [error] 29848#29848: *5285 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: Call to undefined function Squareup\bcmul() in /srv/opencart/html/system/library/squareup/api.php:788

結構わかりやすいエラーでよかった。 ぐぐると一発でわかった。

原因は使用しているPHPに bcmul() が不足しているからである。

bcmul() は bcmath ライブラリの一部。

以下コマンドを実行しライブラリをインストールしてしまえばホイ解決。

sudo apt install php-bcmath

それでもダメな人はサーバー再起動とキャッシュ削除してみて。

シェア
支援