guj-dvs/data-push-sdk-php 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

guj-dvs/data-push-sdk-php

Composer 安装命令:

composer require guj-dvs/data-push-sdk-php

包简介

This SDK provides an easy to use interface for secured data exchange between G+J and 3rd Party Applications. All communications are GPG encrypted.

README 文档

README

This SDK provides an easy to use interface for secured data exchange between G+J and 3rd Party Applications. All communications are GPG encrypted.

Installing

To use G+J DataPush SDK simply install package via composer:

composer require guj-dvs/data-push-sdk-php

Usage with 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);

Usage with PHP array

<?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);

Possible values

List of possible values for the root and child objects.

Root-Object: PushData

Information Feldname Typ
Sendendes System producer string
Client client string
Objekttyp type string
Erstellungsdatum des Objektes createdAt datetime
Daten zur Person userData Single object: UserData
Kinder children List of objects: Child
Newsletter Abonnements newsletter List of objects: Newsletter
Bestellinformationen orders List of objects: Order
Opt Ins optIns List of objects: OptIn
Terms terms List of objects: Term
Teilnahmen an Kampagnen campaigns List of objects: Campaign
Object: UserData
Information Feldname Typ
SSO ID ssoId string
Kundennummer customerNo string
Benutzername userName string
Vorname name string
Nachname lastName string
Geschlecht gender string
Geburtsdatum dateOfBirth date
E-Mail email string
Telefon phone string
Mobile mobile string
Firma company string
Straße street string
Hausnummer streetNo string
zu Händen von careOf string
PLZ postcode string
Wohnort city string
Land country string
Object: Child
Information Feldname Typ
Vorname Kind name string
Nachname Kind lastName string
Geschlecht Kind gender string
Geburtsdatum Kind dateOfBirth date
Object: Newsletter
Information Feldname Typ
Newsletter Art type string
Registrierungsdatum registeredAt datetime
Object: Order
Information Feldname Typ
Art der Bestellung type string
order ID orderID string
order date orderDate datetime
order value orderValue string
lifetime_value lifetimeValue string
purchase_device purchaseDevice string
discount_name discountName string
discount_value discountValue string
category name_0 categoryName0 string
category name_1 categoryName1 string
category name_3 categoryName3 string
paper_format paperFormat string
Object: Optin
Information Feldname Typ
Opt In Art type string
Opt In ID id string
Opt In Text text string
Double Opt-in doubleOptIn boolean
Object: Term
Information Feldname Typ
Art der Terms type string
Terms ID id string
Terms Text text string
Object: Campaign
Information Feldname Typ
Name der Kampagne name string
Teilnahmedatum registeredAt datetime

Example Structure in 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": ""
}

Built With

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

License

GNU General Public License v3.0

guj-dvs/data-push-sdk-php 适用场景与选型建议

guj-dvs/data-push-sdk-php 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 10 次下载、GitHub Stars 达 0, 最近一次更新时间为 2018 年 01 月 09 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 guj-dvs/data-push-sdk-php 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 guj-dvs/data-push-sdk-php 我们能提供哪些服务?
定制开发 / 二次开发

基于 guj-dvs/data-push-sdk-php 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 10
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 15
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-3.0-only
  • 更新时间: 2018-01-09