Permalink
Browse files

update payment and

  • Loading branch information...
1 parent c02057b commit e901f79f765224e9421fd13f8dc4f8bb1aba8b1e attdevsupport committed Jul 27, 2012
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
View
7 MMS/Java/app3/README.txt
@@ -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.
View
3 MMS/Java/app3/config.jsp
@@ -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";
-%>
+%>
View
7 MMS/Java/app3/getImageData.jsp
@@ -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 = "";
View
13 MMS/PHP/app1/README.txt
@@ -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,
View
13 MMS/PHP/app2/README.txt
@@ -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,
View
1 MMS/PHP/app3/MoMessages/mmslistner.db
@@ -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";}}
View
13 MMS/PHP/app3/README.txt
@@ -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,
View
2 MMS/PHP/app3/config.php
@@ -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
View
7 MMS/PHP/app3/filed.php
@@ -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");
View
22 MMS/PHP/app3/index.php
@@ -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>
View
2 MMS/PHP/app3/mmslistener.php
@@ -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
View
2 MMS/Ruby/app3/README
@@ -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.
View
283 MMS/Ruby/app3/mms3.rb
@@ -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
-
View
15 Notary/Java/app1/OauthStorage.jsp
@@ -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");
%>
View
16 Notary/Java/app1/README.txt
@@ -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,
View
7 Notary/Java/app1/config.jsp
@@ -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 = "";
View
7 Notary/Java/app1/notary.jsp
@@ -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>
View
2 Notary/Ruby/app1/notary.rb
@@ -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
+
View
53 Notary/Ruby/app1/views/notary.erb
@@ -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>
+
View
12 Payment/Java/app1/OauthStorage.jsp
@@ -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 = "";
View
12 Payment/Java/app1/config.jsp
@@ -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 = "";
View
30 Payment/Java/app1/getToken.jsp
@@ -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";
View
7 Payment/Java/app1/listener.jsp
@@ -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.*" %>
View
12 Payment/Java/app1/notary.jsp
@@ -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>
View
7 Payment/Java/app1/singlepay.jsp
@@ -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>
View
12 Payment/Java/app2/OauthStorage.jsp
@@ -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 = "";
View
2 Payment/Java/app2/README.txt
@@ -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.
View
12 Payment/Java/app2/config.jsp
@@ -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 = "";
View
31 Payment/Java/app2/getToken.jsp
@@ -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";
View
12 Payment/Java/app2/notary.jsp
@@ -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>
View
12 Payment/Java/app2/paymentlistener.jsp
@@ -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.*" %>
View
12 Payment/Java/app2/subscription.jsp
@@ -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>
View
8 Payment/PHP/app1/singlepay.php
@@ -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);
}
}
View
6 Payment/Ruby/app1/README
@@ -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
View
3 Payment/Ruby/app1/configNotary.yml
@@ -1,6 +1,5 @@
port: 4568
api_key:
secret_key:
-tokens_file: tokens1
FQDN: https://api.att.com
-
+payment_redirect: http://localhost:4567/
View
3 Payment/Ruby/app1/views/app1.erb
@@ -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 %>
View
143 Payment/Ruby/app1/views/notary.erb
@@ -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>
View
5 Payment/Ruby/app2/README
@@ -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
View
16 Payment/Ruby/app2/app2.rb
@@ -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
View
2 Payment/Ruby/app2/configNotary.yml
@@ -2,4 +2,4 @@ port: 4568
api_key:
secret_key:
FQDN: https://api.att.com
-
+payment_redirect: http://localhost:4567/
View
9 Payment/Ruby/app2/views/app2.erb
@@ -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">
View
142 Payment/Ruby/app2/views/notary.erb
@@ -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>
View
14 TL/Ruby/app1/README
@@ -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,

0 comments on commit e901f79

Please sign in to comment.