stripeの請求額が100になるのを修正する

スポンサーリンク
Wordpress
スポンサーリンク
スポンサーリンク

stripeの請求額が100倍になって請求される。

この現象をプラグイン製作者に伝えたらすぐに修正したバージョンをUPしてくれました。
そのため、この記事通りにしなくても最新バージョンであれば問題ありません。== 2.1.3 – 2nd November 2017 ==
* Fixed bug with zero-decimal currencies (such as the yen), where customers are incorrectly charged.

テストモードだから良かったけど、本番環境ならユーザー側も真っ青ですね。

原因は、stripe側で日本円で処理する場合、小数点以下を小数点ではなく整数として処理してしまうようです。

ワードプレスで利用できるstripeとつなぐ事のできる、Event Organiser 等は海外製のプラグインのため、ドルベースで考えており、以下のように総額を100倍にしている。

そのため日本円で利用するときには、100倍の部分を削除して利用する必要がある。

Stripeの場合 以下のファイルを修正
/wp-content/plugins/event-organiser-stripe/class-eo-stripe-payment-gateway.php

before:
line 207
$total = intval( eo_get_booking_meta( $booking_id, 'booking_amount' ) * 100 );

after:
line 207
$total = intval( eo_get_booking_meta( $booking_id, 'booking_amount' ) );

まとめ

stripeは多通貨対応しているため、このような問題がおきます。

ワードプレスのプラグイン側で制御すれば良いことですが…。そのため、Gatewayとつなぐ海外製のプラグインはこういった点に注意して導入が必要です。