当前位置: 首页>>代码示例>>PHP>>正文


PHP server::bankid方法代码示例

本文整理汇总了PHP中server::bankid方法的典型用法代码示例。如果您正苦于以下问题:PHP server::bankid方法的具体用法?PHP server::bankid怎么用?PHP server::bankid使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在server的用法示例。


在下文中一共展示了server::bankid方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: doit

function doit()
{
    global $dbdir, $bank_name, $bankurl;
    global $template_file;
    $init = mqreq('init');
    $initadmin = mqreq('initadmin');
    $drawadmin = mqreq('drawadmin');
    $passphrase = mqreq('passphrase');
    $verification = mqreq('verification');
    $bankpass = mqreq('bankpass');
    $name = mqreq('name');
    $random = mqreq('random');
    $sig = mqreq('sig');
    require_once "lib/fsdb.php";
    require_once "lib/ssl.php";
    require_once "lib/server.php";
    $ssl = new ssl();
    $db = new fsdb($dbdir);
    if ($init) {
        if (!$passphrase) {
            $error = "Passphrase must be entered";
        } elseif ($passphrase != $verification) {
            $error = "Passphrase doesn't match verification. Try again.";
        } else {
            $server = new server($db, $ssl, false, $bank_name, $bankurl);
            $t = $server->t;
            $bankid = $server->bankid;
            $tokenid = $server->tokenid;
            $msg = "(0,bankid,0):0";
            $res = $server->process($msg);
            $args = $server->unpack_bankmsg($res, $t->BANKID);
            if (is_string($args)) {
                $error = "Error testing server: {$args}";
            } else {
                $bal = $db->get("account/{$bankid}/balance/main/{$tokenid}");
                if (!$bal) {
                    $error = "Bank has no token balance";
                } else {
                    $args = $server->unpack_bankmsg($bal, $t->ATBALANCE, $t->BALANCE);
                    if (is_string($args)) {
                        $error = "On parsing bank token balance: {$args}";
                    }
                }
            }
        }
        // Initialize client
        if (!$error) {
            $dbdir = '';
            if (file_exists('client/settings.php')) {
                require_once "client/settings.php";
            }
            $dbdir = "client/{$dbdir}";
            $template_file = "client/{$template_file}";
            $error = die_unless_client_properly_configured(true);
            if (!$error) {
                require_once "lib/client.php";
                $clientdb = new fsdb("{$dbdir}");
                $client = new client($clientdb, $ssl);
                if ($enabledebug) {
                    $client->showprocess = 'appenddebug';
                }
                $hash = $client->passphrasehash($passphrase);
                if ($clientdb->get("privkey/{$hash}") || $clientdb->get("account/{$bankid}/bank/{$bankid}/req")) {
                    $error = $client->login($passphrase);
                    if ($error || $bankid != $client->id) {
                        $error = "Passphrase not for bank account";
                    }
                } else {
                    $privkey = $db->get('privkey');
                    $pk = $ssl->load_private_key($privkey);
                    if (!$pk) {
                        $error = "Can't load bank private key";
                    } else {
                        openssl_pkey_export($pk, $privkey, $passphrase);
                        openssl_free_key($pk);
                        $error = $client->verifybank($bankurl, $bankid);
                        if (!$error) {
                            $error = $client->newuser($passphrase, $privkey);
                        }
                    }
                }
            }
        }
        if (!$error) {
            $drawadmin = true;
            $bankpass = $passphrase;
            require_once "lib/LoomRandom.php";
            $random = new LoomRandom();
            $random = $random->random_id();
            $sig = trimsig($ssl->sign($random, $db->get('privkey')));
        }
    } elseif ($initadmin) {
        if (!$passphrase) {
            $error = "Passphrase must be entered";
        } elseif ($passphrase != $verification) {
            $error = "Passphrase doesn't match verification. Try again.";
        } else {
            // This requires you to get here by knowing the bank passphrase
            $sig = trimsig($sig);
            $newsig = trimsig($ssl->sign($random, $db->get('privkey')));
//.........这里部分代码省略.........
开发者ID:billstclair,项目名称:trubanc,代码行数:101,代码来源:bankinit.php


注:本文中的server::bankid方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。