QuickPayのPaypal決済を円と日本語で使う
QuickPay - Payments with Paypal でデフォルトは決済はドルのみの対応で、商品名に日本語を入れても文字化けする場合があるので、円と日本語に対応させます。
packagesのquickpayの form.php と view.phpをapplication > blocks にquickpayフォルダを作成し図のようにファイル構成でコピーします。
form.phpの内容の以下の部分を変更します。
<div class="form-group">
<?php echo $form->label('productPrice', t('Product Price'));?>
<div class="input-group">
<div class="input-group-addon">$</div>
<?php echo $form->text('productPrice', $productPrice?$productPrice:"10");?>
<div class="input-group-addon">.00</div>
</div>
</div>
20行目あたりからの「$」と円は小数点に対応してませんので、削除します。
<div class="form-group">
<?php echo $form->label('productPrice', t('Product Price'));?>
<div class="input-group">
<div class="input-group-addon">¥</div>
<?php echo $form->text('productPrice', $productPrice?$productPrice:"10");?>
<div class="input-group-addon"></div>
</div>
</div>
view.phpのロケーションのhiddenタグを変更
<input type="hidden" name="lc" value="US">
↓
<input type="hidden" name="lc" value="JP">
currency_codeのhiddenタグを変更
<input type="hidden" name="currency_code" value="USD">
↓
<input type="hidden" name="currency_code" value="JPY">
gif画像のURLを変更
<input type="hidden" name="bn" value="PP-BuyNowBF:btn_buynowCC_LG.gif:NonHostedGuest"><img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
↓
<input type="hidden" name="bn" value="PP-BuyNowBF:btn_buynowCC_LG.gif:NonHostedGuest"><img alt="" border="0" src="https://www.paypalobjects.com/ja_JP/i/scr/pixel.gif" width="1" height="1">
ボタン表記の単位を¥にします。
<button class="btn btn-primary"><?php echo $fixedLabel?> ($<?php echo $productPrice?>)</button>
↓
<button class="btn btn-primary"><?php echo $fixedLabel?> (¥<?php echo $productPrice?>)</button>
QuickPayブロックのカスタムテンプレートから、作成したJP を選択します。
これで入力フォームも円表示されます。
購入ボタンも円表示されます。
ただこのまま購入をクリックしても、Paypalで商品名が文字化けしてしまいます。
これはPaypalの設定がデフォルトでShift-jisになっていますので文字コードを変更します。
※注)Paypalのインターフェイスは突然変わりますので、異なる場合もあります。
Paypalにログインしてマイアカウントで個人設定をクリックします。プルダウンメニューが出てきますが、そのまま個人設定をクリックしてください。
個人設定サイドバーの販売設定をクリック、一番下部にある「PayPalボタンの言語コード化」をクリックします。
言語のエンコード画面で詳細オプションをクリックします。
その他のエンコードオプションでエンコード方式をUTF-8、Paypalから送信されたデータを同じエンコード方式を使用しますかを「はい」にして保存します。
購入ボタンをクリックすると商品名を日本語で価格は円で表示されます。