3

WooCommerce プラグインの拡張機能を書いていますが、複数の支払いで 1 つの問題が発生しました。PayPal を使用したいのですが、そのための最善の方法は PayPal アダプティブ ペイメントを実装することだと思います。PayPal と WooCommerce のドキュメントを読みましたが、わかりません。

ドキュメントに記載されているように、新しい支払いゲートウェイを定義しました: http://docs.woothemes.com/document/payment-gateway-api/

class WC_Gateway_Adaptive_PayPal extends WC_Payment_Gateway {

public $environment = 'sandbox';

public function __construct() {

    $this->notify_url = str_replace( 'https:', 'http:', add_query_arg( 'wc-api', 'WC_Gateway_Adaptive_Paypal', home_url( '/' ) ) );

    $this->id = 'adaptive_paypal';
    $this->has_fields = false;
    $this->method_title = 'PayPal';
    $this->method_description = 'Handle payment with many receivers (up to 5)';

    $this->init_form_fields();
    $this->init_settings();

    $this->title = $this->get_option( 'title' );

    add_action( 'woocommerce_update_options_payment_gateways_'.$this->id, array( $this, 'process_admin_options' ) );

}

public function init_form_fields() {

    $this->form_fields = array(
        'enabled' => array(
            'title' => __( 'Enable/Disable', 'wpgmpc' ),
            'type' => 'checkbox',
            'label' => __( 'Enable Adaptive PayPal Payment', 'wpgmpc' ),
            'default' => 'yes'
        ),
        'title' => array(
            'title' => __( 'Title', 'wpgmpc' ),
            'type' => 'text',
            'description' => __( 'This controls the title which the user sees during checkout.', 'wpgmpc' ),
            'default' => __( 'PayPal', 'wpgmpc' ),
            'desc_tip'      => true,
        ),
        'description' => array(
            'title' => __( 'Customer Message', 'wpgmpc' ),
            'type' => 'textarea',
            'default' => ''
        ),
        'percentage' => array(
            'title' => __( 'Fee', 'wpgmpc' ),
            'type' => 'number',
            'description' => __( 'Decide how much you want to take from each payment in %', 'wpgmpc' ),
            'desc_tip'      => true,
            'default' => '0'
        ),
        'receiver_email' => array(
            'title' => __( 'Receiver Email', 'woocommerce' ),
            'type'          => 'email',
            'description' => __( 'If this differs from the email entered above, input your main receiver email for your PayPal account. This is used to validate IPN requests.', 'woocommerce' ),
            'default' => '',
            'desc_tip'      => true,
            'placeholder'   => 'you@youremail.com'
        ),
    );

}

public function process_payment( $order_id ) {

}

}

しかし、WooCommerce に実装されているデフォルトの PayPal 支払いによると、それは本当にめちゃくちゃです。

- PayKey の API を呼び出す必要があります - cURL を使用する必要があります

ユーザーを PayPal の支払いページにリダイレクトする方法と、WooCommerce Gateway API 内でこの PayKey を取得する方法さえわかりません。SO で見つけたいくつかのスニペットを使用しましたが、まったく機能しませんでした。

どんな助けにも感謝します。ありがとう!

編集: 今、私は WordPress から process_payment メソッドでカスタム URL にリダイレクトできることに気付きました! しかし、まだ IPN の実装方法がわかりません。PayKey を受け取ったら、それを使って URL にリダイレクトできますか?

4

0 に答える 0