当前位置: 首页 > 知识库问答 >
问题:

Omnipay与Paypal Express

夏兴生
2023-03-14

我有一个电子商务网站,可以重定向到使用Omnipay的Paypal express结账。它将正确地将用户重定向到Paypal,并返回一条成功的消息,其中包含PayRid和所有内容。然而,它实际上并不接受任何付款,也不会像任何付款一样出现在我们的paypal帐户上。我不确定这是paypal的问题还是Omnipay的配置问题。我可以想象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什么也没发生。不交换订单或付款。

共有1个答案

巫马嘉祯
2023-03-14

在返回函数中,执行此URL时调用的函数:http://store.site.com/cart/successful-payment你需要打电话给completePurchase。比如:

        $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.
 类似资料:
  • 我试图使用omniPay为不支持的支付网关创建自定义网关。然而,我很难为我的提供商的3D安全实现创建响应类。 我看了一下sagepay,但是3D安全的响应似乎都在1个api请求中返回。 要完成3D安全支付,我需要执行以下操作: API请求检查卡是否在3D安全中注册 重定向用户(POST-Hidden Form)到一个url 验证3D安全值的API请求 付款(购买请求) 每个api请求是否需要不同的

  • Omnipay 是一个PHP支付处理库。统一的API支持数十个网关。 示例代码: use Omnipay\Omnipay;$gateway = Omnipay::create('Stripe');$gateway->setApiKey('abc123');$formData = ['number' => '4242424242424242', 'expiryMonth' => '6', 'expi

  • omnipay-wechat 是 omnipay 的微信支付网关扩展,提供基于 omnipay 支付框架的微信支付接口。

  • Omnipay-pingpp 是 omnipay PHP 支付处理库的 Ping ++ 驱动程序。 Ping++ 是国内领先的聚合支付服务商,集成了包括支付宝(APP、Wap、PC、即时到账、扫码、企业付款),微信(APP、公众号、红包), 银联网关、银联企业网银、Apple Pay、QQ 钱包、易宝支付、百度钱包、京东支付、京东白条、招行一网通、分期支付等国内主流支付渠道。 Omnipay 是一

  • 我想在中集成Omnipay paypal。我经历过,但我不明白该怎么做。我没找到任何文件。我经历过这个,这个,这个。我已经使用Composer安装了它。现在我对以下问题感到困惑。 > 这里会给谁的凭据?正在购买的人或将把钱转给的人。我在哪种情况下会给别人的证书? 用户将如何进行交易?我看过它的purchase和purchasecomplete函数,但不能理解它。在正常的Paypal集成中,我们通常

  • 我正在尝试将Omnipay Paypal包与我的Laravel4.1应用程序集成。我已经按照Omnipay的建议安装了laravel-omnipay包,并按照如何设置它的说明进行了操作。 我已经在Laravel的app.php文件中的providers数组和aliases数组中添加了laravel-omnipay包。配置文件也已创建。 我的composer.json有以下要求: ignited/l