cancel
Showing results for 
Search instead for 
Did you mean: 

Empty Response in Callback - continued

This is a continuation of the message:

 

https://community.developer.authorize.net/t5/Integration-and-Testing/Blank-response-from-Authorize-N...

 

I could not post another message in the former topic (the message woupld post but then disappear), so I am starting another thread here.

 

RaynorC1emen7 wrote:


Just want to make sure it not your account that is having issue, not returning any response. It look like you posting the data to the /datavalidation/  page. What we need change the relay response url to https://developer.authorize.net/tools/paramdump/index.php to see if it might be an account issue that it not post any data.

Does the code still work in the sandbox with the test account?

If I try to use https://developer.authorize.net/tools/paramdump/index.php​  for the callback url, the system will not even navigate to the payment page, but will return "url not found" error message.  The code fails in the same way on the main site in both production and test modes.  I am getting other errors when I try it from the sandbox account, but that may be because my sandbox account is old/expired.

 

Bottom line - when we need is for Authorize.net to optionally save a log of the callback messages it sends.

rbsorensen7456
Contributor
21 REPLIES 21

So the code does NOT work anywhere?

 

If I try to use https://developer.authorize.net/tools/paramdump/index.php​  for the callback url, the system will not even navigate to the payment page, but will return "url not found" error message.

You keep saying callback url, is that the relay response url?

 

but will return "url not found" error message.

Where? on the browser windows? that the exact message? What on the url address bar?

RaynorC1emen7
Expert

By "callback" I mean "relay response" in your terminology

 

I just tried it again using https://developer.authorize.net/tools/paramdump/index.phpas the default relay response url. 

 

This time I didn't get an error, but I also didn't see any page displayed.  My callback form collects the the "x-blahblah" parameters that the authorize.net site is supposed to send in the message, and passes them to another form which logs the results and sends a page back to the user explaining what happened and telling them what to do next.

 

Some time ago I added logic to the callback form which logs the html and all of the query parameters from the relay response message. There are no query parameters in the callback message - hence the problem.

1)So the url on the address bar is https://developer.authorize.net/tools/paramdump.index.php but the content is blank?

 On the blank screen can you look at the page source?

 

 2)What happened if you put that in a new browswer windows? does it display anything at all?

https://developer.authorize.net/tools/paramdump/index.php

 

 

 

Maybe a Mod would read this and get what you need

Was playing on your website, look like you have testmode on because I was using a test # 4111111111111111

and it said payment was successfuly process.

 

That doesn't make sense as the there are only a few different between testmode on or testmode off.

One being transactionID is always 0 on testmode on.

 

Can you post the code in your RegisterCallback.aspx page so we can look how you are getting value?

I am posting responses that display as being posted, but them they don't show up when I reload the topic.

 

Why?

If you are posting code, please use the Insert Code option in the comment box.  It looks like  this <>

 

Richard

1. When I use https://developer.authorize.net/tools/paramdump/index.php as the sole relay response url, I get the following response when the Authorize.net payment page should be displayed:

 

The following errors have occurred.
(14) The referrer, relay response or receipt link URL is invalid.

 

2. If I then try navigaing to the above URL I get an Authorize.net "Page Not Found" error.

 

3. I tried this for both my live and sandbox accounts and I am now having the same issue for both - blank relay response. Here is the contents of my log of the message:

 

Host: 50.244.14.225 50.244.14.225 Browser: Firefox39, 39.0 BrowserAgent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0
Query String: Url: /PageRegister/RegisterResult.aspx UrlReferrer: /PageRegister/RegisterCallback.aspx

Log: Message: Length: 0 Request URL: /PageRegister/RegisterCallback.aspx

4. Here are the authorize.net keys I am using:

 

Live:

    <add key="AUTHORIZE_NET_API_LOGIN" value="4C7B2Zyfq"/>
    <add key="AUTHORIZE_NET_TRANSACTION_KEY" value="***"/>
    <add key="AUTHORIZE_NET_URL_MODE" value="LIVE"/>
    <add key="AUTHORIZE_NET_URL_LIVE" value="https://secure.authorize.net/gateway/transact.dll"/>


Sandbox:

    <add key="AUTHORIZE_NET_API_LOGIN" value="5QK6Z2FuUt58"/>
    <add key="AUTHORIZE_NET_TRANSACTION_KEY" value="***"/>
    <add key="AUTHORIZE_NET_URL_MODE" value="TEST"/>
    <add key="AUTHORIZE_NET_URL_TEST" value="https://test.authorize.net/gateway/transact.dll"/>

 

 

5. The code is in the next message.

1. Here is the markup and the code for the "Checkout" page which calls the Authorize.net payment page:

 

<%@ Page
    Title="Checkout"
    Language="vb"
    AutoEventWireup="false"
    ViewStateMode="Disabled"
    MasterPageFile="~/PageMaster/MasterLogin.master"
    CodeBehind="RegisterCheckout.aspx.vb"
    Inherits="RegisterCheckout" %>

<%@ MasterType virtualpath="~/PageMaster/MasterLogin.master" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<asp:Content ID="ctlBody" ContentPlaceHolderID="ctlContentBody" runat="server">
    <h3>Checkout</h3>
    <input type="hidden" name="x_invoice_num" id="x_invoice_num" value="<%= AuthorizeNet_x_invoice %>" />
    <input type="hidden" name="x_amount" id="x_amount" value="<%= AuthorizeNet_x_amount %>" />
    <input type="hidden" name="x_description" id="x_description" value="<%= AuthorizeNet_x_description %>" />
    <input type="hidden" name="x_company" id="x_company" value="<%= AuthorizeNet_x_company %>" />
    <input type="hidden" name="x_ship_to_company" id="x_ship_to_company" value="<%= AuthorizeNet_x_company %>" />
    <input type="hidden" name="x_first_name" id="x_first_name" value="<%= AuthorizeNet_x_first_name %>" />
    <input type="hidden" name="x_ship_to_first_name" id="x_ship_to_first_name" value="<%= AuthorizeNet_x_first_name %>" />
    <input type="hidden" name="x_last_name" id="x_last_name" value="<%= AuthorizeNet_x_last_name %>" />
    <input type="hidden" name="x_ship_to_last_name" id="x_ship_to_last_name" value="<%= AuthorizeNet_x_last_name %>" />
    <input type="hidden" name="x_address" id="x_address" value="<%= AuthorizeNet_x_address %>" />
    <input type="hidden" name="x_ship_to_address" id="x_ship_to_address" value="<%= AuthorizeNet_x_address %>" />
    <input type="hidden" name="x_city" id="x_city" value="<%= AuthorizeNet_x_city %>" />
    <input type="hidden" name="x_ship_to_city" id="x_ship_to_city" value="<%= AuthorizeNet_x_city %>" />
    <input type="hidden" name="x_state" id="x_state" value="<%= AuthorizeNet_x_state %>" />
    <input type="hidden" name="x_ship_to_state" id="x_ship_to_state" value="<%= AuthorizeNet_x_state %>" />
    <input type="hidden" name="x_zip" id="x_zip" value="<%= AuthorizeNet_x_zip %>" />
    <input type="hidden" name="x_ship_to_zip" id="x_ship_to_zip" value="<%= AuthorizeNet_x_zip %>" />
    <input type="hidden" name="x_country" id="x_country" value="<%= AuthorizeNet_x_country %>" />
    <input type="hidden" name="x_ship_to_country" id="x_ship_to_country" value="<%= AuthorizeNet_x_country %>" />
    <input type="hidden" name="x_email" id="x_email" value="<%= AuthorizeNet_x_email %>" />
    <input type="hidden" name="x_phone" id="x_phone" value="<%= AuthorizeNet_x_phone %>" />
    <input type="hidden" name="x_cancel_url" id="x_cancel_url" value="<%= AuthorizeNet_x_cancel_url %>" />
    <input type="hidden" name="x_relay_url" id="x_relay_url" value="<%= AuthorizeNet_x_relay_url %>" />
    <input type='hidden' name="x_receipt_link_url" id="x_receipt_link_url" value="<%= AuthorizeNet_x_receipt_link_url %>" />
    <input type="hidden" name="x_login" id="x_login" value="<%= AuthorizeNet_x_login %>" />
    <input type="hidden" name="x_test_request" id="x_test_request" value="<%= AuthorizeNet_x_test_request %>" />
    <input type="hidden" name="x_fp_sequence" id="x_fp_sequence" value="<%= AuthorizeNet_x_fp_sequence %>" />
    <input type="hidden" name="x_fp_timestamp" id="x_fp_timestamp" value="<%= AuthorizeNet_x_fp_timestamp %>" />
    <input type="hidden" name="x_fp_hash" id="x_fp_hash" value="<%= AuthorizeNet_x_fp_hash %>" />
    <input type="hidden" name="x_version" id="x_version" value="<%= AuthorizeNet_x_version %>" />
    <input type="hidden" name="x_relay_response" id="x_relay_response" value="TRUE" />
    <input type="hidden" name="x_show_form" id="x_show_form" value="PAYMENT_FORM" />
    
    <br />
    <br />
    <table class="Admin">
        <tr>
            <td>
                Registration Fee:
            </td>
            <td>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <asp:Label ID="lblFee" runat="server" />
            </td>
        </tr>

        <tr>
            <td colspan="2">
                &nbsp;
            </td>
        </tr>
        <tr>
            <td>
                Discount:
            </td>
            <td>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <asp:Label ID="lblDiscount" runat="server" />
            </td>
        </tr>

        <tr>
            <td colspan="2">
                &nbsp;
            </td>
        </tr>
        <tr>
            <td>
                Payment Amount:
            </td>
            <td>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <asp:Label ID="lblAmount" runat="server" />
            </td>
        </tr>
    </table>

    <br />
    <br />
    <asp:Button ID="btnPay" runat="server" Text="Proceed to Payment Screen" CssClass="button" /> &nbsp;&nbsp;&nbsp;
    <asp:Button ID="btnCancel" runat="server" Text="Cancel" CssClass="button" />
</asp:Content>



Public Class RegisterCheckout
    Inherits PageBase

    ' Test credit card numbers
    '   American Express    370000000000002
    '   Discover            6011000000000012
    '   MasterCard          5424000000000015
    '   Visa                4007000000027
    '   Visa                4012888818888
    '   Diners Club         38000000000006
    '   JCB                 3088000000000017

#Region "Page Routines"
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        CurrentApp.ResultSequence = AuthorizeNet.Crypto.GenerateSequence()
        CurrentApp.ResultTimeStamp = AuthorizeNet.Crypto.GenerateTimestamp().ToString

        lblFee.Text = CurrentApp.Fee.ToString("C")
        lblDiscount.Text = CurrentApp.Discount.ToString("C")
        lblAmount.Text = CurrentApp.Amount.ToString("C")

        If Config.AUTHORIZE_NET_URL_MODE = "TEST" Then
            btnPay.PostBackUrl = Config.AUTHORIZE_NET_URL_TEST
        Else
            btnPay.PostBackUrl = Config.AUTHORIZE_NET_URL_LIVE
        End If
    End Sub

    Protected Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCancel.Click
        CurrentSession.RedirectToPrev(Response, Session)
    End Sub
#End Region

#Region "Properties"
    Public ReadOnly Property AuthorizeNet_x_invoice() As Integer
        Get
            Return CurrentApp.ID
        End Get
    End Property

    Public ReadOnly Property AuthorizeNet_x_amount() As String
        Get
            Return CurrentApp.Amount.ToString("#####0.00")
        End Get
    End Property

    Public ReadOnly Property AuthorizeNet_x_description() As String
        Get
            Return "Registration Fee for " & CurrentApp.FirstName & " " & CurrentApp.LastName
        End Get
    End Property

    Public ReadOnly Property AuthorizeNet_x_company() As String
        Get
            Return CurrentApp.Company
        End Get
    End Property

    Public ReadOnly Property AuthorizeNet_x_first_name() As String
        Get
            Return CurrentApp.FirstName
        End Get
    End Property

    Public ReadOnly Property AuthorizeNet_x_last_name() As String
        Get
            Return CurrentApp.LastName
        End Get
    End Property

    Public ReadOnly Property AuthorizeNet_x_address() As String
        Get
            Return CurrentApp.Address1
        End Get
    End Property

    Public ReadOnly Property AuthorizeNet_x_city() As String
        Get
            Return CurrentApp.City
        End Get
    End Property

    Public ReadOnly Property AuthorizeNet_x_state() As String
        Get
            Return CurrentApp.State
        End Get
    End Property

    Public ReadOnly Property AuthorizeNet_x_zip() As String
        Get
            Return CurrentApp.Zip
        End Get
    End Property

    Public ReadOnly Property AuthorizeNet_x_country() As String
        Get
            Return CurrentApp.Country
        End Get
    End Property

    Public ReadOnly Property AuthorizeNet_x_email() As String
        Get
            Return CurrentApp.Email
        End Get
    End Property

    Public ReadOnly Property AuthorizeNet_x_phone() As String
        Get
            Return CurrentApp.Phone
        End Get
    End Property

    Public ReadOnly Property AuthorizeNet_x_cancel_url() As String
        Get
            Return AuthorizeNet_x_relay_url
        End Get
    End Property

    Public ReadOnly Property AuthorizeNet_x_relay_url() As String
        Get
            Return AppConstants.PageRegisterCallback.Replace("~", Config.SiteURL)
        End Get
    End Property

    Public ReadOnly Property AuthorizeNet_x_receipt_link_url() As String
        Get
            Return AuthorizeNet_x_relay_url
        End Get
    End Property

    Public ReadOnly Property AuthorizeNet_x_login() As String
        Get
            Return Config.AUTHORIZE_NET_API_LOGIN
        End Get
    End Property

    Public ReadOnly Property AuthorizeNet_x_test_request() As String
        Get
            Dim sResult = "TRUE"
            Dim osettings As settings = New settings(AppConstants.SettingsID)
            If Not IsNothing(osettings) AndAlso osettings.Exists Then
                sResult = osettings.paymenttestmode.ToString.ToUpper
            End If
            Return sResult
        End Get
    End Property

    Public ReadOnly Property AuthorizeNet_x_version() As String
        Get
            Return Config.AUTHORIZE_NET_VERSION
        End Get
    End Property

    Public ReadOnly Property AuthorizeNet_x_fp_sequence() As String
        Get
            Return CurrentApp.ResultSequence
        End Get
    End Property

    Public ReadOnly Property AuthorizeNet_x_fp_timestamp() As String
        Get
            Return CurrentApp.ResultTimeStamp
        End Get
    End Property

    Public ReadOnly Property AuthorizeNet_x_fp_hash() As String
        Get
            Return AuthorizeNet.Crypto.GenerateFingerprint(
                Config.AUTHORIZE_NET_TRANSACTION_KEY,
                Config.AUTHORIZE_NET_API_LOGIN,
                Decimal.Parse(AuthorizeNet_x_amount),
                CurrentApp.ResultSequence,
                CurrentApp.ResultTimeStamp)
        End Get
    End Property
#End Region

End Class

 

 

2. Here is the markup and the code for the "Callback" page which is the relay response form:

 

<%@ Page
    Language="vb"
    AutoEventWireup="false"
    ViewStateMode="Disabled"
    CodeBehind="RegisterCallback.aspx.vb"
    Inherits="RegisterCallback" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<script type="text/Javascript">
    window.location = "<%= AuthorizeNet_x_result_url %>";
</script>
</body>
</html>



Imports System.IO

Public Class RegisterCallback
    Inherits PageBase

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        ' This page cannot use the normal error handling...
        '
        ' It is called by Authorize.NET and doesn't contain cookies (ALL Session info is missing).
        ' Whatever this page returns is "piped" through Authorize.NET and is rendered in the client browser. 
        ' So it is basically required to return a redirect, so we can return to "sanity" (valid 
        ' Session variables) as soon as possible.
        ' 
        ' ALSO: Anything you render in this page (i.e., if you fail to do the redirect), will be rendered 
        ' to the client browser... and because the browser's URL won't be pointing to this page, 
        ' links will likely break.

        Dim oStream As Stream = Request.InputStream
        Dim iLength As Integer = CInt(oStream.Length)
        Dim bArray(iLength) As Byte
        oStream.Read(bArray, 0, iLength)
        Dim sMessage As String = ""
        For iX As Integer = 0 To iLength - 1
            sMessage &= bArray(iX).ToString()
        Next
        errormessage.LogMessage("Message: " & sMessage & "  Length: " & iLength & "  Request URL: " & Request.Url.PathAndQuery)

        Dim ocurrentpayment As currentpayment = New currentpayment(AppConstants.SettingsID)
        If Not IsNothing(ocurrentpayment) AndAlso ocurrentpayment.Exists Then
            With ocurrentpayment
                .resultcode = GetRequestParam("x_response_code")
                If String.IsNullOrWhiteSpace(.resultcode) Then
                Else
                    .resultmessage = GetRequestParam("x_response_reason_text").Replace("+", " ") & " - Reason Code: " & GetRequestParam("x_response_reason_code")
                    .ccno = GetRequestParam("x_account_number")
                    .hashvalue = GetRequestParam("x_MD5_Hash")
                    .userid = CInt(GetRequestParam("x_invoice_num"))
                    If IsNumeric(GetRequestParam("x_amount")) Then
                        .amount = CDbl(GetRequestParam("x_amount"))
                    Else
                        .amount = 0
                    End If
                End If
            End With
            ocurrentpayment.Update(CurrentSession.UserRef, New List(Of String))
        End If
        'Response.RedirectPermanent(sUrl, True)

        ' Other Authorize.Net parameters
        'x_avs_code=
        'x_auth_code=
        'x_trans_id=
        'x_method=
        'x_card_type=
        'x_first_name=
        'x_last_name=
        'x_company=
        'x_address=
        'x_city=test
        'x_state=IN
        'x_zip=11111
        'x_country=
        'x_phone=
        'x_fax=
        'x_email=
        'x_description=
        'x_type=auth_capture
        'x_cust_id=
        'x_ship_to_first_name=
        'x_ship_to_last_name=
        'x_ship_to_company=
        'x_ship_to_address=
        'x_ship_to_city=
        'x_ship_to_state=
        'x_ship_to_zip=
        'x_ship_to_country=
        'x_tax=
        'x_duty=
        'x_freight=
        'x_tax_exempt=
        'x_po_num=
        'x_cvv2_resp_code=
        'x_cavv_response=
    End Sub

    Public ReadOnly Property AuthorizeNet_x_result_url() As String
        Get
            Dim sUrl = AppConstants.PageRegisterResult.Replace("~", Config.SiteURL)
            errormessage.LogMessage("Result URL: " & sUrl)
            Return sUrl
        End Get
    End Property

    Private Function GetRequestParam(sParamName As String) As String
        Dim sResult As String = ""

        Try
            sResult = Request(sParamName)
        Catch
        End Try

        Return sResult
    End Function
End Class

 

 

3. Here is the markup and the code for the "Register" page which is launched by the Callback page, and returns a response to the user:

 

<%@ Page
    Title="Registration Payment Result"
    Language="vb"
    AutoEventWireup="false"
    ViewStateMode="Disabled"
    MasterPageFile="~/PageMaster/MasterLogin.master"
    CodeBehind="RegisterResult.aspx.vb"
    Inherits="RegisterResult" %>

<%@ MasterType virtualpath="~/PageMaster/MasterLogin.master" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<asp:Content ID="ctlBody" ContentPlaceHolderID="ctlContentBody" runat="server">
    <h3>Registration Payment Result</h3>
    <asp:Panel ID="pnlAdmin" runat="server" CssClass="Admin">
        <br />
        <br />
        <table>
            <tr>
                <td>Payment Result:&nbsp;&nbsp;&nbsp;</td>
                <td><asp:Label ID="lblResult" runat="server" /></td>
            </tr>

            <tr>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
            </tr>

            <tr>
                <td>Next Step:&nbsp;&nbsp;&nbsp;</td>
                <td><asp:Label ID="lblNextStep" runat="server" /></td>
            </tr>
        </table>
    </asp:Panel>

    <br />
    <br />
    <asp:Button ID="btnLogin" runat="server" Text="Continue to Login" CssClass="button" /> &nbsp;&nbsp;&nbsp;&nbsp;
    <asp:Button ID="btnRegister" runat="server" Text="Return to Register" CssClass="button" />
</asp:Content>



Public Class RegisterResult
    Inherits PageBase

#Region "Page Routines"
    Private Const sOK As String = "0"
    Private Const sApproved As String = "1"
    Private Const sDeclined As String = "2"
    Private Const sError As String = "3"
    Private Const sHeldForReview As String = "4"

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Try
            If Not Page.IsPostBack Then
                Dim bError As Boolean = True
                Dim ocurrentpayment As currentpayment = New currentpayment(AppConstants.SettingsID)
                lblResult.Text = ""
                lblNextStep.Text = "Click 'Return to Register' to repeat the registration and payment process"

                If IsNothing(ocurrentpayment) OrElse Not ocurrentpayment.Exists Then
                    lblResult.Text = "Payment processing failure - payment record not found"
                Else
                    With ocurrentpayment
                        If .resultcode = sDeclined Then
                            lblResult.Text = "Payment authorization denied"
                        ElseIf .resultcode = sError Then
                            lblResult.Text = "Error in payment authorization"
                        ElseIf .resultcode = sHeldForReview Then
                            lblResult.Text = "Payment held for review"
                        ElseIf .resultcode <> sApproved AndAlso .resultcode <> sApproved AndAlso Not String.IsNullOrWhiteSpace(.resultcode) Then
                            lblResult.Text = "Transaction was cancelled"
                        Else
                            Dim ouser As users = New users(.userid)
                            If IsNothing(ouser) OrElse Not ouser.Exists Then
                                lblResult.Text = "Transaction database record was not found"
                            ElseIf Not ouser.pending Then
                                lblResult.Text = "Transaction reference was corrupted"
                            ElseIf .amount <> ouser.ccamount Then
                                lblResult.Text = "Transaction amount was corrupted: " & .amount
                            Else
                                bError = False
                                lblResult.Text = "Payment was successfully processed" & CStr(IIf(.paymenttestmode, " in test mode", ""))
                                lblNextStep.Text = "Click the 'Continue to Login' to proceed to login with your newly selected username and password"
                                With ouser
                                    Dim oReplacementParams As New Hashtable
                                    oReplacementParams.Add("%firstname%", .firstname)
                                    oReplacementParams.Add("%username%", .username)
                                    oReplacementParams.Add("%password%", SessionContext.DecryptString(.password))
                                    oReplacementParams.Add("%note%", IIf(ocurrentpayment.paymenttestmode, "Payment was made in test mode, so the user record is still pending", ""))
                                    AppContext.SendEmail(AppConstants.EmailUser_LoginWelcome, "", .email, oReplacementParams)

                                    .active = True
                                    .pending = CBool(IIf(ocurrentpayment.paymenttestmode, True, False))
                                    .ccno = ocurrentpayment.ccno
                                    .Update(CurrentSession.UserRef, Master.ErrorMsgList)
                                End With
                            End If
                        End If

                        If bError Then
                            errormessage.LogMessage("Payment failure - UserID: " & .userid & " Msg: " & lblResult.Text & " - code" & .resultcode & " message: " & .resultmessage)
                        End If

                        .resultcode = ""
                        .resultmessage = ""
                        .hashvalue = ""
                        .userid = 0
                        .amount = 0
                        ocurrentpayment.Update(CurrentSession.UserRef, Master.ErrorMsgList)
                    End With
            End If
            End If
        Catch oEx As Exception
            errormessage.LogException(oEx, Me.GetType.Name, New System.Diagnostics.StackFrame().GetMethod.Name, Request)
        End Try
    End Sub

    Private Sub btnLogin_Click(sender As Object, e As System.EventArgs) Handles btnLogin.Click
        CurrentSession.RedirectToPage(AppConstants.PageLogin, Request, Response, CurrentApp)
    End Sub

    Private Sub btnRegister_Click(sender As Object, e As System.EventArgs) Handles btnRegister.Click
        Dim ocurrentpayment As currentpayment = New currentpayment(AppConstants.SettingsID)
        If Not IsNothing(ocurrentpayment) AndAlso ocurrentpayment.Exists Then
            CurrentApp.ID = ocurrentpayment.userid
        End If
        CurrentSession.RedirectToPage(AppConstants.PageRegister, Request, Response, CurrentApp)
    End Sub
#End Region

End Class