• こんにちは、便利なプラグインありがとうございます。

    Paidy決済にてバーチャル商品(発送の必要がない)を注文する際に決済できず、色々調べた結果、おそらく Japanized for WooCommerce での問題?対応が必要だと思われたためご連絡しました。
    (発送が必要な商品は問題なく決済できました)

    ■テスト環境

    WordPressバージョン(最新バージョン)

    • WordPress: 6.6.2

    プラグイン(エラー再現のため2点のみ。すべて最新バージョン)

    • WooCommerce: 9.3.2
    • Japanized for WooCommerce: 2.6.17

    テーマ(最新バージョン)

    • Storefront: 4.6.0

    ■問題の箇所

    • WooCommerce Checkout 画面
    • → Paidy 選択
    • → Paidy Checkout ポップアップのフォームにメールアドレスと携帯番号を入力(テスト環境のため、Paidyから提供されている、承認されるメールアドレスと携帯番号)
    • → 決済エラー「ペイディの決済が承認されませんでした」

    ■原因と思われる箇所

    woocommerce-for-japan/includes/gateways/paidy/class-wc-gateway-paidy.php
    499 – 507行目辺り

    <?php if($not_virtual){ ?>
    "shipping_address": {
    "line1": "<?php echo $shipping_address['line1'];?>",
    "line2": "<?php echo $shipping_address['line2'];?>",
    "city": "<?php echo $shipping_address['city'];?>",
    "state": "<?php echo $shipping_address['state'];?>",
    "zip": "<?php echo $shipping_address['zip'];?>"
    },
    <?php } ?>

    woocommerce-for-japan ではバーチャル商品の場合、shipping_address を送信しないようにしていると思うのですが、Paidy のドキュメントを見ると、shipping_address は必須のようで、この事が原因で決済できないように思われました。

    以下補足事項

    • テスト時、$not_virtual は false (バーチャル商品として処理されていると思います)
    • 強制的に shipping_address の state と zip の2つだけを送信すると、バーチャル商品でも問題なく決済できました
    <?php //if($not_virtual){ ?>
    "shipping_address": {
    //"line1": "<?php echo $shipping_address['line1'];?>",
    //"line2": "<?php echo $shipping_address['line2'];?>",
    //"city": "<?php echo $shipping_address['city'];?>",
    "state": "東京",
    "zip": "000-0000"
    },
    <?php //} ?>

    説明長くなりすみません、お手数ですがご確認のほど宜しくお願いいたします。

    • This topic was modified 2 months, 1 week ago by gqevu6bsiz.
    • This topic was modified 2 months, 1 week ago by gqevu6bsiz.
  • You must be logged in to reply to this topic.