Skip to content

Commit b04487e

Browse files
authored
Merge pull request #10 from TransactPRO/three_ds_v2
Add parameters describing cardholder device
2 parents 194cc44 + c72c688 commit b04487e

File tree

4 files changed

+145
-2
lines changed

4 files changed

+145
-2
lines changed

src/Gateway/DataSets/DataSet.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,15 @@ abstract class DataSet
7474
// system
7575
const SYSTEM_USER_IP = 'data.system.user-ip';
7676
const SYSTEM_X_FORWARDED_FOR = 'data.system.x-forwarded-for';
77+
const SYSTEM_BROWSER_ACCEPT_HEADER = 'data.system.browser-accept-header';
78+
const SYSTEM_BROWSER_JAVA_ENABLED = 'data.system.browser-java-enabled';
79+
const SYSTEM_BROWSER_JAVASCRIPT_ENABLED = 'data.system.browser-javascript-enabled';
80+
const SYSTEM_BROWSER_LANGUAGE = 'data.system.browser-language';
81+
const SYSTEM_BROWSER_COLOR_DEPTH = 'data.system.browser-color-depth';
82+
const SYSTEM_BROWSER_SCREEN_HEIGHT = 'data.system.browser-screen-height';
83+
const SYSTEM_BROWSER_SCREEN_WIDTH = 'data.system.browser-screen-width';
84+
const SYSTEM_BROWSER_TZ = 'data.system.browser-tz';
85+
const SYSTEM_BROWSER_USER_AGENT = 'data.system.browser-user-agent';
7786

7887
// data
7988
const DATA_TERMINAL_MID = 'data.terminal-mid';

src/Gateway/DataSets/System.php

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,111 @@ public function setXForwardedFor(string $xForwardedFor): self
4141

4242
return $this;
4343
}
44+
45+
/**
46+
* @param string $browserAcceptHeader
47+
* @return System
48+
*/
49+
public function setBrowserAcceptHeader(string $browserAcceptHeader): self
50+
{
51+
$this->data[self::SYSTEM_BROWSER_ACCEPT_HEADER] = $browserAcceptHeader;
52+
53+
return $this;
54+
}
55+
56+
/**
57+
* @param bool $browserJavaEnabled
58+
*
59+
* @return System
60+
*/
61+
public function setBrowserJavaEnabled(bool $browserJavaEnabled): self
62+
{
63+
$this->data[self::SYSTEM_BROWSER_JAVA_ENABLED] = $browserJavaEnabled;
64+
65+
return $this;
66+
}
67+
68+
/**
69+
* @param bool $browserJavaScriptEnabled
70+
*
71+
* @return System
72+
*/
73+
public function setBrowserJavaScriptEnabled(bool $browserJavaScriptEnabled): self
74+
{
75+
$this->data[self::SYSTEM_BROWSER_JAVASCRIPT_ENABLED] = $browserJavaScriptEnabled;
76+
77+
return $this;
78+
}
79+
80+
/**
81+
* @param string $browserLanguage
82+
*
83+
* @return System
84+
*/
85+
public function setBrowserLanguage(string $browserLanguage): self
86+
{
87+
$this->data[self::SYSTEM_BROWSER_LANGUAGE] = $browserLanguage;
88+
89+
return $this;
90+
}
91+
92+
/**
93+
* @param string $browserColorDepth
94+
*
95+
* @return System
96+
*/
97+
public function setBrowserColorDepth(string $browserColorDepth): self
98+
{
99+
$this->data[self::SYSTEM_BROWSER_COLOR_DEPTH] = $browserColorDepth;
100+
101+
return $this;
102+
}
103+
104+
/**
105+
* @param string $browserScreenHeight
106+
*
107+
* @return System
108+
*/
109+
public function setBrowserScreenHeight(string $browserScreenHeight): self
110+
{
111+
$this->data[self::SYSTEM_BROWSER_SCREEN_HEIGHT] = $browserScreenHeight;
112+
113+
return $this;
114+
}
115+
116+
/**
117+
* @param string $browserScreenWidth
118+
*
119+
* @return System
120+
*/
121+
public function setBrowserScreenWidth(string $browserScreenWidth): self
122+
{
123+
$this->data[self::SYSTEM_BROWSER_SCREEN_WIDTH] = $browserScreenWidth;
124+
125+
return $this;
126+
}
127+
128+
/**
129+
* @param string $browserTZ
130+
*
131+
* @return System
132+
*/
133+
public function setBrowserTZ(string $browserTZ): self
134+
{
135+
$this->data[self::SYSTEM_BROWSER_TZ] = $browserTZ;
136+
137+
return $this;
138+
}
139+
140+
/**
141+
* @param string $userAgent
142+
*
143+
* @return System
144+
*/
145+
public function setUserAgent(string $userAgent): self
146+
{
147+
$this->data[self::SYSTEM_BROWSER_USER_AGENT] = $userAgent;
148+
149+
return $this;
150+
}
44151
}

src/Gateway/Validator/Validator.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,15 @@ class Validator
8383
// system
8484
DataSet::SYSTEM_USER_IP => 'string',
8585
DataSet::SYSTEM_X_FORWARDED_FOR => 'string',
86+
DataSet::SYSTEM_BROWSER_ACCEPT_HEADER => 'string',
87+
DataSet::SYSTEM_BROWSER_JAVA_ENABLED => 'boolean',
88+
DataSet::SYSTEM_BROWSER_JAVASCRIPT_ENABLED => 'boolean',
89+
DataSet::SYSTEM_BROWSER_LANGUAGE => 'string',
90+
DataSet::SYSTEM_BROWSER_COLOR_DEPTH => 'string',
91+
DataSet::SYSTEM_BROWSER_SCREEN_HEIGHT => 'string',
92+
DataSet::SYSTEM_BROWSER_SCREEN_WIDTH => 'string',
93+
DataSet::SYSTEM_BROWSER_TZ => 'string',
94+
DataSet::SYSTEM_BROWSER_USER_AGENT => 'string',
8695

8796
// top level data
8897
DataSet::DATA_TERMINAL_MID => 'string',

tests/Gateway/DataSets/SystemTest.php

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,32 @@ class SystemTest extends TestCase
1818
public function testSuccess()
1919
{
2020
$expected = [
21-
DataSet::SYSTEM_USER_IP => '127.0.0.1',
22-
DataSet::SYSTEM_X_FORWARDED_FOR => '127.0.0.2',
21+
DataSet::SYSTEM_USER_IP => '127.0.0.1',
22+
DataSet::SYSTEM_X_FORWARDED_FOR => '127.0.0.2',
23+
DataSet::SYSTEM_BROWSER_ACCEPT_HEADER => "application/json, text/javascript, */*; q=0.01",
24+
DataSet::SYSTEM_BROWSER_JAVA_ENABLED => false,
25+
DataSet::SYSTEM_BROWSER_JAVASCRIPT_ENABLED => true,
26+
DataSet::SYSTEM_BROWSER_LANGUAGE => "en-US",
27+
DataSet::SYSTEM_BROWSER_COLOR_DEPTH => "24",
28+
DataSet::SYSTEM_BROWSER_SCREEN_HEIGHT => "1080",
29+
DataSet::SYSTEM_BROWSER_SCREEN_WIDTH => "1920",
30+
DataSet::SYSTEM_BROWSER_TZ => "+300",
31+
DataSet::SYSTEM_BROWSER_USER_AGENT => "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36",
2332
];
2433

2534
$system = new System();
2635

2736
$raw = $system->setUserIP('127.0.0.1')
2837
->setXForwardedFor('127.0.0.2')
38+
->setBrowserAcceptHeader("application/json, text/javascript, */*; q=0.01")
39+
->setBrowserJavaEnabled(false)
40+
->setBrowserJavaScriptEnabled(true)
41+
->setBrowserLanguage("en-US")
42+
->setBrowserColorDepth("24")
43+
->setBrowserScreenHeight("1080")
44+
->setBrowserScreenWidth("1920")
45+
->setBrowserTZ("+300")
46+
->setUserAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36")
2947
->getRaw();
3048

3149
$this->assertEquals($expected, $raw);

0 commit comments

Comments
 (0)