upcecconnect / upc-payment-sdk
UPC电子商务SDK
dev-master
2022-10-31 12:24 UTC
Requires
- php: ^8.0
- gamegos/jws: ^1.0
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>