Page 1 of 1

Bankcard data validation via https POST

Posted: Wed Sep 26, 2007 5:10 pm
by ricks@afts.com
Is there some type of demo application that PLUM has that could show how we could collect some input from a caller, then using that input make a POST or GET to a HTTP webserver that delivers back some values that we can continue to use in our script?

We have an in-house IVR application that collects bankcard information for utility bill payment processing. We need to have our caller enter their account number, then we hit the existing web-server database to validate that account, returning variables for the service address and current amount owed. We then prompt for bankcard information, CCV, etc and then take all that and complete the online credit card charge.

We are hoping to move to PLUM for the voice input that our system doesn't now support.



Thanks.

IVR tutorial- bankcard data validation via https POST

Posted: Thu Sep 27, 2007 8:46 am
by support
Hi,

Here's a link to our IVR tutorial that provides some IVR examples of how to collect input from a caller and using that input to make a POST or GET to a HTTP webserver:

http://www.plumvoice.com/docs/dev/devel ... nding_Data

Hope this helps.

Regards,
Plum Support

Re: bankcard data validation via https POST

Posted: Wed Oct 03, 2007 6:38 pm
by ricks@afts.com
support wrote:Hi,

Here's a link to our tutorial that provides some examples of how to collect input from a caller and using that input to make a POST or GET to a HTTP webserver:

http://www.plumvoice.com/docs/dev/devel ... e:tutorial

Hope this helps.

Regards,
Plum Support
I'm still a bit baffled by how to access remote data. I reviewed your examples, and found some more info shown as the Record.vxml and Save.php samples, but can't tell if that is really doing anything with the <submit next="http://mightyserver.com/Save.php" namelist="msg" method="post" enctype="multipart/form-data"/> shown there.

If you try this URL that feeds up data from our server for example:

http://lookup.afts.com:8080/plum.htm?Tx=5

You will see a dollar about related ot the Tx=5 value passed. This test page I setup works with any value from 1-7. Could a simple Plum script be setup to capture a 1-7 key input in to a <var> and then feed that to URL example and have the Plum system respond with a voice rendering of the dollar amount returned? In the Record.vxml and Sav.php examples, I'm lost as to what the Saved.php file is for? Why can't you just feed the data you have caputred in the Record file to the mightyserver (or lookup.afts.com) and get the output back and continue?

Sorry to be asking such basic questions. I'm hoping this is easier than it seems and some future explanation by you or others here will clarify if for me.

Thanks so much.

Rick

Use <subdialog> tag in IVR script to collect data

Posted: Thu Oct 04, 2007 10:06 am
by support
Hi,

I would recommend using the <subdialog> tag for what you want to do. The subdialog tag allows you to collect data from your main script, send the data to a subdialog page to return a value back to the main page, and continue on with your IVR application.

For IVR example:

Here's your main script.

Code: Select all

<?xml version="1.0"?>
<vxml version="2.0">

<form>
  <field name="number">
    <grammar type="application/x-jsgf">1|2|3</grammar>
      <prompt>
        Please enter a number using your keypad.
      </prompt>
  </field>
  <subdialog name="blah" namelist="number" src="http://server.com/dollar.php"/>
  <block>
    <prompt>
      Your dollar amount is <value expr="blah.amount"/>.
    </prompt>
  </block>
</form>

</vxml>
Here's what dollar.php would look like:

Code: Select all

<?php
header("Content-type: text/xml");
echo("<?xml version=\"1.0\"?>\n");

$number = $_GET[number];

if($number==1){
	$dollar="$134.00";
}
elseif($number==2){
	$dollar="$54.00";
}
else{
	$dollar="$5.00";
}
?>

<vxml version="2.0">
	<form id="getdollaramount">
		<block>
			<var name="amount" expr="'<?php echo($dollar)?>'"/>
			<return namelist="amount"/>
		</block>
	</form>
</vxml>
Hope this helps.

Regards,
Plum Support

reminder for data exchange when using IVR system

Posted: Thu Oct 04, 2007 10:13 am
by support
Just a reminder when using the IVR system...

When using the <subdialog> or <submit> tags for data exchange, a VXML document must be returned to the VoiceXML platform. When using the <data> tag for data exchange, an XML file must be returned to the VoiceXML platform.

Regards,
Plum Support

Still lost

Posted: Thu Oct 04, 2007 12:38 pm
by ricks@afts.com
In reading your response to my question last night, it seems like you are saying that I need to "feed" from my server some output that looks like the vxml layout you documented in the Dollar.PHP file. I can't use PHP on my server, so I used the HTF instead. I can't seem to make the <> symbols generate, and am hoping these are not needed, but need clarification maybe.

My URL of http://lookup.afts.com:8080/plum.htf produces on my screen the following:

?xml version="1.0"?
vxml version="2.0"
form id="getdollaramount"
block
var name="amount" expr="$23,882.00"
return namelist="amount"
/block
/form
/vxml

I then made your demo script active in my account and changed the server.com to my actual server noted above.

<?xml version="1.0"?>
<vxml version="2.0">

<form>
<field name="number">
<grammar type="application/x-jsgf">1|2|3</grammar>
<prompt>
Please enter a number using your keypad.
</prompt>
</field>
<subdialog name="blah" namelist="number" src="http://lookup.afts.com:8080/plum.htf"/>
<block>
<prompt>
Your dollar amount is <value expr="blah.amount"/>.
</prompt>
</block>
</form>

</vxml>

The input of 1, 2, or 3 does nothing at this point. Our server is pulling data using a default value of 7 on our side.

The 'namelist' command has me baffled a bit. I would think I would send the 'number' with a defined name in my URL, sort of like lookup.afts.com:8080?Tx=5 where the Tx is the variable my server script is looking for to carry the 'number' for accessing the database, which would then be used to create the VXML layout like shown. Or, maybe the variable is both the string name and value of the string when passed? It sort of seems like that might be true given the <value expr="blah.amount"/> shown in your sample.

Am I even close to understanding how this really works or am I totally confused here?

Thanks for your continued patience. Rick

bankcard data validation via https POST using IVR system

Posted: Thu Oct 04, 2007 4:34 pm
by support
Hi,

The "<" and ">" are absolutely critical in getting the IVR system to work. Also, your web server is generating HTML, which cannot be parsed by the VoiceXML platform. The VoiceXML platform can only parse valid VXML.

You can also look at your IVR source code in a web browser to see if it is correct. The output from your file should look something like this on your web browser:

<?xml version="1.0"?>

<vxml version="2.0">
<form id="getdollaramount">
<block>
<var name="amount" expr="'$5.00'"/>
<return namelist="amount"/>
</block>
</form>
</vxml>

So, if you are able to generate your HTF file into VXML instead of HTML, you should be able to get your IVR application to work.

Regards,
Plum Support

Still getting FETCH error

Posted: Fri Oct 05, 2007 2:42 pm
by ricks@afts.com
Hello. We are still stuck. We moved the back end server to a different machine that can produce output without the HTML tag you indicated was causing the problem. We have setup the VXML output on the server to feed back just a fixed amount at this point, per your earlier suggestion.


Here is our test script, with the new URL shown in red:

<?xml version="1.0"?>
<vxml version="2.0">

<form>
<field name="number">
<grammar type="application/x-jsgf">1|2|3</grammar>
<prompt>
Please enter a number using your keypad. We will now try to get a 5 dollar response.
</prompt>
</field>
<subdialog name="blah" namelist="number" src="https://web.afts.com/Testww/wc.dll?IVRPRC~PlumIVR"/>
<block>
<prompt>
Your dollar amount is <value expr="blah.amount"/>.
</prompt>
</block>
</form>

</vxml>

The server returns:

<?xml version="1.0" ?>
<vxml version="2.0">
<form id="getdollaramount">
<block>
<var name="amount" expr="$5.00" />
<return namelist="amount" />
</block>
</form>
</vxml>

Why are we still getting the error bad fetch response?

Thanks.

IVR fix for Still getting FETCH error

Posted: Fri Oct 05, 2007 3:13 pm
by support
Hi,

There are two IVR issues that need to be resolved to get your IVR application to work.

1) You should add a POST to the <subdialog> line. To do this, you should change the red line of IVR code to:

Code: Select all

<subdialog name="blah" namelist="number" src="https://web.afts.com/Testww/wc.dll?IVRPRC~PlumIVR" method="post"/>
2) There needs to be single quotes around the $5.00 as well as the double quotes. So what your IVR server should be seeing is:

<?xml version="1.0" ?>
<vxml version="2.0">
<form id="getdollaramount">
<block>
<var name="amount" expr="'$5.00'" />
<return namelist="amount" />
</block>
</form>
</vxml>

Hope this helps.

Regards,
Plum Support