Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

update payment and

  • Loading branch information...
commit e901f79f765224e9421fd13f8dc4f8bb1aba8b1e 1 parent c02057b
attdevsupport authored
Showing with 414 additions and 585 deletions.
  1. +5 −2 MMS/Java/app3/README.txt
  2. +2 −1  MMS/Java/app3/config.jsp
  3. +7 −0 MMS/Java/app3/getImageData.jsp
  4. +9 −4 MMS/PHP/app1/README.txt
  5. +9 −4 MMS/PHP/app2/README.txt
  6. +0 −1  MMS/PHP/app3/MoMessages/mmslistner.db
  7. +9 −4 MMS/PHP/app3/README.txt
  8. +1 −1  MMS/PHP/app3/config.php
  9. +7 −0 MMS/PHP/app3/filed.php
  10. +15 −7 MMS/PHP/app3/index.php
  11. +1 −1  MMS/PHP/app3/mmslistener.php
  12. +1 −1  MMS/Ruby/app3/README
  13. +1 −282 MMS/Ruby/app3/mms3.rb
  14. +11 −4 Notary/Java/app1/OauthStorage.jsp
  15. +11 −5 Notary/Java/app1/README.txt
  16. +7 −0 Notary/Java/app1/config.jsp
  17. +7 −0 Notary/Java/app1/notary.jsp
  18. +2 −0  Notary/Ruby/app1/notary.rb
  19. +22 −31 Notary/Ruby/app1/views/notary.erb
  20. +6 −6 Payment/Java/app1/OauthStorage.jsp
  21. +6 −6 Payment/Java/app1/config.jsp
  22. +23 −7 Payment/Java/app1/getToken.jsp
  23. +7 −0 Payment/Java/app1/listener.jsp
  24. +6 −6 Payment/Java/app1/notary.jsp
  25. +7 −0 Payment/Java/app1/singlepay.jsp
  26. +6 −6 Payment/Java/app2/OauthStorage.jsp
  27. +1 −1  Payment/Java/app2/README.txt
  28. +6 −6 Payment/Java/app2/config.jsp
  29. +20 −11 Payment/Java/app2/getToken.jsp
  30. +6 −6 Payment/Java/app2/notary.jsp
  31. +6 −6 Payment/Java/app2/paymentlistener.jsp
  32. +6 −6 Payment/Java/app2/subscription.jsp
  33. +4 −4 Payment/PHP/app1/singlepay.php
  34. +4 −2 Payment/Ruby/app1/README
  35. +1 −2  Payment/Ruby/app1/configNotary.yml
  36. +3 −0  Payment/Ruby/app1/views/app1.erb
  37. +71 −72 Payment/Ruby/app1/views/notary.erb
  38. +3 −2 Payment/Ruby/app2/README
  39. +8 −8 Payment/Ruby/app2/app2.rb
  40. +1 −1  Payment/Ruby/app2/configNotary.yml
  41. +6 −3 Payment/Ruby/app2/views/app2.erb
  42. +70 −72 Payment/Ruby/app2/views/notary.erb
  43. +10 −4 TL/Ruby/app1/README
7 MMS/Java/app3/README.txt
View
@@ -74,9 +74,12 @@ Please populate the following parameters in config.jsp as specified below:
2) clientSecretAut : {set the value as per your registered appliaction 'Secret key' field value}
-3) FQDN : https://api.att.com
+3) shortCode1 : short-code 1
+
+4) shortCode2 : short-code 2
+
+5) FQDN : https://api.att.com
-4) shortCode1 : short-code 1
Note: If your application is promoted from Sandbox environment to Production environment and you decide to use production
application settings, you must update parameters 1-2 as per production application details.
3  MMS/Java/app3/config.jsp
View
@@ -7,7 +7,8 @@ For more information contact developer.support@att.com
<%
String clientIdAut = "";
+String clientSecretAut = "";
String shortCode1 = "";
String shortCode2 = "";
String FQDN = "https://api.att.com";
-%>
+%>
7 MMS/Java/app3/getImageData.jsp
View
@@ -1,3 +1,10 @@
+<%
+//Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
+//TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
+//Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
+//For more information contact developer.support@att.com
+%>
+
<%@ page contentType="application/json" language="java" %><%@ page import="java.io.*" %><%@ page import="java.util.Arrays" %><%@ page import="java.util.Collections" %><%@ page import="java.util.Comparator" %><%@ include file="config.jsp" %><%
String senderAddress = "";
String date = "";
13 MMS/PHP/app1/README.txt
View
@@ -1,8 +1,13 @@
-
- AT&T API Samples - MMS app1
+******************************************************************************************
+* Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
+* TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
+* Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
+* For more information contact developer.support@att.com<mailto:developer.support@att.com>
+******************************************************************************************
+ AT&T API Platform Samples - MMS app1
-----------------------------
-This file describes how to set up, configure and run the php versions of the AT&T HTML5 Program sample applications.
+This file describes how to set up, configure and run the php versions of the AT&T API Platform sample applications.
It covers all steps required to register the application on DevConnect and, based on the generated API keys and secrets,
create and run one's own full-fledged sample applications.
@@ -25,7 +30,7 @@ create and run one's own full-fledged sample applications.
users to when he/she successfully authenticates and authorizes your application.
Having your application registered, you will get back an important pair of data: an API key and Secret key. They are
- necessary to get your applications working with the AT&T HTML5 APIs. See 'Adjusting parameters' below to learn how to use
+ necessary to get your applications working with the AT&T Platform APIs. See 'Adjusting parameters' below to learn how to use
these keys.
Initially your newly registered application is restricted to the "Sandbox" environment only. To move it to production,
13 MMS/PHP/app2/README.txt
View
@@ -1,8 +1,13 @@
-
- AT&T API Samples - MMS app2
+******************************************************************************************
+* Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
+* TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
+* Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
+* For more information contact developer.support@att.com<mailto:developer.support@att.com>
+******************************************************************************************
+ AT&T API Platform Samples - MMS app2
----------------------------------------
-This file describes how to set up, configure and run the php versions of the AT&T HTML5 Program sample applications.
+This file describes how to set up, configure and run the php versions of the AT&T API Platform Program sample applications.
It covers all steps required to register the application on DevConnect and, based on the generated API keys and secrets,
create and run one's own full-fledged sample applications.
@@ -27,7 +32,7 @@ create and run one's own full-fledged sample applications.
NOTE: You MUST select MMS in the list of services under field 'Services' in order to use this sample application code.
Having your application registered, you will get back an important pair of data: an API key and Secret key. They are
- necessary to get your applications working with the AT&T HTML5 APIs. See 'Adjusting parameters' below to learn how to use
+ necessary to get your applications working with the AT&T Platform APIs. See 'Adjusting parameters' below to learn how to use
these keys.
Initially your newly registered application is restricted to the "Sandbox" environment only. To move it to production,
1  MMS/PHP/app3/MoMessages/mmslistner.db
View
@@ -1 +0,0 @@
-a:9:{i:0;a:5:{s:7:"address";s:12:"+18588228604";s:7:"subject";s:0:"";s:2:"id";i:0;s:5:"image";s:14:"0/IMG_2500.png";s:4:"text";s:15:"0/text_0002.txt";}i:1;a:5:{s:7:"address";s:12:"+18588228604";s:7:"subject";s:0:"";s:2:"id";i:1;s:5:"image";s:14:"1/IMG_2500.png";s:4:"text";s:15:"1/text_0002.txt";}i:2;a:5:{s:7:"address";s:12:"+18588228604";s:7:"subject";s:0:"";s:2:"id";i:2;s:5:"image";s:14:"2/IMG_2500.png";s:4:"text";s:15:"2/text_0002.txt";}i:3;a:5:{s:7:"address";s:12:"+18588228604";s:7:"subject";s:0:"";s:2:"id";i:3;s:5:"image";s:14:"3/IMG_2500.png";s:4:"text";s:15:"3/text_0002.txt";}i:4;a:5:{s:7:"address";s:12:"+18588228604";s:7:"subject";s:0:"";s:2:"id";i:4;s:5:"image";s:14:"4/IMG_2500.png";s:4:"text";s:15:"4/text_0002.txt";}i:5;a:5:{s:7:"address";s:12:"+18588228604";s:7:"subject";s:0:"";s:2:"id";i:5;s:5:"image";s:14:"5/IMG_2500.png";s:4:"text";s:15:"5/text_0002.txt";}i:6;a:6:{s:7:"address";s:12:"+18588228604";s:7:"subject";s:0:"";s:4:"date";s:27:"Wed Dec 7 11:23:57 EST 2011";s:2:"id";i:6;s:5:"image";s:14:"6/IMG_2500.png";s:4:"text";s:15:"6/text_0002.txt";}i:7;a:6:{s:7:"address";s:12:"+18588228604";s:7:"subject";s:0:"";s:4:"date";s:27:"Wed Dec 7 11:23:58 EST 2011";s:2:"id";i:7;s:5:"image";s:14:"7/IMG_2500.png";s:4:"text";s:15:"7/text_0002.txt";}i:8;a:6:{s:7:"address";s:12:"+18588228604";s:7:"subject";s:0:"";s:4:"date";s:27:"Wed Dec 7 11:23:59 EST 2011";s:2:"id";i:8;s:5:"image";s:14:"8/IMG_2500.png";s:4:"text";s:15:"8/text_0002.txt";}}
13 MMS/PHP/app3/README.txt
View
@@ -1,8 +1,13 @@
-
- AT&T API Samples - MMS app3
+******************************************************************************************
+* Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
+* TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
+* Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
+* For more information contact developer.support@att.com<mailto:developer.support@att.com>
+******************************************************************************************
+ AT&T API Platform Samples - MMS app3
-----------------------------
-This file describes how to set up, configure and run the php versions of the AT&T HTML5 Program sample applications.
+This file describes how to set up, configure and run the php versions of the AT&T API Platform Program sample applications.
It covers all steps required to register the application on DevConnect and, based on the generated API keys and secrets,
create and run one's own full-fledged sample applications.
@@ -25,7 +30,7 @@ create and run one's own full-fledged sample applications.
users to when he/she successfully authenticates and authorizes your application.
Having your application registered, you will get back an important pair of data: an API key and Secret key. They are
- necessary to get your applications working with the AT&T HTML5 APIs. See 'Adjusting parameters' below to learn how to use
+ necessary to get your applications working with the AT&T Platform APIs. See 'Adjusting parameters' below to learn how to use
these keys.
Initially your newly registered application is restricted to the "Sandbox" environment only. To move it to production,
2  MMS/PHP/app3/config.php
View
@@ -1,5 +1,5 @@
<!--
-Licensed by AT&T under 'Software Development Kit Tools Agreement.'June 2012
+Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
For more information contact developer.support@att.com
7 MMS/PHP/app3/filed.php
View
@@ -1,3 +1,10 @@
+<!--
+Licensed by AT&T under 'Software Development Kit Tools Agreement.'2012
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
+Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
+For more information contact developer.support@att.com
+-->
+
<?php
$file_cont = file_get_contents( "/tmp/sample MMS delivery.txt");
22 MMS/PHP/app3/index.php
View
@@ -49,13 +49,6 @@
</div>
</div>
-
-<br />
-<br />
-<p>Photos sent to short code <?php echo $short_code; ?>:</p>
-
-<div id="gallerywrapper">
-
<?php
$path_is = __FILE__;
$folder = dirname($path_is);
@@ -67,11 +60,26 @@
}
$db_filename = $folder . "/". "mmslistner.db";
$messages = unserialize(file_get_contents($db_filename));
+$count = 0;
+foreach ( $messages as $message ){
+$count = $count + 1;
+}
+?>
+<br />
+<br />
+<p>Photos sent to short code <?php echo $short_code; ?>:<?php echo $count; ?></p>
+
+<div id="gallerywrapper">
+<?php
+$db_filename = $folder . "/". "mmslistner.db";
+$messages = unserialize(file_get_contents($db_filename));
+$count = 0;
foreach ( $messages as $message ){
$message_txt = file_get_contents( $folder.'/'.$message["text"]);
$message_image = "MoMessages/".$message['image'];
$address = $message['address'];
+$count = $count + 1;
?>
<div id="gallery"><img src="<?php echo $message_image ; ?>" width="150" border="0" /><br /><strong>Sent from:</strong> <?php echo $address; ?> <br /><strong>On:</strong> <?php echo $message['date']; ?><div><?php echo $message_txt; ?></div></div>
2  MMS/PHP/app3/mmslistener.php
View
@@ -1,5 +1,5 @@
<!--
-Licensed by AT&T under 'Software Development Kit Tools Agreement.' September 2011
+Licensed by AT&T under 'Software Development Kit Tools Agreement.'2012
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
Copyright 2011 AT&T Intellectual Property. All rights reserved. http://developer.att.com
For more information contact developer.support@att.com
2  MMS/Ruby/app3/README
View
@@ -5,7 +5,7 @@
* For more information contact developer.support@att.com<mailto:developer.support@att.com>
******************************************************************************************
- AT&T API Samples - MMS app 3
+ AT&T API Platform Samples - MMS app 3
------------------------------
This file describes how to set up, configure and run the Ruby applications using AT&T API Platform services.
283 MMS/Ruby/app3/mms3.rb
View
@@ -46,7 +46,7 @@ def mms_listener
parts = input.split "--Nokia-mm-messageHandler-BoUnDaRy"
body = parts[2].split "BASE64"
type = /Content\-Type: image\/([^;]+)/.match(body[0])[1];
- date = Time.now
+ date = Time.now.utc
random = rand(10000000).to_s
@@ -73,284 +73,3 @@ def get_image_data
{ :totalNumberOfImagesSent => images.length, :imageList => images }.to_json
end
-
-get '/test' do
- RestClient.post settings.listener_url, '--MIMEBoundary_08b1d81c790c90ac553e8984a9e404cebce0f820564bd221
-Content-Transfer-Encoding: 8bit
-Content-ID: <rootpart@beta-api.att.com>
-Content-Type: text/xml; charset=UTF-8
-
-<inbound-MMS-message>
-<sender-address>tel:+18588228604</sender-address><priority>Normal</priority><subject></subject>
-</inbound-MMS-message>
---MIMEBoundary_08b1d81c790c90ac553e8984a9e404cebce0f820564bd221
-Content-Type: multipart/related; Type="application/smil"; Start=0.smil; boundary="Nokia-mm-messageHandler-BoUnDaRy-=_-1130087643"
-Content-Transfer-Encoding: binary
-Content-ID: <#1Attachment>
-
-
---Nokia-mm-messageHandler-BoUnDaRy-=_-1130087643
-Content-Type: application/smil
-Content-ID: 0.smil
-Content-Transfer-Encoding: BASE64
-
-PHNtaWw+CjxoZWFkPgo8bGF5b3V0PgogPHJvb3QtbGF5b3V0Lz4KPHJlZ2lvbiBpZD0iVGV4dCIg
-dG9wPSI3MCUiIGxlZnQ9IjAlIiBoZWlnaHQ9IjMwJSIgd2lkdGg9IjEwMCUiIGZpdD0ic2Nyb2xs
-Ii8+CjxyZWdpb24gaWQ9IkltYWdlIiB0b3A9IjAlIiBsZWZ0PSIwJSIgaGVpZ2h0PSI3MCUiIHdp
-ZHRoPSIxMDAlIiBmaXQ9Im1lZXQiLz4KPC9sYXlvdXQ+CjwvaGVhZD4KPGJvZHk+CjxwYXIgZHVy
-PSIxMHMiPgo8aW1nIHNyYz0iSU1HXzc3NTEuanBnIiByZWdpb249IkltYWdlIi8+CjwvcGFyPgo8
-L2JvZHk+Cjwvc21pbD4K
-
---Nokia-mm-messageHandler-BoUnDaRy-=_-1130087643
-Content-Type: image/jpeg; Name=IMG_7751.jpg
-Content-Disposition: Attachment; Filename=IMG_7751.jpg
-Content-ID: 1
-Content-Location: IMG_7751.jpg
-Content-Transfer-Encoding: BASE64
-
-/9j/4R9fRXhpZgAATU0AKgAAAAgADgEAAAMAAAABA+wAAAEBAAMAAAABAooAAAECAAMAAAADAAAA
-tgEGAAMAAAABAAIAAAESAAMAAAABAAEAAAEVAAMAAAABAAMAAAEaAAUAAAABAAAAvAEbAAUAAAAB
-AAAAxAEoAAMAAAABAAIAAAExAAIAAAAcAAAAzAEyAAIAAAAUAAAA6AITAAMAAAABAAEAAIdpAAQA
-AAABAAAJCOocAAcAAAgMAAAA/AAAEdIACAAIAAgAAABIAAAAAQAAAEgAAAABQWRvYmUgUGhvdG9z
-aG9wIENTNSBXaW5kb3dzADIwMTA6MDc6MTMgMTI6MTc6MzgAHOoAAAAIAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJAAAAcAAAAEMDIy
-MZADAAIAAAAUAAAJnpAEAAIAAAAUAAAJspEBAAcAAAAEAQIDAJKRAAIAAAADMDAAAJKSAAIAAAAD
-MDAAAKAAAAcAAAAEMDEwMKABAAMAAAAB//8AAKACAAQAAAABAAADXqADAAQAAAABAAABQ6QGAAMA
-AAABAAAAAOocAAcAAAgMAAAJxgAAAAAyMDEwOjA1OjE0IDAwOjM0OjQxADIwMTA6MDU6MTQgMDA6
-MzQ6NDEAHOoAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAABgEDAAMAAAABAAYAAAEaAAUAAAABAAASIAEbAAUAAAABAAASKAEoAAMA
-AAABAAIAAAIBAAQAAAABAAASMAICAAQAAAABAAANJQAAAAAAAABIAAAAAQAAAEgAAAAB/9j/2wBD
-AAIBAQIBAQICAQICAgICAwUDAwMDAwYEBAMFBwYHBwcGBgYHCAsJBwgKCAYGCQ0JCgsLDAwMBwkN
-Dg0MDgsMDAv/2wBDAQICAgMCAwUDAwULCAYICwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsL
-CwsLCwsLCwsLCwsLCwsLCwsLCwv/wAARCAA8AKADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAA
-AAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKB
-kaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZn
-aGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT
-1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcI
-CQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV
-YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6
-goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
-5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9/KKKKACikLYGTXAfE39qXwD8IfGujeGfHfib
-TrXxP4icx6Zo6MZb++YKWOyFAWxtVjuIA461M5xgrydkbUMPVxMuSjBye9kr6Ld6dup6BRX56z/8
-HM37Ndtr72VxL45SOOQxvcNoThFIODld2/8A8dr6q/ZZ/b3+Ef7aGmS3H7OPjbSfEM1uu6eyDGC9
-tx6vbyBXA98Y965aOYYbES5adRN9rnu5lwjneT0ViMbg6kKf8zi7fN7L5nsFFJupQc12HzgUUUUA
-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
-AAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEU
-MoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2Rl
-ZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK
-0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUG
-BwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS
-8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4
-eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri
-4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AP7+KKKKACiiigAooooAKKKKACiiigAooooA
-KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr5Z/bB/bI+BP7Dnwb1j42fHzxSuheHbKT
-7PoWi2SCbVdb1JlJjsrC3yDLMwUk8hUUFnZVBNfU1f5tv/BwP+1h41/aH/4KE/FD4dahqV0nw4/Z
-pvz4S8B+G1m/0eO6iRG1S8ZMAGaa5LqWOT5cMS5wK+Q424mfC2TOtBXqSfLFPa+ru/JJfN2R/R30
-XvAyPj14lxyyvUdPB0YOrWlH4nBSjFQhfRSnKSV38MeaVm0k/wBpP2Lf+CxX7TH/AAUw/wCCj/gD
-4GyzR/sz/s16t4T8VappXgXwztbxBr0MGm3QszdatLHvZgzrPttREmbY8vtyf5uP24tI/bv/AGN/
-2lvHvwb+NPx0/aCl8R+Hdbnm8LeNL/4p6u0Wu6Q8hNpqVpO0/wAySJtJ28o4ZDhlIr9fP+CcH7IV
-t/wUR/ZF+DfxJ/Zj+Mel/s+f8FEP+Cfniu50nSvEstsRa6z4fuLyfUNHe/Eas4Cm6v7dZgkisqSx
-SI6Fdv8AReP2TviB/wAFDfgpP8Gf+CsP7Jvwz0Pxj4MtY/8AhGPjb8GPifDdG8vMBZLvSsILrTWb
-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
-
---Nokia-mm-messageHandler-BoUnDaRy-=_-1130087643--
-Content-Transfer-Encoding: BASE64
-
---MIMEBoundary_08b1d81c790c90ac553e8984a9e404cebce0f820564bd221--
-'
-
-redirect '/'
-end
-
15 Notary/Java/app1/OauthStorage.jsp
View
@@ -1,6 +1,13 @@
+<!--
+//Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
+//TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
+//Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
+//For more information contact developer.support@att.com
+-->
+
<%
-String savedAccessToken = "ad13138f408bbdaabbdafa355b0b9ee8";
-Long savedAccessTokenExpiry = Long.parseLong("1324062272533");
-String savedRefreshToken = "eb039c57a6efa7216e06a5114cce4a7f6576f2f3";
-Long savedRefreshTokenExpiry = Long.parseLong("1324148665334");
+String savedAccessToken = "";
+Long savedAccessTokenExpiry = Long.parseLong("1");
+String savedRefreshToken = "";
+Long savedRefreshTokenExpiry = Long.parseLong("1");
%>
16 Notary/Java/app1/README.txt
View
@@ -1,9 +1,15 @@
-
- AT&T API Samples - Notary app 1
+<!--
+Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
+Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
+For more information contact developer.support@att.com
+-->
+
+ AT&T API Platform Samples - Notary app 1
------------------------------
-This file describes how to set up, configure and run the Java Applications of the AT&T HTML5 Program sample applications.
-It covers all steps required to register the application on DevConnect and, based on the generated API keys and secrets,
+This file describes how to set-up, configure and run the Java Applications using AT&T API Platform services.
+It covers all steps required to register the application, based on the generated API keys and secrets,
create and run one's own full-fledged sample applications.
1. Configuration
@@ -30,7 +36,7 @@ create and run one's own full-fledged sample applications.
NOTE: You MUST select Payment in the list of services under field 'Services' in order to use this sample application code.
Having your application registered, you will get back an important pair of data: an API key and Secret key. They are
- necessary to get your applications working with the AT&T HTML5 APIs. See 'Adjusting parameters' below to learn how to use
+ necessary to get your applications working with the AT&T Platform APIs. See 'Adjusting parameters' below to learn how to use
these keys.
Initially your newly registered application is restricted to the "Sandbox" environment only. To move it to production,
7 Notary/Java/app1/config.jsp
View
@@ -1,3 +1,10 @@
+<!--
+//Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
+//TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
+//Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
+//For more information contact developer.support@att.com
+-->
+
<%
String clientIdAut = "";
String clientSecretAut = "";
7 Notary/Java/app1/notary.jsp
View
@@ -1,3 +1,10 @@
+<!--
+//Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
+//TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
+//Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
+//For more information contact developer.support@att.com
+-->
+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en"><head>
<title>AT&amp;T Sample Notary Application - Sign Payload Application</title>
2  Notary/Ruby/app1/notary.rb
View
@@ -49,6 +49,7 @@ def sign_payload payload
result = Hash.new
result[:signed_payload] = from_json['SignedDocument']
result[:signature] = from_json['Signature']
+
return result
end
@@ -91,3 +92,4 @@ def api_call
return r.to_json
end
+
53 Notary/Ruby/app1/views/notary.erb
View
@@ -6,7 +6,7 @@ For more information contact developer.support@att.com -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en">
- <head>
+ <head>
<title>AT&T Sample Notary Application - Sign Payload Application</title>
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type">
<link rel="stylesheet" type="text/css" href="style/common.css"/ >
@@ -60,43 +60,33 @@ For more information contact developer.support@att.com -->
Feature 1: Sign Payload</h2>
</div>
</div>
- <form method="post" name="signContent" enctype="multipart/form-data" action="/signPayload">
+ <form method="post" name="signContent" enctype="multipart/form-data" action="/submit">
<div id="navigation">
- <table border="0" width="100%">
+ <table border="0" width="950px">
<tbody>
<tr>
- <td width="20%" valign="top" class="label">Request:</td>
- <td class="cell">
- <textarea rows="12" name="payload" style="width: 90%"><%= settings.notary_payload %></textarea>
- </td>
- </tr>
- <tr>
- <td></td>
- <td class="cell" align="right">
- <button type="submit" name="submit">
- Sign Payload
- </button></td>
- </tr>
+ <td valign="top" class="label">Request:</td>
+ <td class="cell" ><textarea rows="20" cols="60" name="payload" ><%= settings.notary_payload %></textarea>
+ </td>
+ <td width="50px"></td>
+ <td valign="top" class="label">Signed Payload:</td>
+ <td class="cell" width="400px" ><%= settings.notary_result[:signed_payload] %></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td width="50px"></td>
+ <td valign="top" class="label">Signature:</td>
+ <td class="cell"><%= settings.notary_result[:signature] %></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="cell" align="right"><button type="submit" name="signPayload" value="signPayload">Sign Payload</button></td>
+ </tr>
</tbody>
</table>
</div>
</form>
- <div id="extra">
- <% if session[:notary_result] %>
- <table border="0" width="100%">
- <tbody>
- <tr>
- <td width="20%" valign="top" class="label">Signed Payload:</td>
- <td class="cell"><%= settings.notary_result[:signed_payload] %></td>
- </tr>
- <tr>
- <td valign="top" class="label">Signature:</td>
- <td class="cell"><%= settings.notary_result[:signature] %></td>
- </tr>
- </tbody>
- </table>
- <% end %>
- </div>
<br clear="all" />
<div id="footer">
<div style="float: right; width: 20%; font-size: 9px; text-align: right">
@@ -114,3 +104,4 @@ For more information contact developer.support@att.com -->
</div>
</body>
</html>
+
12 Payment/Java/app1/OauthStorage.jsp
View
@@ -1,9 +1,9 @@
-<%--
-Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
-Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
-For more information contact developer.support@att.com
---%>
+<%
+//Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
+//TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
+//Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
+//For more information contact developer.support@att.com
+%>
<%
String savedAccessToken = "";
12 Payment/Java/app1/config.jsp
View
@@ -1,9 +1,9 @@
-<%--
-Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
-Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
-For more information contact developer.support@att.com
---%>
+<%
+//Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
+//TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
+//Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
+//For more information contact developer.support@att.com
+%>
<%
String clientIdAut = "";
30 Payment/Java/app1/getToken.jsp
View
@@ -1,3 +1,10 @@
+<%
+//Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
+//TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
+//Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
+//For more information contact developer.support@att.com
+%>
+
<%@ page contentType="text/html; charset=iso-8859-1" language="java" %>
<%@ page import="org.apache.commons.httpclient.*"%>
<%@ page import="org.apache.commons.httpclient.methods.*"%>
@@ -6,13 +13,14 @@
<%@ page import="java.io.*" %>
<%@ include file="OauthStorage.jsp" %>
<%@ include file="config.jsp" %>
+<%@ page import="java.lang.Math"%>
<%
//Initialize some variables here, check if relevant variables were passed in, if not then check session, otherwise set default.
String scope = "PAYMENT";
-String accessToken = "a3149564fcf00e20ecb1095b1b5f278f";
+String accessToken = "";
String refreshToken = "";
-String expires_in = "";
+String expires_in = "null";
Long date = System.currentTimeMillis();
//This application uses the Autonomous Client OAuth consumption model
@@ -31,8 +39,12 @@ Long date = System.currentTimeMillis();
accessToken = rpcObject.getString("access_token");
refreshToken = rpcObject.getString("refresh_token");
expires_in = rpcObject.getString("expires_in");
- //savedAccessTokenExpiry = date + (Long.parseLong(expires_in)*1000);
- //savedRefreshTokenExpiry = date + Long.parseLong("86400000");
+
+ if (expires_in.equals("0"))
+ {
+ savedAccessTokenExpiry = date + (Long.parseLong("3155692597470")); //100 years
+ }
+ savedRefreshTokenExpiry = date + Long.parseLong("86400000");
method.releaseConnection();
PrintWriter outWrite = new PrintWriter(new BufferedWriter(new FileWriter(application.getRealPath("/OauthStorage.jsp"))), false);
String toSave = "\u003C\u0025\nString savedAccessToken = \"" + accessToken + "\";\nLong savedAccessTokenExpiry = Long.parseLong(\"" + savedAccessTokenExpiry + "\");\nString savedRefreshToken = \"" + refreshToken + "\";\nLong savedRefreshTokenExpiry = Long.parseLong(\"" + savedRefreshTokenExpiry + "\");\n\u0025\u003E";
@@ -48,10 +60,14 @@ Long date = System.currentTimeMillis();
int statusCode = client.executeMethod(method);
JSONObject rpcObject = new JSONObject(method.getResponseBodyAsString());
accessToken = rpcObject.getString("access_token");
- refreshToken = rpcObject.getString("refresh_token");
+ refreshToken = rpcObject.getString("refresh_token");
expires_in = rpcObject.getString("expires_in");
- //savedAccessTokenExpiry = date + (Long.parseLong(expires_in)*1000);
- //savedRefreshTokenExpiry = date + Long.parseLong("86400000");
+
+ if (expires_in.equals("0"))
+ {
+ savedRefreshTokenExpiry = date + (Long.parseLong("86400000")); //24 hours
+ }
+ savedAccessTokenExpiry = date + (Long.parseLong(expires_in)*1000);
method.releaseConnection();
PrintWriter outWrite = new PrintWriter(new BufferedWriter(new FileWriter(application.getRealPath("/OauthStorage.jsp"))), false);
String toSave = "\u003C\u0025\nString savedAccessToken = \"" + accessToken + "\";\nLong savedAccessTokenExpiry = Long.parseLong(\"" + savedAccessTokenExpiry + "\");\nString savedRefreshToken = \"" + refreshToken + "\";\nLong savedRefreshTokenExpiry = Long.parseLong(\"" + savedRefreshTokenExpiry + "\");\n\u0025\u003E";
7 Payment/Java/app1/listener.jsp
View
@@ -1,3 +1,10 @@
+<%
+//Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
+//TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
+//Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
+//For more information contact developer.support@att.com
+%>
+
<%@ page contentType="text/html; charset=iso-8859-1" language="java" %>
<%@ page import="java.util.*" %>
<%@ page import="org.apache.commons.fileupload.servlet.*" %>
12 Payment/Java/app1/notary.jsp
View
@@ -1,9 +1,9 @@
-<%--
-Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
-Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
-For more information contact developer.support@att.com
---%>
+<%
+//Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
+//TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
+//Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
+//For more information contact developer.support@att.com
+%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en"><head>
7 Payment/Java/app1/singlepay.jsp
View
@@ -1,3 +1,10 @@
+<%
+//Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
+//TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
+//Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
+//For more information contact developer.support@att.com
+%>
+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en"><head>
<title>AT&T Sample Payment Application - Single Pay Application</title>
12 Payment/Java/app2/OauthStorage.jsp
View
@@ -1,9 +1,9 @@
-<%--
-Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
-Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
-For more information contact developer.support@att.com
---%>
+<%
+//Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
+//TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
+//Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
+//For more information contact developer.support@att.com
+%>
<%
String savedAccessToken = "";
2  Payment/Java/app2/README.txt
View
@@ -5,7 +5,7 @@ Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer
For more information contact developer.support@att.com
-->
- AT&T API Samples - Payment app 2
+ AT&T API Platform Samples - Payment app 2
------------------------------
This file describes how to set-up, configure and run the Java Applications using AT&T API Platform services.
12 Payment/Java/app2/config.jsp
View
@@ -1,9 +1,9 @@
-<%--
-Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
-Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
-For more information contact developer.support@att.com
---%>
+<%
+//Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
+//TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
+//Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
+//For more information contact developer.support@att.com
+%>
<%
String clientIdAut = "";
31 Payment/Java/app2/getToken.jsp
View
@@ -1,9 +1,9 @@
-<%--
-Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
-Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
-For more information contact developer.support@att.com
---%>
+<%
+//Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
+//TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
+//Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
+//For more information contact developer.support@att.com
+%>
<%@ page contentType="text/html; charset=iso-8859-1" language="java" %>
<%@ page import="org.apache.commons.httpclient.*"%>
@@ -13,13 +13,14 @@ For more information contact developer.support@att.com
<%@ page import="java.io.*" %>
<%@ include file="OauthStorage.jsp" %>
<%@ include file="config.jsp" %>
+<%@ page import="java.lang.Math"%>
<%
//Initialize some variables here, check if relevant variables were passed in, if not then check session, otherwise set default.
String scope = "PAYMENT";
String accessToken = "";
String refreshToken = "";
-String expires_in = "";
+String expires_in = "null";
Long date = System.currentTimeMillis();
//This application uses the Autonomous Client OAuth consumption model
@@ -38,8 +39,12 @@ Long date = System.currentTimeMillis();
accessToken = rpcObject.getString("access_token");
refreshToken = rpcObject.getString("refresh_token");
expires_in = rpcObject.getString("expires_in");
- //savedAccessTokenExpiry = date + (Long.parseLong(expires_in)*1000);
- //savedRefreshTokenExpiry = date + Long.parseLong("86400000");
+
+ if (expires_in.equals("0"))
+ {
+ savedAccessTokenExpiry = date + (Long.parseLong("3155692597470")); //100 years
+ }
+ savedRefreshTokenExpiry = date + Long.parseLong("86400000");
method.releaseConnection();
PrintWriter outWrite = new PrintWriter(new BufferedWriter(new FileWriter(application.getRealPath("/OauthStorage.jsp"))), false);
String toSave = "\u003C\u0025\nString savedAccessToken = \"" + accessToken + "\";\nLong savedAccessTokenExpiry = Long.parseLong(\"" + savedAccessTokenExpiry + "\");\nString savedRefreshToken = \"" + refreshToken + "\";\nLong savedRefreshTokenExpiry = Long.parseLong(\"" + savedRefreshTokenExpiry + "\");\n\u0025\u003E";
@@ -57,8 +62,12 @@ Long date = System.currentTimeMillis();
accessToken = rpcObject.getString("access_token");
refreshToken = rpcObject.getString("refresh_token");
expires_in = rpcObject.getString("expires_in");
- //savedAccessTokenExpiry = date + (Long.parseLong(expires_in)*1000);
- //savedRefreshTokenExpiry = date + Long.parseLong("86400000");
+
+ if (expires_in.equals("0"))
+ {
+ savedRefreshTokenExpiry = date + (Long.parseLong("86400000")); //24 hours
+ }
+ savedAccessTokenExpiry = date + (Long.parseLong(expires_in)*1000);
method.releaseConnection();
PrintWriter outWrite = new PrintWriter(new BufferedWriter(new FileWriter(application.getRealPath("/OauthStorage.jsp"))), false);
String toSave = "\u003C\u0025\nString savedAccessToken = \"" + accessToken + "\";\nLong savedAccessTokenExpiry = Long.parseLong(\"" + savedAccessTokenExpiry + "\");\nString savedRefreshToken = \"" + refreshToken + "\";\nLong savedRefreshTokenExpiry = Long.parseLong(\"" + savedRefreshTokenExpiry + "\");\n\u0025\u003E";
12 Payment/Java/app2/notary.jsp
View
@@ -1,9 +1,9 @@
-<%--
-Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
-Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
-For more information contact developer.support@att.com
---%>
+<%
+//Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
+//TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
+//Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
+//For more information contact developer.support@att.com
+%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en"><head>
12 Payment/Java/app2/paymentlistener.jsp
View
@@ -1,9 +1,9 @@
-<%--
-Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
-Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
-For more information contact developer.support@att.com
---%>
+<%
+//Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
+//TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
+//Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
+//For more information contact developer.support@att.com
+%>
<%@ page contentType="text/html; charset=iso-8859-1" language="java" %>
<%@ page import="java.util.*" %>
12 Payment/Java/app2/subscription.jsp
View
@@ -1,9 +1,9 @@
-<%--
-Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
-Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
-For more information contact developer.support@att.com
---%>
+<%
+//Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
+//TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
+//Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
+//For more information contact developer.support@att.com
+%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en"><head>
8 Payment/PHP/app1/singlepay.php
View
@@ -765,6 +765,7 @@ function check_token( $FQDN,$api_key,$secret_key,$scope, $fullToken,$oauth_file)
+
$details = array();
if ( file_exists( $db3_filename) ){
$notificationdetails = unserialize(file_get_contents($db3_filename));
@@ -775,10 +776,9 @@ function check_token( $FQDN,$api_key,$secret_key,$scope, $fullToken,$oauth_file)
}
if ( file_exists( $db10_filename) ){
- $responses = unserialize(file_get_contents($db10_filename));
-
+ $responsetest = unserialize(file_get_contents($db10_filename));
+ array_push($responses, $notificationId, $notificationtype, $originaltrxId);
$fp = fopen($db10_filename, 'a+') or die("I could not open $db10_filename.");
- array_push($responses, $notificationtype, $notificationId, $originaltrxId);
fwrite($fp, serialize($responses));
@@ -829,7 +829,7 @@ function check_token( $FQDN,$api_key,$secret_key,$scope, $fullToken,$oauth_file)
$fp = fopen($db4_filename, 'a+') or die("I could not open $db4_filename.");
array_push($acknowledgements, $response);
- fwrite($fp, $acknowledgements);
+ fwrite($fp, $response);
}
}
6 Payment/Ruby/app1/README
View
@@ -5,7 +5,7 @@
* For more information contact developer.support@att.com<mailto:developer.support@att.com>
******************************************************************************************
- AT&T API Samples - Payment app 1
+ AT&T API Platform Samples - Payment app 1
----------------------------------
This file describes how to set up, configure and run the Ruby applications using AT&T API Platform services.
@@ -126,7 +126,9 @@ create and run one's own full-fledged sample applications.
3) secret_key : set the value as per your registered appliaction 'Secret key' field value
- 4) FQDN : https://api.att.com
+ 4) FQDN : https://api.att.com
+
+ 5) payment_redirect : URL which redirects back to payment application after notary details have been viewed
4. Running the application
3  Payment/Ruby/app1/configNotary.yml
View
@@ -1,6 +1,5 @@
port: 4568
api_key:
secret_key:
-tokens_file: tokens1
FQDN: https://api.att.com
-
+payment_redirect: http://localhost:4567/
3  Payment/Ruby/app1/views/app1.erb
View
@@ -95,6 +95,9 @@ For more information contact developer.support@att.com -->
<strong>Transaction Auth Code:</strong> <%= @new_transaction[:transaction_auth_code] %>
<br />
<br/>
+ <form name="getNotaryDetails" action="<%= settings.notary_app_view_payload_url %>">
+ <input type="submit" name="submit" value="View Notary Details" />
+ </form>
</div>
<br/>
<% end %>
143 Payment/Ruby/app1/views/notary.erb
View
@@ -1,98 +1,97 @@
+
<!-- Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
For more information contact developer.support@att.com -->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
- <title>AT&T Sample Notary Application - Sign Payload Application</title>
- <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
- <link rel="stylesheet" type="text/css" href="css/common.css" />
- </head>
+ <title>AT&T Sample Notary Application - Sign Payload Application</title>
+ <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type">
+ <link rel="stylesheet" type="text/css" href="style/common.css"/ >
<body>
<div id="container">
- <!-- open HEADER -->
- <div id="header">
- <div>
- <div class="hcRight">
- <%= Time.now.utc.strftime("%a, %B %d, %Y %H:%M:%S UTC") %>
- </div>
- <div class="hcLeft">
- Server Time:</div>
- </div>
- <div>
- <div class="hcRight">
- <script language="JavaScript" type="text/javascript">
- var myDate = new Date();
- document.write(myDate);
- </script>
- </div>
- <div class="hcLeft">
- Client Time:</div>
- </div>
- <div>
- <div class="hcRight">
- <script language="JavaScript" type="text/javascript">
- document.write("" + navigator.userAgent);
- </script>
- </div>
- <div class="hcLeft">
- User Agent:</div>
- </div>
- <br clear="all" />
- </div>
- <!-- close HEADER -->
- <div>
+ <!-- open HEADER -->
+ <div id="header">
+ <div>
+ <div id="hcRight">
+ <%= Time.now.utc.strftime("%a, %B %d, %Y %H:%M:%S UTC") %>
+ </div>
+ <div id="hcLeft">
+ Server Time:
+ </div>
+ </div>
+ <div>
+ <div id="hcRight">
+ <script language="JavaScript" type="text/javascript">
+ var myDate = new Date();
+ document.write(myDate);
+
+ </script>
+ </div>
+ <div id="hcLeft">
+ Client Time:
+ </div>
+ </div>
+ <div>
+ <div id="hcRight">
+ <script language="JavaScript" type="text/javascript">
+ document.write("" + navigator.userAgent);
+
+ </script>
+ </div>
+ <div id="hcLeft">
+ User Agent:
+ </div>
+ </div>
+ <br clear="all" />
+ </div><!-- close HEADER -->
+ <div id="wrapper">
<div id="content">
- <h1>
- AT&T Sample Notary Application - Sign Payload Application</h1>
- <h2>
- Feature 1: Sign Payload</h2>
+ <h1>AT&T Sample Notary Application - Sign Payload Application</h1>
+ </div>
+ </div>
+ <div id="wrapper">
+ <div id="content">
+ <h2>
<br />
+ Feature 1: Sign Payload</h2>
</div>
</div>
- <form method="post" name="signContent" enctype="multipart/form-data" action="/signPayload">
+
<div id="navigation">
- <table border="0" width="100%">
+ <table border="0" width="950px">
<tbody>
<tr>
- <td width="20%" valign="top" class="label">Request:</td>
- <td class="cell">
- <textarea rows="12" name="payload" style="width: 90%"><%= settings.notary_payload %></textarea>
+ <td valign="top" class="label">Request:</td>
+ <td class="cell" ><textarea rows="20" cols="60" name="payload" ><%= settings.notary_payload %></textarea>
</td>
- </tr>
- <tr>
- <td></td>
- <td class="cell" align="right">
- <button type="submit" name="submit">
- Sign Payload
- </button></td>
- </tr>
+ <td width="50px"></td>
+ <td valign="top" class="label">Signed Payload:</td>
+ <td class="cell" width="400px" ><%= settings.notary_result[:signed_payload] %></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td width="50px"></td>
+ <td valign="top" class="label">Signature:</td>
+ <td class="cell"><%= settings.notary_result[:signature] %></td>
+ </tr>
+ <tr>
+ <td></td>
+
+ <form name="returnPayment" action="<%= settings.payment_redirect %>">
+ <td class="cell" align="right"><input type="submit" name="signNotary" value="Back" /></td>
+ </form>
+ </tr>
</tbody>
</table>
</div>
- </form>
- <div id="extra">
- <% if session[:notary_result] %>
- <table border="0" width="100%">
- <tbody>
- <tr>
- <td width="20%" valign="top" class="label">Signed Payload:</td>
- <td class="cell"><%= settings.result[:signed_payload] %></td>
- </tr>
- <tr>
- <td valign="top" class="label">Signature:</td>
- <td class="cell"><%= settings.result[:signature] %></td>
- </tr>
- </tbody>
- </table>
- <% end %>
- </div>
<br clear="all" />
<div id="footer">
<div style="float: right; width: 20%; font-size: 9px; text-align: right">
- Powered by AT&amp;T Virtual Mobile
+ Powered by AT&amp;T Cloud Architecture
</div>
<p>
&copy; 2012 AT&amp;T Intellectual Property. All rights reserved. <a href="http://developer.att.com/" target="_blank">http://developer.att.com</a>
5 Payment/Ruby/app2/README
View
@@ -5,7 +5,7 @@
* For more information contact developer.support@att.com<mailto:developer.support@att.com>
******************************************************************************************
- AT&T API Samples - Payment app 2
+ AT&T API Platform Samples - Payment app 2
----------------------------------
This file describes how to set up, configure and run the Ruby applications using AT&T API Platform services.
@@ -126,8 +126,9 @@ create and run one's own full-fledged sample applications.
3) secret_key : set the value as per your registered appliaction 'Secret key' field value
- 4) FQDN : https://api.att.com
+ 4) FQDN : https://api.att.com
+ 5) payment_redirect : URL which redirects back to payment application after notary details have been viewed
4. Running the application
16 Payment/Ruby/app2/app2.rb
View
@@ -64,8 +64,8 @@
refresh_notifications
end
-post '/transactionListener' do
- transaction_listener
+post '/subscriptionListener' do
+ subscription_listener
end
# URL handlers go here
@@ -146,7 +146,7 @@ def callback_subscription
@new_subscription[:merchant_transaction_id] = session[:merchant_transaction_id]
@new_subscription[:subscription_auth_code] = params['SubscriptionAuthCode']
- params['SubscriptionAuthCode'] = session[:subscription_auth_code]
+ session[:subscription_auth_code] = params['SubscriptionAuthCode']
@subscriptions.push @new_subscription
@subscriptions.delete_at 0 if @subscriptions.length > settings.recent_subscriptions_stored
@@ -161,7 +161,7 @@ def get_subscription_status
if params['getSubscriptionType'] == '1'
u = settings.FQDN + "/rest/3/Commerce/Payment/Subscriptions/MerchantTransactionId/" + session[:merchant_transaction_id]
elsif params['getSubscriptionType'] == '2'
- u = settings.FQDN + "/rest/3/Commerce/Payment/Subscriptions/SubscriptionAuthCode/" + @subscriptions.last[:subscription_auth_code]
+ u = settings.FQDN + "/rest/3/Commerce/Payment/Subscriptions/SubscriptionAuthCode/" + session[:subscription_auth_code]
elsif params['getSubscriptionType'] == '3'
u = settings.FQDN + "/rest/3/Commerce/Payment/Subscriptions/SubscriptionId/" + @subscriptions.last[:subscription_id]
end
@@ -267,7 +267,7 @@ def refresh_notifications
end
end
read_recent_notifications
- erb :app1
+ erb :app2
end
def acknowledge_notifications
@@ -290,11 +290,11 @@ def acknowledge_notifications
end
end
ensure
- return erb :app1
+ return erb :app2
read_recent_notifications
end
-def transaction_listener
+def subscription_listener
# make the API call
input = request.env["rack.input"].read
notificationId = /\<hub:notificationId\>(.*?)<\/hub:notificationId>/.match(input)[1]
@@ -303,7 +303,7 @@ def transaction_listener
File.open("#{settings.notifications_file_dir}/notifications", 'a+') { |f| f.puts notificationId }
ensure
- return erb :app1
+ return erb :app2
end
2  Payment/Ruby/app2/configNotary.yml
View
@@ -2,4 +2,4 @@ port: 4568
api_key:
secret_key:
FQDN: https://api.att.com
-
+payment_redirect: http://localhost:4567/
9 Payment/Ruby/app2/views/app2.erb
View
@@ -92,9 +92,12 @@ For more information contact developer.support@att.com -->
<br />
<strong>Merchant Transaction ID:</strong> <%= @new_subscription[:merchant_transaction_id] %>
<br/>
- <strong>Subscription Auth Code:</strong> <%= params['SubscriptionAuthCode'] %>
+ <strong>Subscription Auth Code:</strong> <%= @new_subscription[:subscription_auth_code] %>
<br />
<br/>
+ <form name="getNotaryDetails" action="<%= settings.notary_app_view_payload_url %>">
+ <input type="submit" name="submit" value="View Notary Details" />
+ </form>
</div>
<br/>
<% end %>
@@ -120,12 +123,12 @@ For more information contact developer.support@att.com -->
<tr>
<td class="cell">
<input type="radio" name="getSubscriptionType" value="1" checked="checked" />
- Merchant Transaction ID: <%= @subscriptions.last ? @subscriptions.last[:merchant_transaction_id] : '' %></td>
+ Merchant Transaction ID: <%= session[:merchant_transaction_id] %></td>
</tr>
<tr>
<td class="cell">
<input type="radio" name="getSubscriptionType" value="2" />
- Auth Code: <%= @subscriptions.last ? @subscriptions.last[:subscription_auth_code] : '' %></td>
+ Auth Code: <%= session[:subscription_auth_code] %></td>
</tr>
<tr>
<td class="cell">
142 Payment/Ruby/app2/views/notary.erb
View
@@ -4,96 +4,94 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.a
Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
For more information contact developer.support@att.com -->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
- <title>AT&T Sample Notary Application - Sign Payload Application</title>
- <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
- <link rel="stylesheet" type="text/css" href="css/common.css" />
- </head>
+ <title>AT&T Sample Notary Application - Sign Payload Application</title>
+ <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type">
+ <link rel="stylesheet" type="text/css" href="style/common.css"/ >
<body>
<div id="container">
- <!-- open HEADER -->
- <div id="header">
- <div>
- <div class="hcRight">
- <%= Time.now.utc.strftime("%a, %B %d, %Y %H:%M:%S UTC") %>
- </div>
- <div class="hcLeft">
- Server Time:</div>
- </div>
- <div>
- <div class="hcRight">
- <script language="JavaScript" type="text/javascript">
- var myDate = new Date();
- document.write(myDate);
- </script>
- </div>
- <div class="hcLeft">
- Client Time:</div>
- </div>
- <div>
- <div class="hcRight">
- <script language="JavaScript" type="text/javascript">
- document.write("" + navigator.userAgent);
- </script>
- </div>
- <div class="hcLeft">
- User Agent:</div>
- </div>
- <br clear="all" />
- </div>
- <!-- close HEADER -->
- <div>
+ <!-- open HEADER -->
+ <div id="header">
+ <div>
+ <div id="hcRight">
+ <%= Time.now.utc.strftime("%a, %B %d, %Y %H:%M:%S UTC") %>
+ </div>
+ <div id="hcLeft">
+ Server Time:
+ </div>
+ </div>
+ <div>
+ <div id="hcRight">
+ <script language="JavaScript" type="text/javascript">
+ var myDate = new Date();
+ document.write(myDate);
+
+ </script>
+ </div>
+ <div id="hcLeft">
+ Client Time:
+ </div>
+ </div>
+ <div>
+ <div id="hcRight">
+ <script language="JavaScript" type="text/javascript">
+ document.write("" + navigator.userAgent);
+
+ </script>
+ </div>
+ <div id="hcLeft">
+ User Agent:
+ </div>
+ </div>
+ <br clear="all" />
+ </div><!-- close HEADER -->
+ <div id="wrapper">
<div id="content">
- <h1>
- AT&T Sample Notary Application - Sign Payload Application</h1>
- <h2>
- Feature 1: Sign Payload</h2>
+ <h1>AT&T Sample Notary Application - Sign Payload Application</h1>
+ </div>
+ </div>
+ <div id="wrapper">
+ <div id="content">
+ <h2>
<br />
+ Feature 1: Sign Payload</h2>
</div>
</div>
- <form method="post" name="signContent" enctype="multipart/form-data" action="/signPayload">
+
<div id="navigation">
- <table border="0" width="100%">
+ <table border="0" width="950px">
<tbody>
<tr>
- <td width="20%" valign="top" class="label">Request:</td>
- <td class="cell">
- <textarea rows="12" name="payload" style="width: 90%"><%= settings.notary_payload %></textarea>
+ <td valign="top" class="label">Request:</td>
+ <td class="cell" ><textarea rows="20" cols="60" name="payload" ><%= settings.notary_payload %></textarea>
</td>
- </tr>
- <tr>
- <td></td>
- <td class="cell" align="right">
- <button type="submit" name="submit">
- Sign Payload
- </button></td>
- </tr>
+ <td width="50px"></td>
+ <td valign="top" class="label">Signed Payload:</td>
+ <td class="cell" width="400px" ><%= settings.notary_result[:signed_payload] %></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td width="50px"></td>
+ <td valign="top" class="label">Signature:</td>
+ <td class="cell"><%= settings.notary_result[:signature] %></td>
+ </tr>
+ <tr>
+ <td></td>
+
+ <form name="returnPayment" action="<%= settings.payment_redirect %>">
+ <td class="cell" align="right"><input type="submit" name="signNotary" value="Back" /></td>
+ </form>
+ </tr>
</tbody>
</table>
</div>
- </form>
- <div id="extra">
- <% if session[:notary_result] %>
- <table border="0" width="100%">
- <tbody>
- <tr>
- <td width="20%" valign="top" class="label">Signed Payload:</td>
- <td class="cell"><%= settings.result[:signed_payload] %></td>
- </tr>
- <tr>
- <td valign="top" class="label">Signature:</td>
- <td class="cell"><%= settings.result[:signature] %></td>
- </tr>
- </tbody>
- </table>
- <% end %>
- </div>
<br clear="all" />
<div id="footer">
<div style="float: right; width: 20%; font-size: 9px; text-align: right">
- Powered by AT&amp;T Virtual Mobile
+ Powered by AT&amp;T Cloud Architecture
</div>
<p>
&copy; 2012 AT&amp;T Intellectual Property. All rights reserved. <a href="http://developer.att.com/" target="_blank">http://developer.att.com</a>
14 TL/Ruby/app1/README
View
@@ -1,8 +1,14 @@
-
- AT&T API Samples - Terminal Location
+******************************************************************************************
+* Licensed by AT&T under 'Software Development Kit Tools Agreement.' 2012
+* TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION: http://developer.att.com/sdk_agreement/
+* Copyright 2012 AT&T Intellectual Property. All rights reserved. http://developer.att.com
+* For more information contact developer.support@att.com<mailto:developer.support@att.com>
+******************************************************************************************
+
+ AT&T API Platform Samples - Terminal Location
--------------------------------------
-This file describes how to set up, configure and run the ruby versions of the AT&T HTML5 Program sample applications.
+This file describes how to set up, configure and run the Ruby applications using AT&T API Platform services.
It covers all steps required to register the application on DevConnect and, based on the generated API keys and secrets,
create and run one's own full-fledged sample applications.
@@ -29,7 +35,7 @@ create and run one's own full-fledged sample applications.
application code.
Having your application registered, you will get back an important pair of data: an API key and Secret key. They are
- necessary to get your applications working with the AT&T HTML5 APIs. See 'Adjusting parameters' below to learn how to use
+ necessary to get your applications working with the AT&T Platform APIs. See 'Adjusting parameters' below to learn how to use
these keys.
Initially your newly registered application is restricted to the "Sandbox" environment only. To move it to production,
Please sign in to comment.
Something went wrong with that request. Please try again.