63 lines
2.2 KiB
PHP
63 lines
2.2 KiB
PHP
<?php
|
|
require __DIR__ . '/sign.php';
|
|
|
|
$BASE_URL = rtrim(getenv('BASE_URL') ?: 'https://example.com', '/');
|
|
$ACCESS_KEY = getenv('ACCESS_KEY') ?: 'your_access_key';
|
|
$SECRET_KEY = getenv('SECRET_KEY') ?: 'your_secret_key';
|
|
$PAY_CHANNEL_ID = getenv('PAY_CHANNEL_ID') ?: '821';
|
|
|
|
function post_json(string $path, array $body): array {
|
|
global $BASE_URL, $SECRET_KEY;
|
|
$body['Sign'] = build_sign($body, $SECRET_KEY);
|
|
$ch = curl_init($BASE_URL . $path);
|
|
curl_setopt_array($ch, [
|
|
CURLOPT_POST => true,
|
|
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
|
|
CURLOPT_POSTFIELDS => json_encode($body, JSON_UNESCAPED_UNICODE),
|
|
CURLOPT_RETURNTRANSFER => true,
|
|
CURLOPT_TIMEOUT => 30,
|
|
]);
|
|
$resp = curl_exec($ch);
|
|
if ($resp === false) {
|
|
throw new RuntimeException(curl_error($ch));
|
|
}
|
|
curl_close($ch);
|
|
return json_decode($resp, true) ?: [];
|
|
}
|
|
|
|
$cmd = $argv[1] ?? '';
|
|
if ($cmd === 'balance') {
|
|
echo json_encode(post_json('/api/apiv1/open/withdrawal/querybalance', [
|
|
'Timestamp' => time(),
|
|
'AccessKey' => $ACCESS_KEY,
|
|
]), JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT), PHP_EOL;
|
|
} elseif ($cmd === 'submit') {
|
|
$orderNo = 'OrderNo' . time();
|
|
echo json_encode(post_json('/api/apiv1/open/withdrawal/submit', [
|
|
'Timestamp' => time(),
|
|
'AccessKey' => $ACCESS_KEY,
|
|
'PayChannelId' => $PAY_CHANNEL_ID,
|
|
'OrderNo' => $orderNo,
|
|
'Amount' => '100.01',
|
|
'CallbackUrl' => 'https://xxxxx.com/xxxx/callback',
|
|
'Ext' => '-',
|
|
'Payee' => '张三',
|
|
'PayeeNo' => '6235753100001261596',
|
|
'PayeeAddress' => '招商银行',
|
|
]), JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT), PHP_EOL;
|
|
} elseif ($cmd === 'query') {
|
|
$orderNo = $argv[2] ?? '';
|
|
if ($orderNo === '') {
|
|
fwrite(STDERR, "usage: php demo.php query <OrderNo>\n");
|
|
exit(1);
|
|
}
|
|
echo json_encode(post_json('/api/apiv1/open/withdrawal/queryorder', [
|
|
'Timestamp' => time(),
|
|
'AccessKey' => $ACCESS_KEY,
|
|
'OrderNo' => $orderNo,
|
|
]), JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT), PHP_EOL;
|
|
} else {
|
|
fwrite(STDERR, "usage: php demo.php balance|submit|query <OrderNo>\n");
|
|
exit(1);
|
|
}
|