Magentoはpaypal支払い方法を使用してプログラムで注文を作成します


11

現在、2つのmagentoに依存しないWebサイトがあります。1つはストアフロントとして動作し、もう1つはバックエンドとして動作します。ユーザーはフロントエンドで注文できます。

同じ順序で、プログラムでバックエンドで作成しようとしています。ユーザーがcheckmo支払い方法で支払いを行うと機能します。しかし、ユーザーがPayPalを介して支払う場合、機能しません。では、PayPalの支払い方法を使用してプログラムで注文を作成する方法を知っている人はいますか?それは可能ですか?

$quote->getPayment()->importData(array(3) {
    [method] => paypal_express
    [last_trans_id] => 65Y31421KL2753028
    [additional_information] => Array
    (
        [paypal_express_checkout_shipping_method] => 
        [paypal_payer_id] => 5LX84SUFY39L4
        [paypal_payer_email] => abbas-buyer-2@bluewisesoft.com
        [paypal_payer_status] => verified
        [paypal_address_status] => Confirmed
        [paypal_correlation_id] => b78b4e5e6e527
        [paypal_express_checkout_payer_id] => 5LX84SUFY39L4
        [paypal_express_checkout_token] => EC-7P402752023166448
        [paypal_express_checkout_redirect_required] => 
        [paypal_protection_eligibility] => Eligible
        [paypal_payment_status] => pending
        [paypal_pending_reason] => authorization
    )
});

エラー:PayPalゲートウェイがリクエストを拒否しました。このトークンの正常なトランザクションはすでに完了しています(#10415:引数が無効なため、トランザクションが拒否されました。詳細については、追加のエラーメッセージを参照してください)。


同様の質問はここに答えた:magento.stackexchange.com/questions/211783/...
Sreejithゴピナス

回答:


4

実際の支払いを行う必要があるため、実際のP​​ayPal支払い方法で注文を作成することはできません。そのため、PayPalはリクエストを拒否しています。また、(リクエストを開始するために)PayPalにトークンを送信して、彼らがそれを確認できるようにする必要があります。

実際には2番目の支払いは必要ありませんが、(私が読むことができる限り)記録保持のためにそれを必要とするため、他のMagentoインスタンスに対して偽のPayPal支払いメソッドを作成し、転送時にそれを支払いメソッドとして設定するのが賢明かもしれませんオーダー。

Inchooはこれについて既に詳細に説明しているので(Magentoパーツを実装するだけでよいので、それほど難しくはありません)、ここにコピーして貼り付けるのではなく、リンクのみを提供します。http://inchoo.net/magento/how-to-create-magento-payment-module/

それを「paypal_proxy_payment」または何かと呼んで、そのメソッドを使用してください。


2

私は私の回答で1つのリンクを共有しています。リンクをたどって、カスタムコントローラーにコードをコピーして貼り付けてください。その後、支払い方法を変更する必要があります

内部

$this->orderData = array(
    'session'       => array(
        'customer_id'   => $this->_sourceCustomer->getId(),
        'store_id'      => $this->_storeId,
        ),
    'payment'       => array(
        'method'    => 'checkmo',
         ),
    );

checkmoあなたの代わりにあなたの支払い方法を書くことができます。

これをチェックしてください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.