
Hacking PayPal
Pages: 1, 2, 3

Build an Order-Tracking Page
Keep your customers informed of order status
using an automated system.
The Internet sped up everything, including your
customers' expectations. Once you have the code in
place to display the merchant transaction ID on your return page
[Hack #52]
and insert payment details into a database [Hack #82],
it's easy to create a page that enables customers to
check on the status of an order. You need to place two new pages on
your system: a query page that allows your customers to
ask the question and a results page that gives them the answer. Figure 5-11 shows a completed results page.

Figure 5-11. A completed order-tracking page
An order-tracking page like this one is easy to implement and goes a
long way in placating customers.
Asking the Question
The query page can be quite simple. All you need is a form that
allows your customer to enter the transaction ID you previously
provided. Once the customer clicks Submit, the results page takes
over.
<html><body>
Enter the transaction ID corresponding to the order you wish to look up:
<form action="order_tracking.asp" method="post">
<input type="text" name="txn_id">
<input type="button" value="submit" name="submit">
</form>
</body></html>
The form is only the beginning. Obviously, the preferred method is to
display a list of all relevant transaction IDs, from which the
customer can select one to view the transaction details. See [Hack #22] for more information, as well
as [Hack #94] for a way to get
this information using the PayPal API.
Getting the Answer
This example (especially the tblOrders table)
assumes a database structure similar to the structure used in [Hack #82] .
Any web scripting language will work for this task. This example uses
ASP:
<%
'Read back customers input
Dim txn_id
Txn_id = Request ("txn_id")
'Connect to database and create recordset
connStore = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=
"C:/InetPub/wwwroot/database/dbPayPal.mdb")
set rsOrder = Server.CreateObject("ADODB.Recordset")
rsOrder.ActiveConnection = connStore
rsOrder.Source = SELECT payer_email, payer_id, payment_status, txn_id,
mc_gross, mc_fee, payment_date FROM tblOrders WHERE txn_id = '" &
txn_id &"'"
rsOrder.Open( )
%>
<!-- Check to see if the order information can be found; if so, display it.-->
<% If NOT rsOrder.EOF OR NOT rsOrder.BOF Then %>
Here are the details of your order:
<p>
Customer Email: <%=rsOrder("payer_email")%>
<br>Customer ID: <%=rsOrder("payer_id") %>
<br>Payment Status: <%=rsOrder("payment_status") %>
<br>Transaction ID: <%=rsOrder("txn_id") %>
<br>Payment Gross: <%=rsOrder("mc_gross") %>
<br>Payment Date: <%=rsOrder("payment_date") %>
<% Else %>
No matching Record Found. Please search again.
<% End If %>
Hacking the Hack
Here are a few ways you can extend this hack:
-
Place another copy of the query form on the results page. This way,
if your customers need to query for more than one transaction ID,
they won't have to use their
browser's Back button to enter another.
-
Change the query page to accept a list of transaction IDs in a
textarea box. Then modify the results page to
display the results of searching for each.
Pages: 1, 2, 3
|
Next Page |


|