【ソニーペイメントサービス決済】会員無効時に登録済みカード決済の請求ステータスを変更するとK71のエラーが出る問題を修正する方法

カテゴリー : バグ修正
2019年07月16日 (火)

対象バージョン

CS-Cartスタンダード版 4.3.6-jp-1, 4.3.10-jp-1, 4.7.2-jp-1, 4.8.2-jp-1, 4.9.2-jp-1

概要

ソニーペイメントサービス決済において
登録済みカード決済後(または「次回以降のお買い物でこのカード情報を使用する」を指定した決済後)に登録済みカード情報を削除した場合、
登録済みカード決済の請求ステータスを変更すると K71 のエラーが表示され、
請求ステータスが変更できない問題を修正する方法です。
※この問題は登録済みカード情報削除後に、お客様がCS-Cartの会員パスワードを変更した場合のみ起こります。

※ 最新バージョンには適用済みです。

上記不具合を修正するには以下の通り修正する必要があります。

修正方法

下記の手順で app/addons/smartlink/func.php を修正してください。
 ----------------------------------------------------------------

  • 下記の関数を見つけてください。
    function fn_sln_get_kaiin_pass($user_id)

  • 関数内の下記のコードを見つけてください。
    
    }else{
        // 暗号化されたCS-Cartログインパスワードの先頭12桁を返す
        $encrypted_password = db_get_field("SELECT password FROM ?:users WHERE user_id = ?i", $user_id);
        return substr($encrypted_password, 0, 12);
    }
    

  • 上記コードを下記のコードに変更(赤字部分を追加)してファイルを保存してください。
    
    }else{
    
        $kaiin_del_pass = db_get_field("SELECT quickpay_id FROM ?:jp_sln_deleted_quickpay WHERE user_id = ?i", $user_id);
        if(!empty($kaiin_del_pass)){
            return $kaiin_del_pass;
        }
    
        // 暗号化されたCS-Cartログインパスワードの先頭12桁を返す
        $encrypted_password = db_get_field("SELECT password FROM ?:users WHERE user_id = ?i", $user_id);
        return substr($encrypted_password, 0, 12);
    }
    
 ----------------------------------------------------------------

※ お使いのCS-Cartのバージョンの確認方法は、 こちら をご参照ください。
※ CS-Cart Version 4.3.6, 4.3.10, 4.7.2, 4.8.2, 4.9.2 以外のバージョンをご利用の場合は、 こちら よりお問い合わせ願います。

 ----------------------------------------------------------------