javascript - Previous Page
HejsaJeg er ved at implementere en hjemmeside til at kunne have betaling på. Dette foregår via epay's betalingsmodul.
Kort fortalt starter jeg bare et epay javascript op og overfører værdierne ved <input hidden-field>. Således:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Epay.aspx.cs"
Inherits="hjemmeside.Website.Epay" %>
<%@ PreviousPageType VirtualPath="~/Payment2.aspx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script language="jscript">
function init()
{
// document.ePay.accepturl.value = "http://www.dr.dk"
open_ePay_window();
}
</script>
<html>
<head runat="server">
<title>ePay | Standard Payment Window - example 1</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript" src="http://www.epay.dk/js/standardwindow.js">
</script>
</head>
<body onload="open_ePay_window()">
<form runat="server" action="https://ssl.ditonlinebetalingssystem.dk/popup/default.asp"
method="post" name="ePay" target="ePay_window" id="ePay">
<input type="hidden" name="orderid" value="" />
<input type="hidden" name="accepturl" value="http://www.servicepartner.dk/Redirect.aspx" />
<input type="hidden" name="declineurl" value="http://www.servicepartner.dk/PaymentDeclined.aspx" />
<input type="hidden" name="group" value="" />
<input type="hidden" name="description" value="This is the description of the order / payment, which will be available in the administration of ePay." />
<asp:HiddenField runat="server" ID="amount" />
<asp:HiddenField runat="server" ID="merchantnumber" />
<asp:HiddenField runat="server" ID="currency" />
<asp:HiddenField runat="server" ID="language" />
<asp:HiddenField runat="server" ID="instantcapture" />
<asp:HiddenField runat="server" ID="ordretext" />
<asp:HiddenField runat="server" ID="windowstate" />
<asp:HiddenField runat="server" ID="authmail" />
<asp:HiddenField runat="server" ID="addfee" />
</form>
</body>
</html>
Det fungerer fint, bortset fra at jeg ikke kan bruge accepturl og declineurl (der blot skal føre kunden tilbage til hovedsiden når betalingen er overstået) ved følgende:
Lige så snart jeg henter værdierne fra foregående side ved
PreviousPage.pp_TotalAmount.Text; går det galt. Dvs alt virker foruden at jeg ikke kan redericte epays javascript. Her er .cs-filen:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace hjemmeside.Website
{
public partial class Epay : hjemmeside.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SetTitle("Betaling. Trin 3 af 4");
if (!IsPostBack)
{
merchantnumber.Value = "8882871"; // Other number on production
currency.Value = "208";
language.Value = "1"; // 1-Danish, 2-English
instantcapture.Value = "1"; // 0-Payment will be paid manually. 1- payment: right away
ordretext.Value = "Tak for din betaling.";
windowstate.Value = "1"; // windowstate 1 = popup-window
authmail.Value = "test@msn.com";
addfee.Value = "1"; // transaction charge 1: Customer 0: ServicePartner
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// HER GÅR DET GALT prg.a. jeg henter data fra foregående Previous page
if (Page.PreviousPage != null)
{
amount.Value = PreviousPage.pp_TotalAmount.Text;
// orderid.Value = PreviousPage.pp_ActivityID.Text;
// string notevalue = PreviousPage.pp_TextBoxCustomerDescription.Text;
// description.Value = TransformCharacters(notevalue);
}
else
{
Page.Response.Write("FEJL!! previouspage er null");
}
}
}
/*
" citationstegn "
& og &
' apostrof '
< mindre end <
> større end >
fast mellemrum
Å stort Å Å
Æ stort Æ Æ
Ø stort Ø Ø
å lille å å
æ lille æ æ
ø lille ø ø
* */
private string TransformCharacters(string textstring)
{
string tmpstring = textstring;
tmpstring = Regex.Replace(tmpstring, "&", "&");
tmpstring = Regex.Replace(tmpstring, "ø", "ø");
tmpstring = Regex.Replace(tmpstring, "æ", "æ");
tmpstring = Regex.Replace(tmpstring, "å", "å");
tmpstring = Regex.Replace(tmpstring, "Ø", "Ø");
tmpstring = Regex.Replace(tmpstring, "Æ", "Æ");
tmpstring = Regex.Replace(tmpstring, "Å", "Å");
tmpstring = Regex.Replace(tmpstring, ">", ">");
tmpstring = Regex.Replace(tmpstring, "<", "<");
tmpstring = Regex.Replace(tmpstring, "'", "'");
return tmpstring;
}
}
}