upcecconnect/upc-payment-sdk

UPC电子商务SDK

dev-master 2022-10-31 12:24 UTC

This package is auto-updated.

Last update: 2024-09-29 06:14:56 UTC


README

数据订阅

使用示例

<?php
require __DIR__ . '/../app/sdk.php';

use UPC\UpcSDK;
use UPC\UpcPaymentData;

$sdk = new UpcSDK(__DIR__ . '/../keys/private.pem');
$payment_data = new UpcPaymentData('77777799004', 'E9977774', 1111, '23', '520', 100);

$signature = $sdk->signature($payment_data);

var_dump($signature);

UpcSDK 类,构造函数需要传递私有密钥路径 UpcSDK->signature 方法用于生成签名,接受 UpcPaymentData 类的实例以生成支付对象,构造函数需要传递以下参数

  • string $MerchantID;
  • string $TerminalID;
  • int $PurchaseTime;
  • string $OrderID;
  • string $Currency;
  • int $TotalAmount;

示例

$payment_data = new UpcPaymentData('77777799004', 'E9977774', 1111, '23', '520', 100);

返回

<?php
require __DIR__ . '/../app/sdk.php';

use UPC\UpcSDK;
$sdk = new UpcSDK(__DIR__ . '/../keys/private.pem');

$reversal = $sdk->reversal(
    [
        'MerchantID' => '77777799004',
        'TerminalID' => `E9977774`,
        "PurchaseTime" => time(),
        "OrderID" => 1,
        "CurrencyID" => "980",
        "TotalAmount" => 100,
        "RRN" => "AX1122121212",
        "ApprovalCode" => 121212,
        "RefundAmount" => 100
    ]
);

数据订阅

用于签名的类为 Sign,每个方法都是静态的,接受参数和密钥路径

<?php
use UPC\Sign;

Sign::paymentSign($params, $privateKeyPath);
Sign::recurrentPaymentSign($params, $privateKeyPath);
Sign::reversalPaymentSign($params, $privateKeyPath);
Sign::preAuthorizationSign($params, $privateKeyPath);

示例

<?php 
use UPC\Sign;

 $signature = Sign::reversalPaymentSign($params, $private_key);

查询交易状态

使用示例

<?php
require __DIR__ . '/../app/sdk.php';

use UPC\UpcSDK;
use UPC\UpcPaymentData;

$sdk = new UpcSDK(__DIR__ . '/../keys/private.pem');
$payment_data = new UpcPaymentData('77777799004', 'E9977774', 1111, '23', '520', 100);

$trans_state = $sdk->tranState($payment_data, 'ecg.test.upc.ua');

var_dump($trans_state);

UpcSDK 类,构造函数需要传递私有密钥路径 UpcSDK->tranState 方法用于生成签名,接受 UpcPaymentData 对象,以及作为可选参数的测试环境 URL,这将是一个 ecg.test.upc.ua

创建表单

使用示例

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Checkout Page</title>
</head>

<body>

    <?php
    require __DIR__ . '/../app/sdk.php';

    use UPC\UpcSDK;
    use UPC\UpcPaymentData;

    $sdk = new UpcSDK(__DIR__ . '/../keys/private.pem');
   

    $signature = $sdk->signature($payment_data);
    $trans_state = $sdk->tranState($payment_data, "secure.upc.ua");


        $post_data = [
            'Version' => 1,
            'MerchantID' => '1111111',
            'TerminalID'   => 'E9977774',
            'TotalAmount' => 1111,
            'Currency' => '980',
            'locale' => 'en',
            'PurchaseTime' => 150611110821,
            'OrderID' => '150611110821x',
            'PurchaseDesc' => 'tran test',
        ];
        $payment_data = new UpcPaymentData($post_data['MerchantID'], 
                                        $post_data['TerminalID'],
                                        $post_data['PurchaseTime'], 
                                        $post_data['OrderID'],
                                        $post_data['Currency'],
                                        $post_data['TotalAmount'] );
        $post_data['Signature'] = $sdk->signature($payment_data);
    ?>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <form action="https://secure.upc.ua/go/pay" method="POST">
        <?php 
            foreach ($post_data as $name => $value) {
                echo "<input name=\"$name\" type=\"hidden\" value=\"$value\" />";
            }
        
        ?>
        <input type="submit" />
    </form>

</body>

</html>