0

Omnipay を使用して Paypal エクスプレス チェックアウトにリダイレクトする e コマース Web サイトがあります。ユーザーをPaypalに正しくリダイレ​​クトし、payerIDとすべてを含む成功メッセージを返します. ただし、実際には支払いは発生せず、支払いが行われたとしてもPayPalアカウントに表示されません. これがペイパルの問題なのか、オムニペイの設定の問題なのかはわかりません。Paypal がこの部分を処理していると思いますが、機能していないためです (古いサイトでは問題なく機能しますが、Omnipay は使用していません)。

    $gateway = Omnipay::gateway('paypal');

    //production
    $gateway->setUsername('11111111');
    $gateway->setPassword('1111111111');
    $gateway->setSignature('111111111');

    $cardInput = array(
        'firstName' => $info['first_name_bill'],
        'lastName' => $info['last_name_bill'],
        'billingAddress1' => $info['street_address_1_bill'],
        'billingAddress2' => $info['street_address_2_bill'],
        'billingPhone' => $info['phone_bill'],
        'billingCity' => $info['city_bill'],
        'billingState' => $info['state_bill'],
        'billingPostCode' => $info['zip_bill'],
        'shippingAddress1' => $info['street_address_1_ship'],
        'shippingAddress2' => $info['street_address_2_ship'],
        'shippingPhone' => $info['phone_ship'],
        'shippingCity' => $info['city_ship'],
        'shippingState' => $info['state_ship'],
        'shippingPostCode' => $info['zip_ship'],
    );

    $card = Omnipay::creditCard($cardInput);

    //live
    $response = Omnipay::purchase(
        array(
            'cancelUrl' => 'http://store.site.com/cart/cancel-payment',
            'returnUrl' => 'http://store.site.com/cart/successful-payment',
            'amount' => Input::get('total'),
            'currency' => 'USD',
            'card' => $card,
            'description' => 'Stuff'
        )
    )->send();

    if ($response->isSuccessful()) {
        return Redirect('cart/successful-payment');
    } elseif ($response->isRedirect()) {
        $response->redirect(); // this will automatically forward the customer
    } else {
        return Redirect::back()->with('error', 'There was a problem. Please try again.');
    }
} else {
    return Redirect::to('cart/successful-payment');
}

したがって、基本的にこれが行うことは、支払いを行うために Paypal にリダイレクトしてから、私たちのストアにリダイレクトすることです。それはすべてうまくいきます。カード番号を入力し、送信後に当店に戻ってきます。問題は、返品後、paypal で何も起こらないことです。注文または支払いは交換されません。

4

1 に答える 1

1

リターン関数では、この URL が実行されたときに呼び出される関数: http://store.site.com/cart/successful-paymentを呼び出す必要があります。このようなもの:

        $gateway = Omnipay::gateway('paypal');

        //production
        $gateway->setUsername('11111111');
        $gateway->setPassword('1111111111');
        $gateway->setSignature('111111111');
        $purchaseId = $_GET['PayerID'];
        $response = $gateway->completePurchase([
            'transactionReference' => $purchaseId
        ])->send();
        // .. check $response here.
于 2015-02-13T20:38:01.663 に答える