<?php
/**
 * Ping++ Server SDK
 * 说明：
 * 以下代码只是为了方便商户测试而提供的样例代码，商户可根据自己网站需求按照技术文档编写, 并非一定要使用该代码。
 * 该代码仅供学习和研究 Ping++ SDK 使用，仅供参考。
 */

require dirname(__DIR__) . '/init.php';
// 示例配置文件，测试请根据文件注释修改其配置
require 'config.php';

\Pingpp\Pingpp::setApiKey(API_KEY);                                         // 设置 API Key
\Pingpp\Pingpp::setAppId(APP_ID);                                           // 设置 APP ID
\Pingpp\Pingpp::setPrivateKeyPath(__DIR__ . '/your_rsa_private_key.pem');   // 设置私钥


// 创建 user 对象
try {
    $user = \Pingpp\User::create(
        [
            'id' => uniqid('uid'),          // 用户 ID ，由商户提供
        ]
    );
    echo $user;
} catch (\Pingpp\Error\Base $e) {
    if ($e->getHttpStatus() != null) {
        header('Status: ' . $e->getHttpStatus());
        echo $e->getHttpBody();
    } else {
        echo $e->getMessage();
    }
}
exit;

// 查询 user 对象
$uid = 'uid598ae2dabbe71';
try {
    $user = \Pingpp\User::retrieve($uid);
    echo $user;
} catch (\Pingpp\Error\Base $e) {
    if ($e->getHttpStatus() != null) {
        header('Status: ' . $e->getHttpStatus());
        echo $e->getHttpBody();
    } else {
        echo $e->getMessage();
    }
}
exit;

// 更新 user 对象
$uid = 'uid582d35283f628';
try {
    $user = \Pingpp\User::update($uid, [
        'address' => 'China',
        'name' => strval(mt_rand(1000, 9999)),
        'metadata' => [
            'key' => 'value'
        ],
    ]);
    echo $user;
} catch (\Pingpp\Error\Base $e) {
    if ($e->getHttpStatus() != null) {
        header('Status: ' . $e->getHttpStatus());
        echo $e->getHttpBody();
    } else {
        echo $e->getMessage();
    }
}
exit;

// 查询列表
try {
    $params = [
        'page' => 1,
        'per_page' => 10,
    ];
    $users = \Pingpp\User::all($params);
    echo $users;
} catch (\Pingpp\Error\Base $e) {
    if ($e->getHttpStatus() != null) {
        header('Status: ' . $e->getHttpStatus());
        echo $e->getHttpBody();
    } else {
        echo $e->getMessage();
    }
}
exit;
