atalanda / signature-php
该包最新版本(1.0.3-beta)没有可用的许可信息。
1.0.3-beta
2014-02-10 09:47 UTC
This package is not auto-updated.
Last update: 2024-09-28 14:01:48 UTC
README
AtalandaSignature-php 提供了一个简单的 PHP 类,允许您对发送到 atalogics API 的请求进行签名,并验证我们的回调。
安装
安装库的最佳方式是通过使用 Composer。在项目的根目录下,将以下内容添加到 composer.json
{ "require": { "atalanda/signature-php": "dev-master" } }
然后,在命令行中
composer install
使用生成的 vendor/autoload.php
文件来自动加载库类。
用法
签名 API 调用
使用此功能向发送到我们 API 的参数哈希中添加有效的签名。
$parameters = array( "atalogics" => array() ); $token = new Atalogics\Signature\Token("[Your API key]", "[Your API secret]"); $request = new Atalogics\Signature\Request("POST", "https://atalogics.com/api/order", $parameters); $signedParameters = $request->sign($token); var_dump($signedParameters); /* => array(5) { 'atalogics' => array() 'auth_timestamp' => int(1391167211) 'auth_key' => string(4) "[Your API key]" 'auth_signature' => string(64) "552beac4b99949a556b120b7e5f7e22def46f663992a08f0f132ad4afee68b9f" }*/
示例
向 https://atalogics.com/api/orderOffer 发送以下 JSON 的 POST 请求
{ "atalogics": { "api_key": "5f70fd232454e5c142566dbacc3dec5", "offer_id": "33/2014-01-22/1/2014-01-22", "expected_fee": 5.59, "external_id": "AZDF-234", "url_state_update": "https://ihr-server.de/atalogics/callbacks", "catch": { "name": "Top Fashion Shop", "street": "Schneiderstraße 20", "postal_code": "5020", "city": "Salzburg", "phone_number": "123456", "email": "info@fashionshop.de" }, "drop": { "name": "Marta Musterkundin", "street": "Kaufstr. 76", "postal_code": "5020", "city": "Salzburg", "phone_number": "435236", "email": "marta@musterkundin.de", "extra_services": ["R18"] } } }
$token = new Atalogics\Signature\Token("[Your API key]", "[Your API secret]"); $request = new Atalogics\Signature\Request("POST", "https://atalogics.com/api/orderOffer", $parameters); // parameters contains a hash representing the json above $signedParameters = $request->sign($token); // Now send a post request to our api and set the body to the json encoded version of $signed_parameters
如果您进行 GET 请求,也必须对所有 URL 参数进行签名。只需将它们包含在参数哈希中。将生成的认证参数与其他 URL 参数一起发送,例如
验证我们的回调签名
使用此功能验证我们的回调签名。
$data = json_decode($body, true); // convert json from post body into php array $token = new Atalogics\Signature\Token("[Your API key]", "[Your API secret]"); $request = new Atalogics\Signature\Request("POST", "https://your-server.com/callback", $data); $signatureCheckResult = $request->authenticate($token); if($signatureCheckResult["authenticated"] === true) { // signature is valid }