获取致命错误调用unidentified方法Pass :: _ createpass()

时间:2016-06-01 11:41:31

标签: php function api

有人可以帮忙。我在以下PHP脚本上遇到致命错误。

我收到错误“unidentified method Pass :: _ createpass()”whick与下面代码的倒数第二行有关。

<?php

 $engine = Pass::start('xxxxxxxxxxxxxxxx');
 $pass = $engine->createPassFromTemplate(xxxxxxxxxxxxxx);
 $engine->redirectToPass($pass);

if (!function_exists('curl_init')) {
    throw new Exception('Pass needs the CURL PHP extension.');
}
if (!function_exists('json_decode')) {
    throw new Exception('Pass needs the JSON PHP extension.');
}

 $engine = Pass::start($appKey);
 $values = array(
    'first' => 'John',
    'last' => 'Platinum',
 );

 $images = array(
    'thumbnail' => 'image1.jpg'
 );

 $pass = $engine->createPassFromTemplate(5688667418918912, $values, $images);
 $passData = $engine->downloadPass($pass);
 $engine->redirectToPass($pass);

class Pass
{

    private $_appKey = null;

    private $_endpoint = 'https://pass.center/api/v1';

    private $_debug = false;

    private static $_instance = null;

    private static $_imageTypes = array('icon', 'logo', 'strip', 'thumbnail', 'background', 'footer');

    const VERSION = '0.5';

    const USER_AGENT = 'PassSDK-PHP/0.5';

    public function __construct($appKey = null, $endpoint = null, $debug = false)
    {
        if (is_null($appKey)) {
            throw new Exception('App Key required');
        }
        $this->_appKey = $appKey;
        if ($endpoint !== null) {
            $this->_endpoint = $endpoint;
        }
        $this->_debug = $debug;
    }

    public static function start($appKey = null, $endpoint = null, $debug = false)
    {
        if (self::$_instance == null) {
            self::$_instance = new self($appKey, $endpoint, $debug);
        }
        return self::$_instance;
    }

    public function createPassFromTemplate($templateId, $values = array(), $images = array())
    {
        $resource = sprintf("https://xxxxxxx/api/v1/templates/names/Test/pass", $templateId);
        return $this->_createPass($resource, $values, $images);
    }
}

我希望有人可以帮助我,因为我不熟悉PHP函数。

全部谢谢

罗布

1 个答案:

答案 0 :(得分:1)

缺少函数createPass。

你需要这样的东西:

     /**
     * Prepares the values and image for the pass and creates it
     *
     * @param string $resource Resource URL for the pass creation
     * @param array $values Values
     * @param array $images Images
     * @return object Pass
     */
    private function _createPass($resource, $values, $images)
    {
        $multipart = count($images) > 0;
        if ($multipart) {
            $content = array();
            foreach ($images as $imageType => $image) {
                $this->_addImage($image, $imageType, $content, $imageType);
            }
            var_dump($content);
            // Write json to file for curl
            $jsonPath = array_search('uri', @array_flip(stream_get_meta_data(tmpfile())));
            file_put_contents($jsonPath, json_encode($values));
            $content['values'] = sprintf('@%s;type=application/json', $jsonPath);
        } else {
            $content = $values;
        }
        return $this->_restCall('POST', $resource, $content, $multipart);
    }

..And full script here