中国インターネット事情

ITを中心に中国の事 もろもろ

EC-CUBE2.11.X Paypalモジュール 遷移時に自動入力ハック

久々にEC-CUBEをいじってみると、いつの間にか大幅に代わっていた。
以前、書いたこの記事も、
https://chinese-homepage.com/modules/d3blog/details.php?bid=319&cid=16
新しいバージョンでは動かなかった。
2.11.X系用のペイパルモジュールの中身を見てみるとずいぶんと変更されているようだ。これでは動くはずはない。
そこで、また改造してみる。
ちなみにこれは、以前の記事と同じくペイパルサイトに遷移した時にカード情報以外の部分を予め自動入力してしまおうというハックである。

・EC-CUBE2.11.4
・ペイパル ウェブペイメント プラス モジュール
これの説明には月額3000円とか要審査とか書いてあるが、以前のような無料タイプのサービスもこのモジュールで利用できる。
http://store.ec-cube.net/products/detail.php?product_id=179

尚、この改造で適応できているのはPCのみである、携帯などは、別の改造が必要になる。

変更1
data/downloads/module/mdl_paypal/paypal_link.tpl 49行目くらいに以下を追加

    <input type="hidden" name="<!--{$key}-->" value="<!--{$arrForm[$key].value|h}-->" />
    <!--{assign var=key value="notify_url"}-->
    <input type="hidden" name="<!--{$key}-->" value="<!--{$arrForm[$key].value|h}-->" />

    //追加部分ここから
    <!--{assign var=key value="billing_address1"}-->
    <input type="hidden" name="<!--{$key}-->" value="<!--{$arrForm[$key].value|h}-->" />
    <!--{assign var=key value="billing_city"}-->
    <input type="hidden" name="<!--{$key}-->" value="<!--{$arrForm[$key].value|h}-->" />
    <!--{assign var=key value="billing_country"}-->
    <input type="hidden" name="<!--{$key}-->" value="<!--{$arrForm[$key].value|h}-->" />
    <!--{assign var=key value="billing_state"}-->
    <input type="hidden" name="<!--{$key}-->" value="<!--{$arrForm[$key].value|h}-->" />
    <!--{assign var=key value="billing_zip"}-->
    <input type="hidden" name="<!--{$key}-->" value="<!--{$arrForm[$key].value|h}-->" />
    <!--{assign var=key value="billing_first_name"}-->
    <input type="hidden" name="<!--{$key}-->" value="<!--{$arrForm[$key].value|h}-->" />
    <!--{assign var=key value="billing_last_name"}-->
    <input type="hidden" name="<!--{$key}-->" value="<!--{$arrForm[$key].value|h}-->" />
    <!--{assign var=key value="night_phone_b"}-->
    <input type="hidden" name="<!--{$key}-->" value="<!--{$arrForm[$key].value|h}-->" />
    <!--{assign var=key value="email"}-->
    <input type="hidden" name="<!--{$key}-->" value="<!--{$arrForm[$key].value|h}-->" />
    //追加部分終わり

    <input type="hidden" name="bn" value="EC-CUBE_cart_WPS_JP" />
    <input type="hidden" name="locale.x" value="ja_JP" />

変更2
 data/downloads/module/mdl_paypal/LC_Page_Mdl_Paypal_Helper_Link.php 112行くらいに以下を追加


            $objFormParam->addParam("undefined_quantity", "undefined_quantity", 1, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK"), PAYPAL_UNDEFINED_QUANTITY);

            //追加部分ここから
            $objFormParam->addParam("billing_city", "billing_city", MTEXT_LEN, "KVa", array("EXIST_CHECK"), $arrOrder['order_addr01']);
            $objFormParam->addParam("billing_address1", "billing_address1", MTEXT_LEN, "KVa", array("EXIST_CHECK"), $arrOrder['order_addr02']);
            $objFormParam->addParam("billing_country", "billing_country", MTEXT_LEN, "KVa", array("EXIST_CHECK"), PAYPAL_COUNTRY_CODE);
            $objFormParam->addParam("billing_state", "billing_state", MTEXT_LEN, "KVa", array("EXIST_CHECK"), $this->arrPref[$arrOrder['order_pref']]);
            $objFormParam->addParam("billing_zip", "billing_zip", MTEXT_LEN, "KVa", array("EXIST_CHECK"), $arrOrder['order_zip01'] ."-". $arrOrder['order_zip02']);
            $objFormParam->addParam("billing_first_name", "billing_first_name", MTEXT_LEN, "KVa", array("EXIST_CHECK"), $arrOrder['order_name02']);
            $objFormParam->addParam("billing_last_name", "billing_last_name", MTEXT_LEN, "KVa", array("EXIST_CHECK"), $arrOrder['order_name01']);
            $objFormParam->addParam("night_phone_b", "night_phone_b", STEXT_LEN, "KVa",array("MAX_LENGTH_CHECK"),$arrOrder["order_tel01"]."-".$arrOrder["order_tel02"]."-".$arrOrder["order_tel03"]);
            $objFormParam->addParam("email", "email", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK"), $arrOrder["order_email"]);
            //追加部分おわり

        } else {

 


これで、ページ遷移時にフォームへ自動入力されているはずです。
なお、不具合については特にチェックしていませんので、要テスト。
ハックの適用は自己責任でお願いします。