guj-dvs / data-push-sdk-php
此 SDK 提供了 G+J 与第三方应用程序之间安全数据交换的易于使用的接口。所有通信都使用 GPG 加密。
1.0.2
2018-02-13 10:49 UTC
Requires
- aws/aws-sdk-php: ^3.35
- jasonhinkle/php-gpg: ^1.6
Requires (Dev)
- codeception/aspect-mock: ^2.1
- codeception/codeception: ^2.3
This package is not auto-updated.
Last update: 2024-09-29 05:01:47 UTC
README
此 SDK 提供了 G+J 与第三方应用程序之间安全数据交换的易于使用的接口。所有通信都使用 GPG 加密。
安装
要使用 G+J DataPush SDK,只需通过 composer 安装包即可。
composer require guj-dvs/data-push-sdk-php
使用 PushData-Object
<?php require "vendor/autoload.php"; use \Guj\DataPush\Model\Child; use \Guj\DataPush\Model\Order; use \Guj\DataPush\Model\PushData; use \Guj\DataPush\Model\UserData; use \Guj\DataPush\Provider\GujDataPushProvider; /** * Configure */ GujDataPushProvider::init( array( // 'aws_sqs_region' => 'eu-west-1', // default value 'aws_sqs_queue_name' => '[[ QUEUE_NAME ]]', 'aws_sqs_key' => '[[ AWS_KEY ]]', 'aws_sqs_secret' => '[[ AWS_SECRET ]]' ) ); /** * Create PushData and set base data */ $data = new PushData(); $data->setProducer('TestProducer'); // REQUIRED $data->setClient('TestClient'); // REQUIRED $data->setType('TestType'); // REQUIRED $data->setCreatedAt( time() ); /** * Set UserData */ $userData = new UserData(); $userData->setSsoId(123456789); $userData->setDateOfBirth('01.01.1950'); $userData->setName('John'); $userData->setLastName('Doe'); $userData->setEmail('mail@example.com'); $userData->setCity('SampleCity'); $userData->setPostcode(12345); $userData->setStreet('Street'); $userData->setStreetNo('1'); $data->setUserData($userData); /** * Add Child to collection */ $child = new Child(); $child->setName('Jane'); $child->setLastName('Doe'); $child->setGender('f'); $child->setDateOfBirth('01.01.1990'); $data->addChild($child); /* * Add other data... * See full List of possible data in README.md */ /** * Encrypt and push data */ $result = GujDataPushProvider::encryptAndPushObject($data); var_dump($result);
使用 PHP 数组
<?php require "vendor/autoload.php"; use \Guj\DataPush\Provider\GujDataPushProvider; /** * Create array for pushdata request */ $data = array( 'version' => '1.0.0', 'producer' => 'TestProducer', // REQUIRED 'client' => 'TestClient', // REQUIRED 'type' => 'data', // REQUIRED 'createdAt' => '2016-03-22T08:04:22Z', // REQUIRED 'userData' => array( 'ssoId' => '123456789', 'customerNo' => '', 'userName' => 'johnDoe', 'name' => 'John', 'lastName' => 'Doe', 'gender' => 'm', 'dateOfBirth' => '2001-01-01T00:11:22Z', 'email' => 'mail@example.com', 'phone' => '123456789', 'mobile' => '132456789', 'company' => 'Company Ltd.', 'street' => 'Street', 'streetNo' => '1', 'careOf' => 'at Ms. Smith', 'postcode' => '12345', 'city' => 'TestCity', 'country' => 'SampleCountry', ), 'children' => array( 0 => array( 'name' => 'Jane', 'lastname' => 'Doe', 'gender' => 'f', 'dateOfBirth' => '2001-01-01T00:11:22Z', ), ), 'newsletter' => array(...), // See example for full details 'orders' => array(...), // See example for full details 'optIn' => array(...), // See example for full details 'terms' => array(...), // See example for full details 'campaigns' => array(...), // See example for full details 'appUsage' => '', 'milestoneDelivery' => '' ); /** * Encrypt and push data */ $result = GujDataPushProvider::encryptAndPushArray($data); var_dump($result);
可能值
根和子对象的可能值列表。
根对象: PushData
对象: UserData
对象: Child
对象: Newsletter
对象: Order
对象: Optin
对象: Term
对象: Campaign
JSON 中的示例结构
{ "version": "1.0.0", "producer": "TestProducer", "client": "TestClient", "type": "data", "createdAt": "2016-03-22T08:04:22Z", "userData": { "ssoId": "123456789", "customerNo": "", "userName": "johnDoe", "name": "John", "lastName": "Doe", "gender": "m", "dateOfBirth": "2001-01-01T00:11:22Z", "email": "mail@example.com", "phone": "123456798", "mobile": "13245789", "company": "Company Ltd.", "street": "Street", "streetNo" : "1", "careOf": "at Ms. Smith", "postcode": "12345", "city": "SampleCity", "country": "SampleCountry" }, "children": [{ "name": "Jane", "lastname": "Doe", "gender": "f", "dateOfBirth": "2001-01-01T00:11:22Z" }], "newsletter":[{ "type": "MyNewsletter", "registeredAt": "2001-01-01T00:11:22Z" }], "orders":[{ "type" : "SampleProduct", "orderID": "12345", "orderValue": "46,33", "orderDate": "2001-01-01T00:11:22Z", "lifetimeValue": "123,12", "purchaseDevice": "iPhone", "discountName": "DiscountName", "discountValue": "10", "categoryName0": "A", "categoryName1": "B", "categoryName3": "C", "paperFormat": "A4" }], "optIn": [{ "type": "marketing", "id": "1234", "text": "I accept that", "doubleOptIn" : "false" }], "terms": [{ "type": "privacy", "id": "1234", "text": "I accept that" }], "campaigns": [{ "name": "SampleCampaign", "registeredAt" : "2001-01-01T00:11:22Z" }], "appUsage": "", "milestoneDelivery": "" }
构建工具
- Amazon AWS SDK for PHP
- php-gpg - php-gpg 是 GPG/PGP 的纯 PHP 实现
版本控制
我们使用 SemVer 进行版本控制。有关可用的版本,请参阅此存储库的 标签。
许可证
GNU 通用公共许可证 v3.0