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

OmniPayPayPal快速结账

孔波
2023-03-14

我想将PayPalExpress Checkout与OmniPay集成,但留档完全未完成。我如何运行方法,如setExpressCheckout,doExpressCheckout和getExpressCheckout?此外,如何将所有PayPal呼叫重定向到IPN监听器?OmniPay提供所有这些方法还是只是其中的一部分?有人有机会使用这个库与快速结账?

问候!

共有1个答案

乌灿
2023-03-14

这不是一个答案,但首先让我建议您从PayPal Express切换到PayPal REST,因为后者有更好的文档记录和更新的界面。

实际答案是:OmniPay不是这样工作的。它不会直接公开底层网关方法,像setExpressCheckout、doExpressCheckout和getExpressCheckout这样的方法PayPal方法,而不是OmniPay方法。取而代之的是与网关无关的方法,如购买()和退款()等。

因此,对于omniPay-贝宝REST网关留档(作为类标题中的docblock)的示例,您可以这样做:

// Create a gateway for the PayPal RestGateway
// (routes to GatewayFactory::create)
$gateway = Omnipay::create('PayPal_Rest');

// Initialise the gateway
$gateway->initialize(array(
    'clientId' => 'MyPayPalClientId',
    'secret'   => 'MyPayPalSecret',
    'testMode' => true, // Or false when you are ready for live transactions
));

这只是初始化网关。PayPal express的流程与PayPal express相同,只是您使用PayPal_express作为网关名称,并且您的initialize()

然后进行购买,例如,如果你被允许这样做,用卡号:

// Create a credit card object
// DO NOT USE THESE CARD VALUES -- substitute your own
// see the documentation in the class header.
$card = new CreditCard(array(
            'firstName' => 'Example',
            'lastName' => 'User',
            'number' => '4111111111111111',
            'expiryMonth'           => '01',
            'expiryYear'            => '2020',
            'cvv'                   => '123',
            'billingAddress1'       => '1 Scrubby Creek Road',
            'billingCountry'        => 'AU',
            'billingCity'           => 'Scrubby Creek',
            'billingPostcode'       => '4999',
            'billingState'          => 'QLD',
));

// Do a purchase transaction on the gateway
try {
    $transaction = $gateway->purchase(array(
        'amount'        => '10.00',
        'currency'      => 'AUD',
        'description'   => 'This is a test purchase transaction.',
        'card'          => $card,
    ));
    $response = $transaction->send();
    $data = $response->getData();
    echo "Gateway purchase response data == " . print_r($data, true) . "\n";

    if ($response->isSuccessful()) {
        echo "Purchase transaction was successful!\n";
    }
} catch (\Exception $e) {
    echo "Exception caught while attempting authorize.\n";
    echo "Exception type == " . get_class($e) . "\n";
    echo "Message == " . $e->getMessage() . "\n";
}

执行重定向支付(如PayPal帐户支付)有些不同,但它记录在类docblocks中。请参阅src/Messages/RestPurchaseRequest。php

 类似资料:
  • PayPal。NET SDK 1.7.2(https://www.nuget.org/packages/PayPal/)支持快速结帐?我似乎在示例代码中找不到它。 如果没有,它是否提供了另一种在电子商务网站上进行支付的机制? 或者我应该使用PayPalMerchant SDK。NET 2.16.117(https://www.nuget.org/packages/PayPalMerchantSDK

  • 我试图集成PayPal快速退房在我们的网站上使用REST API与以下工作流程步骤。 客户添加项目到购物车,我们有项目列表信息(项目价格,数量,小计,但没有税,没有运输) 客户点击快速结账按钮,我们将估计的小计传递给PayPal 客户创建/选择送货地址 客户点击提交 客户返回我们的网站,并提供送货地址 根据发货地址计算客户的运费和税费 我们显示订单预览,其中包含总计=运费小计。 我们做另一个api

  • 本文向大家介绍VuePress 快速踩坑小结,包括了VuePress 快速踩坑小结的使用技巧和注意事项,需要的朋友参考一下 最近有个开源项目非常火,那就是尤小右开发的 VuePress,VuePress 可以让您非常方便的在 Markdown 文档中编写 Vue 代码,并且 VuePress 对编译后的 HTML 文件做了一些针对搜索引擎的优化。另外 VuePress 针对 Markdown 文件

  • 这一章描述了一个非常简单的 Groovy 项目. 通常, 一个真正的项目要比这个复杂的多. 因为 Groovy 项目是一个 Java 项目, 任何你可以对 Java 项目做的配置也可以对 Groovy 项目做. Chapter 24,The Groovy Plugin有更加详细的描述, 你也可以在 samples/groovy 目录里找到更多的例子.

  • 我正在尝试在我的快速结账集成中允许客人付款选项。 我导出呼叫中设置了和,但它不起作用。我仍然得到创建一个PayPal帐户的事情。 我听说我还需要在我的PayPal帐户中设置PayPal帐户可选为开。奇怪的是,我在我的商业帐户中找不到这个选项!知道吗?