knit-pay/payum-payu-india

Payum 扩展。它提供了 PayU India (payu.in) 和 PayUBiz 支付网关集成。

1.0.1 2022-11-16 14:57 UTC

This package is auto-updated.

Last update: 2024-09-16 19:03:36 UTC


README

Payum 扩展。它提供了 PayU India 和 PayUBiz 支付集成。

在继续之前,如果您还没有账户,请在 PayU 上创建一个账户。
在 PayU Live 上注册

对于测试,如果您还没有账户,请在 PayU UAT Dashboard 上创建一个账户。
在 PayU Test/UAT 上注册

安装

安装库的首选方式是使用 composer。运行 composer require 以将依赖项添加到 composer.json

php composer.phar require knit-pay/payum-payu-india php-http/guzzle6-adapter

使用 PayumBuilder(config.php)注册 payu_india Payum 工厂

use Payum\Core\GatewayFactoryInterface;
use KnitPay\PayuIndia\PayuIndiaGatewayFactory;

$payum = (new PayumBuilder())
    ->addDefaultStorages()
    ->addGatewayFactory('payu_india', function(array $config, GatewayFactoryInterface $gatewayFactory) {
        return new PayuIndiaGatewayFactory($config, $gatewayFactory);
    })
        
    ->addGateway('payu_india', [
        'factory' => 'payu_india',
        'merchant_key' => 'Key', // Change this.
        'merchant_salt' => 'Salt', // Change this.
        'sandbox' => true,
    ])

    ->getPayum()
;

prepare.php

在这里您需要修改 gatewayName 值。将其设置为 payu_india。其余部分几乎与基本 入门 文档中描述的相同。可以添加可选字段,如以下代码所示。

$gatewayName = 'payu_india';

/** @var \Payum\Core\Payum $payum */
$storage = $payum->getStorage($paymentClass);

$payment = $storage->create();
$payment->setNumber(uniqid());
$payment->setCurrencyCode('INR');
$payment->setTotalAmount(123); // 1.23 INR
$payment->setDescription('A description');
$payment->setClientId('anId');
$payment->setClientEmail('foo@example.com');

$payment->setDetails(array(
  // put here any fields in a gateway format.
  // for example if you use PayU India you can define optional fields like this.
  // Kindly refer to this link for more details. https://devguide.payu.in/docs/payu-hosted-checkout/payu-hosted-checkout-integration/https://devguide.payu.in/docs/payu-hosted-checkout/payu-hosted-checkout-integration/
  // Uncomment the optional field below that you want to pass to the payment gateway.
    //'firstname'          => 'First Name',
    //'lastname'           => 'Last Name',
    //'address1'           => 'Address Line 1',
    //'address2'           => 'Address Line 2',
    //'city'               => 'City',
    //'state'              => 'State',
    //'country'            => 'Country',
    //'zipcode'            => 'Zip Code',
    //'phone'              => 'Phone Number',
    //'pg'                 => 'CC',
    //'enforce_paymethod'  => 'creditcard',
    //'display_lang'       => 'Hindi'
));

capture.php

capture.php 几乎与基本 入门 文档中描述的相同。尽管有一些小的修改。我们需要处理 HttpPostRedirect 响应。

/** @var \Payum\Core\GatewayInterface $gateway */
if ($reply = $gateway->execute(new Capture($token), true)) {
    if ($reply instanceof HttpRedirect) {
        header("Location: ".$reply->getUrl());
        die();
    } elseif ($reply instanceof HttpPostRedirect) {
        echo $reply->getContent();
        die();
    }

    throw new \LogicException('Unsupported reply', null, $reply);
}

支持

欢迎您联系我们以获得所需的支持。 https://www.knitpay.org/contact-us/