【问题标题】:api authentication (c# to php)api 身份验证(c# 到 php)
【发布时间】:2017-05-20 21:04:25
【问题描述】:

我需要帮助。

我正在尝试通过 API 连接网站,但它要求身份验证。 他们向我展示了 C# 的示例,但我想更改为 PHP

我使用file_get_contents 来获取数据。 我如何将他们发送到我的请求的 HTML 标头中,并附上他们的名字。 我如何签名。

有网站说明。 总而言之,您可以将 C# 转换为 PHP 吗:)


API 身份验证:

与用户帐户相关的所有 API 调用都需要身份验证。

您需要提供3个参数来验证请求:

"X-PCK": API key
"X-Stamp": Nonce
"X-Signature": Signature
API key

您可以从您的交易账户中的账户 > API 访问页面创建 API 密钥。

随机数:

Nonce 是一个常规整数。它必须随着您提出的每个请求而增加。

一种常见的做法是对该参数使用 unix 时间。

签名:

签名是HMAC-SHA256 编码的消息。 HMAC-SHA256 代码必须使用包含时间戳和 API 密钥的私钥生成

示例(C#):

string message = yourAPIKey + unixTimeStamp;
using (HMACSHA256 hmac = new HMACSHA256(Convert.FromBase64String( yourPrivateKey ))){

   byte[] signatureBytes = hmac.ComputeHash(Encoding.UTF8.GetBytes(message));

   string X-Signature = Convert.ToBase64String(signatureBytes));
}

创建参数后,您必须在请求的 HTML Header 中将它们连同它们的名称一起发送

示例(C#):

client.DefaultRequestHeaders.Add("X-PCK", yourAPIKey);
client.DefaultRequestHeaders.Add("X-Stamp", stamp.ToString());
client.DefaultRequestHeaders.Add("X-Signature", signature);

【问题讨论】:

  • 到目前为止你有什么 php?
  • 我才刚刚开始。我是新手

标签: c# php api authentication


【解决方案1】:

使用卷曲。举个例子:http://php.net/manual/de/function.curl-init.php

对于标题使用类似的东西

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    '"X-PCK": API key',
    '"X-Stamp": Nonce',
    '"X-Signature": Signature'
));

【讨论】:

【解决方案2】:

我认为你必须使用curl 而不是file_get_contents。

示例:

// API Url
$url = 'http://';
// Put the value of parameters
$yourAPIKey = "";
$stamp = "";
$signature = "";

$ch = curl_init($url);
curl_setopt_array($ch, array(
    CURLOPT_HTTPHEADER  => array('X-PCK: '. $yourAPIKey, 'X-Stamp: '. $stamp, 'X-Signature: '. $signature),
    CURLOPT_RETURNTRANSFER  =>true,
    CURLOPT_VERBOSE     => 1
));
$response = curl_exec($ch);
curl_close($ch);
// echo response output
echo $response;

【讨论】:

  • 但是我如何使用curl,你能给我一个例子吗
猜你喜欢
  • 2018-10-08
  • 2012-07-23
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-12
  • 1970-01-01
  • 2016-04-24
相关资源
最近更新 更多