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

响应对象-使用Mollie和Omnipay付款

宋华美
2023-03-14

我试图在我的Laravel项目中创建一个与OmniPay和Mollie的付款。我使用以下2个库:

  • https://github.com/barryvdh/laravel-omnipay
  • https://github.com/thephpleague/omnipay-mollie

我在代码中执行以下操作:

$gateway = Omnipay\Omnipay::create('Mollie');

$gateway->setApiKey('test_gSDS4xNA96AfNmmdwB3fAA47zS84KN');

$params = [
    'amount' => $ticket_order['order_total'] + $ticket_order['organiser_booking_fee'],
    'description' => 'Bestelling voor klant: ' . $request->get('order_email'),
    'returnUrl' => URL::action('EventCheckoutController@fallback'),
];


$response = $gateway->purchase($params)->send();

if ($response->isSuccessful()) {
    session()->push('ticket_order_' . $event_id . '.transaction_id',
        $response->getTransactionReference());

    return $this->completeOrder($event_id);
}

付款有效。付款完成后,他回到函数回退。但是我不知道在这个函数中放什么,如果($响应-

付款后我需要做的最重要的事情是:

session()->push('ticket_order_' . $event_id . '.transaction_id',
        $response->getTransactionReference());

return $this->completeOrder($event_id);

有人能帮我弄清楚如何使用回退函数和上面的函数吗?

共有1个答案

卢翔宇
2023-03-14

使用Mollie的典型设置由三个单独的页面组成:

  • 用于创建付款的页面

Mollie文档中描述了整个流程。还可以查看该页面上的流程图。

免责声明:我自己从未使用过OmniPay,也没有测试以下代码,但它至少应该给你一个如何设置项目的想法。

创建付款:

$gateway = Omnipay\Omnipay::create('Mollie');
$gateway->setApiKey('test_gSDS4xNA96AfNmmdwB3fAA47zS84KN');

$params = [
    'amount' => $ticket_order['order_total'] + $ticket_order['organiser_booking_fee'],
    'description' => 'Bestelling voor klant: ' . $request->get('order_email'),
    'notifyUrl' => '', // URL to the second script
    'returnUrl' => '', // URL to the third script
];

$response = $gateway->purchase($params)->send();

if ($response->isRedirect()) {
    // Store the Mollie transaction ID in your local database
    store_in_database($response->getTransactionReference());
    // Redirect to the Mollie payment screen
    $response->redirect();
} else {
    // Payment failed: display message to the customer
    echo $response->getMessage();
}

接收webhook:

$gateway = Omnipay\Omnipay::create('Mollie');
$gateway->setApiKey('test_gSDS4xNA96AfNmmdwB3fAA47zS84KN');

$params = [
    'transactionReference' => $_POST['id'],
];

$response = $gateway->fetchTransaction($params);

if ($response->isPaid()) {
    // Store in your local database that the transaction was paid successfully
} elseif ($response->isCancelled() || $response->isExpired()) {
    // Store in your local database that the transaction has failed
}

消费者返回到的页面:

// Check the payment status of your order in your database. If the payment was paid
// successfully, you can display an 'OK' message. If the payment has failed, you
// can show a 'try again' screen.

// Most of the time the webhook will be called before the consumer is returned. For
// some payment methods however the payment state is not known immediately. In
// these cases you can just show a 'payment is pending' screen.
 类似资料:
  • 我目前一直在尝试使用Omnipay创建付款。我的项目中安装了以下库: https://github.com/barryvdh/laravel-omnipay 但是我开始有问题了。我在例子中看到我需要这些参数: 但是美元发行人是什么?我想和莫莉在一起。 有没有人会举一个例子,把laravel Omnipay和Mollie一起使用? 更新: 我正在尝试使用ajax调用提交表单。在我的PHP函数中,我有

  • 我们使用Paypal Express作为结账,使用Omnipay php库。现在买家输入密码并同意在paypal站点上付款后,他会被返回到首页的成功页面。 我现在想知道,我如何才能验证支付真的是成功的?手动调用成功页面并不是很难实现虚假的成功支付... 我得到一个付款ID和一个标记在后面-重定向。 多谢帮忙。

  • 我正在尝试学习在Quarkus框架上使用ReactiveMongoClient。 我以大学的身份发送回复部分成功 但是,当我尝试获取其他类的对象(StaffResponse)以包含用于分页的链接对象时,我没有得到任何Staff记录。(目前,我有用于分页的硬编码链接) 响应中的“staff”为空。 MongoClient正在返回人员列表ok,看起来响应对象没有获取该列表。试图阅读SmallRye的叛

  • 我试图通过omnipay php库实现Mollie API。 然而,我有几个问题是我自己无法理解的。 > 当我选择要返回为已取消的付款状态,并进一步单击您的网店时,Mollie将我重定向到“付款方式”页面(您选择使用哪种付款方式的页面),这是否正确? 如果no.1正确,我应该如何测试失败的事务? 任何帮助将不胜感激。 谢谢。

  • 概述 Django 使用Request 对象和Response 对象在系统间传递状态。 当请求一个页面时,Django会建立一个包含请求元数据的 HttpRequest 对象。 当Django 加载对应的视图时,HttpRequest 对象将作为视图函数的第一个参数。每个视图会返回一个HttpResponse 对象。 本文档对HttpRequest 和HttpResponse 对象的API 进行说

  • Koa Response对象是节点的vanilla响应对象之上的抽象,提供了对日常HTTP服务器开发有用的附加功能。 Koa响应对象嵌入在上下文对象中, this 。 每当我们收到请求时,让我们注销响应对象。 var koa = require('koa'); var router = require('koa-router'); var app = koa(); var _ = router()