RSS

Monthly Archives: July 2011

Processing a refund on a card present transaction in Authorized.Net

Below is a source code to do refund for card reader present transactions in asp.net:

System.Collections.Specialized.NameValueCollection objPayInf = new System.Collections.Specialized.NameValueCollection(30);

objPayInf.Add(“x_cpversion”, “1.0”);
objPayInf.Add(“x_login”, “7G6Ux97Sqyst”);
objPayInf.Add(“x_amount”, “10.00”);
objPayInf.Add(“x_tran_key”, “76kf798S7RtqEyxQ”);
objPayInf.Add(“x_delim_data”, “TRUE”);
objPayInf.Add(“x_delim_char”, “|”);
objPayInf.Add(“x_relay_response”, “FALSE”);
objPayInf.Add(“x_response_format”, “1”);
objPayInf.Add(“x_test_request”, “FALSE”);
objPayInf.Add(“x_type”, “CREDIT”);
objPayInf.Add(“x_card_num”, “1111”); // Last for digits of credit card number
objPayInf.Add(“x_ref_trans_id”, “123456789”); // Transaction-ID of original settled transaction

// Call the webservice and pass the above given parameters
WebClient objRequest = new WebClient();
byte[] objRetBytes = null;
string[] objRetVals = null;
objRequest.BaseAddress = “https://cardpresent.authorize.net/gateway/transact.dll”;
objRetBytes = objRequest.UploadValues(objRequest.BaseAddress, “POST”, objPayInf);
objRetVals = System.Text.Encoding.ASCII.GetString(objRetBytes).Split(“|”.ToCharArray());

Enjoy. Happy Programming!!!

 
Leave a comment

Posted by on July 19, 2011 in payment gateway

 

Tags: , , , , ,

how to get distinct records in datatable?

Following is a code to get the distinct records from datatable:

public static DataTable SelectDistinct(this DataTable SourceTable, params string[] FieldNames)
    {
        object[] lastValues;
        DataTable newTable;
        DataRow[] orderedRows;

        if (FieldNames == null || FieldNames.Length == 0)
            throw new ArgumentNullException(“FieldNames”);

        lastValues = new object[FieldNames.Length];
        newTable = new DataTable();

        foreach (string fieldName in FieldNames)
            newTable.Columns.Add(fieldName, SourceTable.Columns[fieldName].DataType);

        orderedRows = SourceTable.Select(“”, string.Join(“, “, FieldNames));

        foreach (DataRow row in orderedRows)
        {
            if (!fieldValuesAreEqual(lastValues, row, FieldNames))
            {
                newTable.Rows.Add(createRowClone(row, newTable.NewRow(), FieldNames));

                setLastValues(lastValues, row, FieldNames);
            }
        }

        return newTable;
    }

    private static bool fieldValuesAreEqual(object[] lastValues, DataRow currentRow, string[] fieldNames)
    {
        bool areEqual = true;

        for (int i = 0; i < fieldNames.Length; i++)
        {
            if (lastValues[i] == null || !lastValues[i].Equals(currentRow[fieldNames[i]]))
            {
                areEqual = false;
                break;
            }
        }

        return areEqual;
    }

    private static DataRow createRowClone(DataRow sourceRow, DataRow newRow, string[] fieldNames)
    {
        foreach (string field in fieldNames)
            newRow[field] = sourceRow[field];

        return newRow;
    }

    private static void setLastValues(object[] lastValues, DataRow sourceRow, string[] fieldNames)
    {
        for (int i = 0; i < fieldNames.Length; i++)
            lastValues[i] = sourceRow[fieldNames[i]];
    }

How to call above given function?

//You need to prepare one string array of datatable columns which you want to be unique

string[] fieldNames = { “ServiceProviderName”, “ServiceProviderID” };

/*This extension method created on “DataTable” class. So you need to call this method from your “SourceDataTable” from which you want to select the distinct records. In following code the sourcedatatable is dtSource */
DataTable dt = dtSource.SelectDistinct(fieldNames);

The output of above give code is table “dt” with unique “ServiceProviderNames” and “ServiceProviderIDs”.

Happy Programming!

 

 

 

 
Leave a comment

Posted by on July 9, 2011 in ADO.NET

 

Tags: , ,

How to add wmode=“transparent” for every flash object & ebmed tag using javascript?

How to use wmode as transparent for flash and what’s its use?

Sometime our embedded flash object comes over our websites dropdown menus or over other objects like light box, jQuery Boxy, fancybox etc.

We can solve this problem by changing the wmode of embed to transparent. By changing the wmode to transparent the flash object becomes transparent.

We can do it in following ways.

HTML:-

Add the following parameter to the OBJECT tag:

Add the following parameter to the EMBED tag:

wmode=”transparent”

JavaScript:-

If you are using swfobject.js javascript file for embedding. Then do it like this.

var obj = new SWFObject(”player.swf”,”ply”,”300″,”250″,”9″,”#FFFFFF”);
obj.addParam(”wmode”,”transparent”);

If you want to apply the wmode transparent to whole HTML page. You can do this way.

for (var ems = document.embeds, i = 0, em; em = ems[i]; i++) {
em.setAttribute(’wmode’, ‘transparent’);
var nx = em.nextSibling, pn = em.parentNode;
pn.removeChild(em);
pn.insertBefore(em, nx);
}

=========== OR ==============

<script>
function fix_flash() {
// loop through every embed tag on the site
var embeds = document.getElementsByTagName(’embed’);
for (i = 0; i < embeds.length; i++) {
embed = embeds[i];
var new_embed;
// everything but Firefox & Konqueror
if (embed.outerHTML) {
var html = embed.outerHTML;
// replace an existing wmode parameter
if (html.match(/wmode\s*=\s*(‘|”)[a-zA-Z]+(‘|”)/i))
new_embed = html.replace(/wmode\s*=\s*(‘|”)window(‘|”)/i, “wmode=’transparent'”);
// add a new wmode parameter
else
new_embed = html.replace(/<embed\s/i, “<embed wmode=’transparent’ “);
// replace the old embed object with the fixed version
embed.insertAdjacentHTML(‘beforeBegin’, new_embed);
embed.parentNode.removeChild(embed);
} else {
// cloneNode is buggy in some versions of Safari & Opera, but works fine in FF
new_embed = embed.cloneNode(true);
if (!new_embed.getAttribute(‘wmode’) || new_embed.getAttribute(‘wmode’).toLowerCase() == ‘window’)
new_embed.setAttribute(‘wmode’, ‘transparent’);
embed.parentNode.replaceChild(new_embed, embed);
}
}
// loop through every object tag on the site
var objects = document.getElementsByTagName(‘object’);
for (i = 0; i < objects.length; i++) {
object = objects[i];
var new_object;
// object is an IE specific tag so we can use outerHTML here
if (object.outerHTML) {
var html = object.outerHTML;
// replace an existing wmode parameter
if (html.match(/<param\s+name\s*=\s*(‘|”)wmode(‘|”)\s+value\s*=\s*(‘|”)[a-zA-Z]+(‘|”)\s*\/?\>/i))
new_object = html.replace(/<param\s+name\s*=\s*(‘|”)wmode(‘|”)\s+value\s*=\s*(‘|”)window(‘|”)\s*\/?\>/i, “<param name=’wmode’ value=’transparent’ />”);
// add a new wmode parameter
else
new_object = html.replace(/<\/object\>/i, “<param name=’wmode’ value=’transparent’ />\n</object>”);
// loop through each of the param tags
var children = object.childNodes;
for (j = 0; j < children.length; j++) {
try {
if (children[j] != null) {
var theName = children[j].getAttribute(‘name’);
if (theName != null && theName.match(/flashvars/i)) {
new_object = new_object.replace(/<param\s+name\s*=\s*(‘|”)flashvars(‘|”)\s+value\s*=\s*(‘|”)[^'”]*(‘|”)\s*\/?\>/i, “<param name=’flashvars’ value='” + children[j].getAttribute(‘value’) + “‘ />”);
}
}
}
catch (err) {
}
}
// replace the old embed object with the fixed versiony
object.insertAdjacentHTML(‘beforeBegin’, new_object);
object.parentNode.removeChild(object);
}
}
}

//Write following function in your javascript tag and call this function when your document is fully loaded.

//Method to identified that the body is fully loaded:

var body = document.getElementsByTagName(“BODY”)[0];
if (body && body.readyState == “loaded”) {
AfterLoad();
} else {
if (window.addEventListener) {
window.addEventListener(“load”, AfterLoad, false);
} else {
window.attachEvent(“onload”, AfterLoad);
}
}

function AfterLoad() {
fix_flash(); // call that function to add wmode=”transparent” for every flash object
}

</script>

Enjoy Javascript!!!

 
Leave a comment

Posted by on July 5, 2011 in Javascript

 

Tags: , ,