94 lines
4.0 KiB
PHP
94 lines
4.0 KiB
PHP
<?php
|
|
//https://ciyon.local.ciy.cn/ajax/api/v1_test.transfer
|
|
//https://ciyon.local.ciy.cn/ajax/api/v1_test.query
|
|
namespace web\api;
|
|
|
|
class v1_test {
|
|
public static function json_transfer() {
|
|
$param = array();
|
|
$param['thirdno'] = '34538';
|
|
$param['amount'] = 100;
|
|
$param['notify_url'] = 'https://ciyon.ciy.cn/api/recv.transfer';
|
|
$param['timestamp'] = time();
|
|
$waitsignstr = 'amount=100,addtimes=' . $param['timestamp'];
|
|
clog($waitsignstr);
|
|
$param['sign'] = self::sign($waitsignstr);
|
|
$param = self::send($param, 'transfer');
|
|
}
|
|
public static function json_query() {
|
|
$param = array();
|
|
$param['thirdno'] = '34538';
|
|
$param['timestamp'] = time();
|
|
$param = self::send($param, 'query');
|
|
}
|
|
static function send($param, $func) {
|
|
global $db;
|
|
$appid = 215695;
|
|
$csql = new \ciy\sql('ap_api');
|
|
$csql->where('id', $appid);
|
|
$apirow = $db->getone($csql);
|
|
$apisecret = $apirow['apisecret'];
|
|
|
|
$param['appid'] = $appid;
|
|
$signstr = '';
|
|
ksort($param);
|
|
foreach ($param as $key => $value) {
|
|
if ($key == 'sign')
|
|
continue;
|
|
$signstr .= $key . '=' . $value . '&';
|
|
}
|
|
$signstr = substr($signstr, 0, -1);
|
|
$signstr .= $apisecret;
|
|
$hash = sha256($signstr);
|
|
$param['hash'] = $hash;
|
|
$urlget = 'https://ciyon.local.ciy.cn/ajax/api/v1.' . $func;
|
|
$http = new \ciy\http();
|
|
$http->request($urlget, json_encode($param));
|
|
$statcode = $http->get_statcode();
|
|
clog('test http status code: ' . $statcode);
|
|
$result = $http->get_data();
|
|
clog($result);
|
|
exit();
|
|
}
|
|
static function sign($data) {
|
|
$hashbin = hex2bin(sha256($data));
|
|
$prikey = <<<EOD
|
|
-----BEGIN PRIVATE KEY-----
|
|
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDI1V1v9Gf7lJRW
|
|
lbVoYUg6I/nwHNnysCmAn5ImkMQ9tGNLb4BzHhaBPrxOArEMvXHz8cadH7DcmVkr
|
|
khpaF9I4jLTW1w5o/U5YMn0dshwF8XA1izS67D6GtUO/JSubczbL0TrCNZeqSiuK
|
|
UrSmlqpM7nYpQdSa6URyXo4x32c0mbX6+42cfsOE4Ye3hW1vDZKZOQA4buVoYO0b
|
|
3uVbysQUtbQ5s+OjNTJYQ0ijlGwUIGMnlFaKVsip4OBv52gfXFDmsPkob9qTtCZO
|
|
Aw9slJChftCZevO1MHiWVBed+h7vIRE1oZHf8b0AB45R3OxOAFMRp3H49mYBvE02
|
|
BQ51m943AgMBAAECggEAEePf1O9CrAiKRkRDyq6Pzo4R36/SQmoq6EhOrpzKvmxp
|
|
Q/kEyjxt6Ml74L8gom/lzMNG3AxMpvoKFXWIX2or0dnG6jRyFiwqZHTq7FBHasgd
|
|
JMfnxJby4vEWvdpDzi8vPGzA/Tfk8Mh2pHXFnelh9kRvxjEVDU+mR0HhDNRHz0mR
|
|
mBdDKA/WSzkijUfp8C1aq/qj4Qjx1vnCIlaogXg/CfnUN1Mbj8Wr+egFEmmVb5Vd
|
|
NmpBeBQgnidMZJRUdbBrum7NQOsz6ixNk9x9jUi2JEAS9H7BeG1bNgbPddeWNhZl
|
|
0QzfaeMi523WwOKK9pVmqBw5mjzc/+TeGDOzqGl7kQKBgQDuPLkRnKefeEZfYSfb
|
|
QYXqw9Bf2FtlYPn+8ZYxRkUJGHyCSl0dsCD+EN7qz766Q4nEQdPleehpy0qIgoxI
|
|
Y91s12ZY4+uQSJ3KppIeSe5VHvWCnHSBGKEYEggWGnlxxUv+0133qQ4diah7y2/z
|
|
Un6QKlGu0Eei8FLz99l26Vup/QKBgQDXzrXBwGOI8miQVTR5LdL0KbhD89ESZ+Qe
|
|
e/yhIo6Q4P96rSd2oQYu3CIyZXpRB3RLamEdjtOMHGub5qixqp5QPuPamerzq/zZ
|
|
D0bIiiATIAnSZHAKojlyFYd9aC5/fD6rGJCVcfnG0MJBJoLnkXXHksCYVyTXYan8
|
|
JRi+CzE1QwKBgCgIsjzga1aj+odqpyz0HNHvp+ODUxB9NGWAKXIMUeuOXtXyMyWb
|
|
BGBNa3hgArgAQ3VkbnxAeSrWC6dW8MX1ai8xHzTO0DYFzeZRCXrnh5JsSmtxaS6M
|
|
ef22gf9c4Y2ZzwR6dm74zLNv/40WCbEE6tnFEsbinzclVXtD6hpOaqXtAoGBAIo0
|
|
7Lv3rQcAT6zXlHJiwW3y5fpGxEdoV3SabPD5A5qPLa5wBAz6FM6f1hq2WH5aKsU9
|
|
jJJ0bNCXRuch8jlODnNPw3a1Cf4h0B1mpis6Ik59Py0Je6OjvuxsE0hiFx04AZ5r
|
|
bfT3eEI2YaF9u2n4AxjbyBIIBSUWe9lqHI1g95OnAoGATtwi1tKfQ8qKPveBexMd
|
|
AoHAJW8CxnCQEC/2mqydiKiLQZTCTXqJqZLa4SvuHojMnDlnbslA5C69d6mBDWA+
|
|
mZ8Y/QE6M+LieH7UXGe5IhGdB4aympiOA1Ig/uDdpbjy0/OKi7UH4ZbDAtJ6jORn
|
|
N/r/sMhXDVJBjxNf3nJijDU=
|
|
-----END PRIVATE KEY-----
|
|
EOD;
|
|
$privateKey = $prikey;
|
|
if (strpos($privateKey, '-----BEGIN RSA PRIVATE KEY-----') === false && strpos($privateKey, '-----BEGIN PRIVATE KEY-----') === false)
|
|
$privateKey = "-----BEGIN PRIVATE KEY-----\n" . wordwrap($privateKey, 64, "\n", true) . "\n-----END PRIVATE KEY-----";
|
|
$result = openssl_sign($hashbin, $signature, $privateKey, OPENSSL_ALGO_SHA256);
|
|
if ($result !== true)
|
|
return errjson('签名错误:' . openssl_error_string());
|
|
return bin2hex($signature);
|
|
}
|
|
}
|