c5_labsci/web/admin/demo/setpage.php
2026-01-27 00:52:00 +08:00

251 lines
10 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace web\admin\demo;
class setpage {
public static function json_init() {
global $db;
$rsuser = verifyfast();
$post = new \ciy\post();
$csql = new \ciy\sql('hf_providerbase');
$csql->where('id', $rsuser['s_a']);
$ret['data'] = $db->getone($csql);
$csql = new \ciy\sql('hf_providerkey');
$csql->where('id', $rsuser['s_a']);
$csql->column('ali_appid');
$ret['key'] = $db->getone($csql);
return succjson($ret);
}
public static function json_editserv() {
global $db;
$rsuser = verifyfast();
//if (nopower($db, $rsuser['id'], 'p u'))
// return errjson('您未被授权操作');
$post = new \ciy\post();
$serviceimg = $post->get('serviceimg');
try {
$db->begin();
$updata = array();
$updata['serviceimg'] = $serviceimg;
$csql = new \ciy\sql('hf_providerbase');
$csql->where('id', $rsuser['s_a']);
if ($db->update($csql, $updata) === false)
throw new \Exception('更新失败:' . $db->error);
$db->commit();
} catch (\Exception $ex) {
$db->rollback();
savelogfile('err_db', $ex->getMessage());
return errjson($ex->getMessage());
}
return succjson();
}
public static function json_editrecv() {
global $db;
$rsuser = verifyfast();
//if (nopower($db, $rsuser['id'], 'p u'))
// return errjson('您未被授权操作');
$post = new \ciy\post();
$recvtype = $post->getint('recvtype');
$recvaccount = $post->get('recvaccount');
$recvname = $post->get('recvname');
if ($recvtype == 0)
return errjson('请选择账号类型');
if (empty($recvaccount))
return errjson('请输入收款账号');
if (empty($recvname))
return errjson('请输入收款人姓名');
try {
$db->begin();
$updata = array();
$updata['recvtype'] = $recvtype;
$updata['recvaccount'] = $recvaccount;
$updata['recvname'] = $recvname;
$csql = new \ciy\sql('hf_providerbase');
$csql->where('id', $rsuser['s_a']);
if ($db->update($csql, $updata) === false)
throw new \Exception('更新失败:' . $db->error);
$db->commit();
} catch (\Exception $ex) {
$db->rollback();
savelogfile('err_db', $ex->getMessage());
return errjson($ex->getMessage());
}
return succjson();
}
static function hex2dec($hex) {
$dec = 0;
$len = strlen($hex);
for ($i = 1; $i <= $len; $i++) {
$dec = bcadd($dec, bcmul(strval(hexdec($hex[$i - 1])), bcpow('16', strval($len - $i))));
}
return $dec;
}
static function array2string($array) {
$string = [];
if ($array && is_array($array)) {
foreach ($array as $key => $value) {
$string[] = $key . '=' . $value;
}
}
return implode(',', $string);
}
public static function json_editapp() {
global $db;
$rsuser = verifyfast();
//if (nopower($db, $rsuser['id'], 'p u'))
// return errjson('您未被授权操作');
$post = new \ciy\post();
$ali_appid = $post->get('ali_appid');
$pubkey = $post->get('pubkey'); //appCertPublicKey_2021005173683965.crt
$rootkey = $post->get('rootkey'); //alipayRootCert.crt
$apppub = $post->get('apppub'); //alipayCertPublicKey_RSA2.crt
$apppri = $post->get('apppri'); //应用私钥RSA2048-敏感数据,请妥善保管
if (empty($ali_appid))
return errjson('请输入APPID');
if (empty($pubkey))
return errjson('请输入公钥');
if (empty($rootkey))
return errjson('请输入root证书');
if (empty($apppub))
return errjson('请输入APP公钥');
if (empty($apppri))
return errjson('请输入APP私钥');
$ssl = openssl_x509_parse($pubkey);
if ($ssl === false)
return errjson('公钥格式错误');
$ali_app_cert_sn = '';
if (is_array($ssl['issuer']))
$ali_app_cert_sn = md5(self::array2string(array_reverse($ssl['issuer'])) . $ssl['serialNumber']);
if (empty($ali_app_cert_sn))
return errjson('app证书格式错误');
$array = explode("-----END CERTIFICATE-----", $rootkey);
$ali_root_cert_sn = null;
for ($i = 0; $i < count($array) - 1; $i++) {
$ssl[$i] = openssl_x509_parse($array[$i] . "-----END CERTIFICATE-----");
if (strpos($ssl[$i]['serialNumber'], '0x') === 0) {
$ssl[$i]['serialNumber'] = self::hex2dec($ssl[$i]['serialNumberHex']);
}
if ($ssl[$i]['signatureTypeLN'] == "sha1WithRSAEncryption" || $ssl[$i]['signatureTypeLN'] == "sha256WithRSAEncryption") {
if ($ali_root_cert_sn == null) {
$ali_root_cert_sn = md5(self::array2string(array_reverse($ssl[$i]['issuer'])) . $ssl[$i]['serialNumber']);
} else {
$ali_root_cert_sn = $ali_root_cert_sn . "_" . md5(self::array2string(array_reverse($ssl[$i]['issuer'])) . $ssl[$i]['serialNumber']);
}
}
}
if (empty($ali_root_cert_sn))
return errjson('root证书格式错误');
if (strpos($apppri, '-----BEGIN RSA PRIVATE KEY-----') === false) {
$apppri = "-----BEGIN RSA PRIVATE KEY-----\n" . chunk_split($apppri, 64, "\n") . "-----END RSA PRIVATE KEY-----";
}
try {
$db->begin();
$updata = array();
$updata['ali_appid'] = $ali_appid;
$updata['ali_app_cert_sn'] = $ali_app_cert_sn;
$updata['ali_root_cert_sn'] = $ali_root_cert_sn;
$updata['ali_publickey'] = $apppub;
$updata['ali_privatekey'] = $apppri;
$csql = new \ciy\sql('hf_providerkey');
$csql->where('id', $rsuser['s_a']);
if ($db->update($csql, $updata) === false)
throw new \Exception('更新失败:' . $db->error);
$db->commit();
} catch (\Exception $ex) {
$db->rollback();
savelogfile('err_db', $ex->getMessage());
return errjson($ex->getMessage());
}
return succjson();
}
public static function json_testapp() {
global $db;
$rsuser = verifyfast();
$csql = new \ciy\sql('hf_providerkey');
$csql->where('id', $rsuser['s_a']);
$keyrow = $db->getone($csql);
$model = array();
$model['personal_product_code'] = 'FUND_SAFT_SIGN_WITHHOLDING_P';
$model['product_code'] = 'FUND_SAFT_SIGN_WITHHOLDING';
$model['external_agreement_no'] = 'AX' . rand(10000, 99999); //bizno
$model['sign_scene'] = 'INDUSTRY|SATF_ACC';
$model['third_party_type'] = 'PARTNER';
$accessParams = array();
$accessParams['channel'] = 'QRCODE'; // 1. ALIPAYAPP 钱包h5页面签约 2. QRCODE(扫码签约) 3. QRCODEORSMS(扫码签约或者短信签约)
$model['access_params'] = $accessParams;
return succjson();
}
public static function json_prov_stop() {
global $db;
$rsuser = verifyfast();
try {
$db->begin();
$updata = array();
$updata['providerstatus'] = 20;
$csql = new \ciy\sql('hf_providerbase');
$csql->where('id', $rsuser['s_a']);
if ($db->update($csql, $updata) === false)
throw new \Exception('更新失败:' . $db->error);
$db->commit();
} catch (\Exception $ex) {
$db->rollback();
savelogfile('err_db', $ex->getMessage());
return errjson($ex->getMessage());
}
return succjson();
}
public static function json_prov_start() {
global $db;
$rsuser = verifyfast();
$csql = new \ciy\sql('hf_providerbase');
$csql->where('id', $rsuser['s_a']);
$providerrow = $db->getone($csql);
if ($providerrow['recvtype'] == 0 || empty($providerrow['recvaccount']) || empty($providerrow['recvname']))
return errjson('请配置收款账号');
if ($providerrow['depositmoney'] < 1)
return errjson('您的保证金不足');
$csql = new \ciy\sql('hf_providerkey');
$csql->where('id', $rsuser['s_a']);
$keyrow = $db->getone($csql);
if (!is_array($keyrow)) {
$updata = array();
$updata['ali_appid'] = '';
$updata['ali_app_cert_sn'] = '';
$updata['ali_root_cert_sn'] = '';
$updata['ali_publickey'] = '';
$updata['ali_privatekey'] = '';
$csql = new \ciy\sql('hf_providerkey');
$csql->where('id', $rsuser['s_a']);
if ($db->insert($csql, $updata) === false)
return errjson('添加key失败:' . $db->error);
$keyrow = array();
}
if (empty($keyrow['ali_appid']))
return errjson('请配置APPID');
if (empty($keyrow['ali_app_cert_sn']))
return errjson('请配置APP证书SN');
if (empty($keyrow['ali_root_cert_sn']))
return errjson('请配置根证书SN');
if (empty($keyrow['ali_publickey']))
return errjson('请配置APP公钥');
if (empty($keyrow['ali_privatekey']))
return errjson('请配置APP私钥');
try {
$db->begin();
$updata = array();
$updata['providerstatus'] = 10;
$csql = new \ciy\sql('hf_providerbase');
$csql->where('id', $rsuser['s_a']);
if ($db->update($csql, $updata) === false)
throw new \Exception('更新失败:' . $db->error);
$db->commit();
} catch (\Exception $ex) {
$db->rollback();
savelogfile('err_db', $ex->getMessage());
return errjson($ex->getMessage());
}
return succjson();
}
}