Author Topic: Intergration of Mastercard Gateway in Australia  (Read 82765 times)

lessleep

  • Beginner
  • *
  • Posts: 12
Re: Intergration of Mastercard Gateway in Australia
« Reply #75 on: February 09, 2010, 14:09:15 pm »
Hi Toivo, Thank you very much for all the effort and great job!

Now its the bug report time. The amount doesnot show correctly when there is a coupon entered.

For instance, one item cost $349.90, when there is NO coupon entered, the amount need to pay showing on mastercard website is $349.90, correct. However, after I put in a coupon for -$9, same item shows $340.08 on mastercard website instead of $340.90

I cannot think of where the problem is. So I need your help! Test environment Joomla 1.5.14 + VM 1.1.3. The coupon code is buildin with VM. Thank you again for such great job.

lessleep

  • Beginner
  • *
  • Posts: 12
Re: Intergration of Mastercard Gateway in Australia
« Reply #76 on: February 09, 2010, 14:33:17 pm »
$tax_total = $db->f('order_tax') + $db->f('order_shipping_tax');
$discount_total = $db->f('coupon_discount') + $db->f('order_discount');
$order_total = round($db->f('order_subtotal') + $tax_total + $db->f('order_shipping') - $discount_total, 2);


The formula looks correct, maybe something to do with VM itself?

Toivo Talikka

  • Beginner
  • *
  • Posts: 17
    • Toivo Ltd
Re: Intergration of Mastercard Gateway in Australia
« Reply #77 on: February 12, 2010, 13:23:07 pm »
Hi Toivo

I realise this is a very old topic, but I am just starting to implement ANZ egate integration on my website (J 1.5.10 | VM 1.1.3)

I have downloaded the plugin attached to your earlier post, but find that it only contains a doc file. Where would I get the php files from?

Thanks heaps.
All the other files are in a folder in the archive, including the PHP files.
Toivo
-------------------------
Toivo Ltd
Nottingham, UK

Toivo Talikka

  • Beginner
  • *
  • Posts: 17
    • Toivo Ltd
Re: Intergration of Mastercard Gateway in Australia
« Reply #78 on: February 12, 2010, 13:27:30 pm »
$tax_total = $db->f('order_tax') + $db->f('order_shipping_tax');
$discount_total = $db->f('coupon_discount') + $db->f('order_discount');
$order_total = round($db->f('order_subtotal') + $tax_total + $db->f('order_shipping') - $discount_total, 2);


The formula looks correct, maybe something to do with VM itself?
The difference is close to the GST calculated from the amount of the coupon.  I do not have a VM system available right now, therefore I cannot check but does that sound feasible?
Toivo
-------------------------
Toivo Ltd
Nottingham, UK

thewebxpert

  • Beginner
  • *
  • Posts: 7
Re: Intergration of Mastercard Gateway in Australia
« Reply #79 on: March 15, 2010, 04:42:04 am »

Hi Toivo,

I have integrated the ANZ egate payment system in a website and its working fine, although recently there have been some problems with the orders when the credit card used is expiring in the same month to that of the order month.  The money goes through but the order status gets set to Pending and the admin doesn't receive any email about the order placed.  I don't know why its doing so, but if you have any idea about what might be the cause of this and let me know it would be great.

Let me know if you didn't quite understand what i mean to say.

Thanks

Toivo Talikka

  • Beginner
  • *
  • Posts: 17
    • Toivo Ltd
Re: Intergration of Mastercard Gateway in Australia
« Reply #80 on: March 15, 2010, 10:55:15 am »
Quote
recently there have been some problems with the orders when the credit card used is expiring in the same month to that of the order month.  The money goes through but the order status gets set to Pending and the admin doesn't receive any email about the order placed.
This is a bank hosted solution and the VM plugin does not receive any card related information from the gateway, other than the transaction status, a verbal message and an optional card type. If the response code is zero (0) and the message is 'Approved', the plugin regards the payment as having been approved by Mastercard. 

Please check the problem entries from the transaction log, stored in the table jos_vm_payment_trans, especially the columns 'txn_response_code' and 'message'.  If the response is different from 0 and 'Approved', you may need to provide all the information from that row to your bank so that they can work out what happened at their end.
Toivo
-------------------------
Toivo Ltd
Nottingham, UK

mikesoden

  • Readers
  • *
  • Posts: 0
Re: Intergration of Mastercard Gateway in Australia
« Reply #81 on: May 25, 2010, 14:04:33 pm »
MIGS "Bank Hosted" / "Server hosted" implementation SOLUTION


Hey all, recently I was stuck trying to get a Server Hosted MIGs on Joomla 1.5.17 with Virtuemart 1.1.4

I found this guy Tony Milne who was blogging about a solution at his blog, http://tonymilne.com.au. He was nice enough to release his solution to the public..!

Here's the solution: http://tonymilne.com.au/posts/migs-payments-in-joomla-virtuemart

cheers Tony..!

Mike

sftranna

  • Beginner
  • *
  • Posts: 1
Re: Intergration of Mastercard Gateway in Australia
« Reply #82 on: August 31, 2010, 09:21:01 am »

dear all,
i am facing a problem while using MIGS. Problem is this that whenever im direccted to card details (Payment Details Page) amount that i sent t0 the VPC is divided by 100 so causing problems e.g. my order total is SAR 559 but on payment detail page this shows 5.59 but on the response page its again multiplied by 100 and shown as 559...
so i get far behind the success message :)

my client is a saudi company and this MIGS module deals in (currency) SAR and my payment method is Server-Hosted Payment using Command:pay
and im using custom php5 , no cms or framework
plz help me
Shahzeb Chohan
sftranna at gmail.com

marketing2010

  • Readers
  • *
  • Posts: 0
    • marketing
Re: Intergration of Mastercard Gateway in Australia
« Reply #83 on: September 15, 2010, 11:24:07 am »
I get this error too
"vpc_Message=Merchant+%5BREMOVED%5D+does+not+have+the+required+privilege+to+use+the+VirtualPaymentClient+API."
Does this mean my client does not have the correct account to even use virtuemart payment method? They see to have a online shop but I don't know how it is hosted and don't have access to it.

ttkim1

  • Readers
  • *
  • Posts: 0
Re: Intergration of Mastercard Gateway in Australia
« Reply #84 on: November 13, 2010, 10:23:42 am »
Hi, i get this error after entering credit card details:

Transaction Reference/Order Number:    62_82432fa1297041d7a602a657b23fb
Purchase Amount (AUD, Australian dollars):    1.00
Response:    Payment Server System Error
Message:    Field vpc_Command value [vpc_Command] is invalid

What am I suppose to enter for the VPC version and Command type fields?

Appreciate the help!

emaryanncarpenteri

  • Beginner
  • *
  • Posts: 2
    • Shipping Containers for Sale
Re: Intergration of Mastercard Gateway in Australia
« Reply #85 on: November 13, 2010, 11:35:04 am »
I get this error too
"vpc_Message=Merchant+%5BREMOVED%5D+does+not+have+the+required+privilege+to+use+the+VirtualPaymentClient+API."
Does this mean my client does not have the correct account to even use virtuemart payment method? They see to have a online shop but I don't know how it is hosted and don't have access to it.
I'm having the same problem with the API thing
My hubby and I deal in second-hand Sea containers and also built our house using them. Shipping Containers for Sale  Shipping Containers for Sale

Slashman

  • Readers
  • *
  • Posts: 0
Re: Intergration of Mastercard Gateway in Australia
« Reply #86 on: October 26, 2011, 11:42:44 am »
Hi all I just wanted to bump this back up with updates. I am in NZ and successfully integrated 3-party MIGS payment with ANZ eGate.

Tovio's zip file at reply #64-#65 of this thread is all I needed.

I have copied some lines of code before and after the changes I made so it will be easy to find in the files.

I had to make small changes to the following file to reflect the exact wording required for transactions. "checkout.result_migs.php"

Changed this original code:

case "0" : $result = "Transaction Successful"; break;
        case "?" : $result = "Transaction status is unknown"; break;
        case "1" : $result = "Unknown Error"; break;
        case "2" : $result = "Bank Declined Transaction"; break;
        case "3" : $result = "No Reply from Bank"; break;
        case "4" : $result = "Expired Card"; break;
        case "5" : $result = "Insufficient funds"; break;
        case "6" : $result = "Error Communicating with Bank"; break;
        case "7" : $result = "Payment Server System Error"; break;
        case "8" : $result = "Transaction Type Not Supported"; break;
        case "9" : $result = "Bank declined transaction (Do not contact Bank)"; break;
        case "A" : $result = "Transaction Aborted"; break;
        case "C" : $result = "Transaction Cancelled"; break;
        case "D" : $result = "Deferred transaction has been received and is awaiting processing"; break;
        case "F" : $result = "3D Secure Authentication failed"; break;
        case "I" : $result = "Card Security Code verification failed"; break;
        case "L" : $result = "Shopping Transaction Locked (Please try the transaction again later)"; break;
        case "N" : $result = "Cardholder is not enrolled in Authentication scheme"; break;
        case "P" : $result = "Transaction has been received by the Payment Adaptor and is being processed"; break;
        case "R" : $result = "Transaction was not processed - Reached limit of retry attempts allowed"; break;
        case "S" : $result = "Duplicate SessionID (OrderInfo)"; break;
        case "T" : $result = "Address Verification Failed"; break;
        case "U" : $result = "Card Security Code Failed"; break;
        case "V" : $result = "Address Verification and Card Security Code Failed"; break;
        default  : $result = "Unable to be determined";

To this:

case "0" : $result = "Transaction Approved"; break;
        case "?" : $result = "Transaction status is unknown"; break;
        case "1" : $result = "Transaction could not be processed"; break;
        case "2" : $result = "Transaction declined - contact issuing
bank"; break;
        case "3" : $result = "No reply from Processing Host"; break;
        case "4" : $result = "Card Expired"; break;
        case "5" : $result = "Insufficient credit"; break;
        case "6" : $result = "Error Communicating with Bank"; break;
        case "7" : $result = "Payment Server System Error"; break;
        case "8" : $result = "Transaction Type Not Supported"; break;
        case "9" : $result = "Bank Declined Transaction"; break;
        case "A" : $result = "Transaction Aborted"; break;
        case "C" : $result = "Transaction Cancelled"; break;
        case "D" : $result = "Deferred transaction has been received and is awaiting processing"; break;
        case "F" : $result = "3D Secure Authentication failed"; break;
        case "I" : $result = "Card Security Code verification failed"; break;
        case "L" : $result = "Shopping Transaction Locked (Please try the transaction again later)"; break;
        case "N" : $result = "Cardholder is not enrolled in Authentication scheme"; break;
        case "P" : $result = "Transaction has been received by the Payment Adaptor and is being processed"; break;
        case "R" : $result = "Transaction was not processed - Reached limit of retry attempts allowed"; break;
        case "S" : $result = "Duplicate SessionID (OrderInfo)"; break;
        case "T" : $result = "Address Verification Failed"; break;
        case "U" : $result = "Card Security Code Failed"; break;
        case "V" : $result = "Address Verification and Card Security Code Failed"; break;
        default  : $result = "Unable to be determined";

and to only display the required information after transaction is processed and display in NZD,

<!-- end branding table -->
        <center><h1><?php echo $errorTxt; ?>Response</h1></center>
        <table width="85%" align="center" cellpadding="5" border="0">
            <tr class="shade">
                <td align="right"><strong><i>Transaction Reference/Order Number: </i></strong></td>
                <td><?php echo $merchTxnRef ?></td>
            </tr>
            <tr>
                <td align="right"><strong><i>Purchase Amount (AUD, Australian dollars): </i></strong></td>
                <td><?php echo $amount_fmt ?></td>
            </tr>
            <tr>
                <td colspan="2" align="center">
                    <HR />
                </td>
            </tr>
            <tr class="shade">
                <td align="right"><strong><i>Response: </i></strong></td>
                <td><?php echo getResponseDescription($txnResponseCode) ?></td>
            </tr>
            <tr>
                <td align="right"><strong><i>Message: </i></strong></td>
                <td><?php echo $message ?></td>
            </tr>
<?php
    // only display the following fields if no error condition
    if ($txnResponseCode != "7" && $txnResponseCode != "No Value Returned") {
?>
            <tr class="shade">
                <td align="right"><strong><i>Receipt Number: </i></strong></td>
                <td><?php echo $receiptNo ?></td>
            </tr>
            <tr>
                <td align="right"><strong><i>Transaction Number: </i></strong></td>
                <td><?php echo $transactionNo ?></td>
            </tr>
            <tr class="shade">
                <td align="right"><strong><i>Bank Authorization ID: </i></strong></td>
                <td><?php echo $authorizeID ?></td>
            </tr>
            <tr>
                <td align="right"><strong><i>Batch Number: </i></strong></td>
                <td><?php echo $batchNo ?></td>
            </tr>
            <tr class="shade">
                <td align="right"><strong><i>Card Type: </i></strong></td>
                <td><?php echo $cardType ?></td>
            </tr>

to this:

<!-- end branding table -->
        <center><h1><?php echo $errorTxt; ?>Payment Transaction Overview</h1></center>
        <table width="85%" align="center" cellpadding="5" border="0">
            <tr class="shade">
                <td align="right"><strong><i>Transaction Reference: </i></strong></td>
                <td><?php echo $merchTxnRef ?></td>
            </tr>
            <tr>
                <td align="right"><strong><i>Purchase Amount (NZD): </i></strong></td>
                <td><?php echo $amount_fmt ?></td>
            </tr>
            <tr>
                <td colspan="2" align="center">
                    <HR />
                </td>
            </tr>
            <tr class="shade">
                <td align="right"><strong><i>Transaction Status: </i></strong></td>
                <td><?php echo getResponseDescription($txnResponseCode) ?></td>
            </tr>
         
<?php
    // only display the following fields if no error condition
    if ($txnResponseCode != "7" && $txnResponseCode != "No Value Returned") {
?>
            <tr class="shade">
                <td align="right"><strong><i>Receipt Number: </i></strong></td>
                <td><?php echo $receiptNo ?></td>
            </tr>
            <tr class="shade">
                <td align="right"><strong><i>Card Type: </i></strong></td>
                <td><?php echo $cardType ?></td>
            </tr>


Those were to display NZD not AUD and also it removed alot of the information not required by ANZ eGate Merchant Services. All you need is one unique identifier from your end as the merchant, and one unique identifier from eGate end to be displayed.

The other file to edit is: "get_final_confirmation.tpl.php"

The only changes here are to add the required logos to the checkout page.

<?php
if(  PSHOP_AGREE_TO_TOS_ONORDER == '1' ) {
   echo vmCommonHTML::scriptTag('', "function submit_order( form ) {
    if (!form.agreed.checked) {
        alert( \"". $VM_LANG->_('PHPSHOP_AGREE_TO_TOS',false) ."\" );
        return false;
    }
    else {
        return true;
    }
}" );
} else {
   echo vmCommonHTML::scriptTag('', "function submit_order( form ) { return true;  }" );
}
?>
<center><img src="http://www.yourdomain.co.nz/images/visav.gif"><img src="http://www.yourdomain.co.nz/images/master.gif"></center>
<center><img src="http://www.yourdomain.co.nz/images/egate.jpg"></center>
</div></div>

The eGate one is optional but I wanted to add it.

Hope it is as straightforward for you as it was for me and that my post helps anyone in NZ trying to do this.

I didnt even bother with their attached .do. dr zip files etc that eGate supplies you to get you started, I just went straight for Tovios zip.

Thanks,

Aaron.

P.S. The bottom Visa image you must display somewhere on your website but the Verified by Visa and MasterCard SecureCode must go on the last step checkout right before you get passed to ANZ eGate. In this case I added them right under the confirm order button.

egyguy

  • Beginner
  • *
  • Posts: 4
Re: Intergration of Mastercard Gateway in Australia
« Reply #87 on: January 19, 2012, 16:28:34 pm »
Hi,

The plugin in the previous post does not work with Joomla 1.5.  Here is a new version which has been tested on VirtueMart 1.1.2 and Joomla 1.5.6. 

Regards,
Toivo

Update 16/3/2010:  The attachment migs_bank_hosted_J15_VM11.zip from 31/8/2008 has now been restored, after it had been deleted inadvertently.
i want to thank you for your great help, you did save my day, i used this plug-in you have post and it working like a charm, i only have 2 questions:
1- does it work on both (test & production) mods
2- the process is going like this (My Shop checkout) > (MIGS Payment gateway) > (My Shop Order confirmation Page) is this is right or wrong ?
3- i am getting a string of transaction details in the location bar of the internet browser - how can i remove it for security reasons.

Thanks again for your king help

adamwydeman

  • Beginner
  • *
  • Posts: 5
    • My website
Re: Intergration of Mastercard Gateway in Australia
« Reply #88 on: January 20, 2012, 10:57:43 am »
FYI:

I'm attempting to use this with the ANZ eGate MIGS, and am currently getting an usual error... "Secure Hash Not Calculated".   :)

The ANZ eGate "Virtual Payment Client URL" is: https://migs.mastercard.com.au/vpcpay
(without the "https://" being entered in the config.)

Relevant debug:
  • Debug: Using the cURL library for communicating with migs.mastercard.com.au/vpcpay
  • Debug: Beginning to analyse the response from migs.mastercard.com.au/vpcpay
  • Debug: Secure Hash Not Calculated
  • Error: 1
  • Error: Failure in Processing the Payment (ps_migs)


Jabin.

ANZ eGate uses a different system. You can download the custom file I have built here: http://adamwydeman.com/joomlacomponents/ANZ_j15_vm11.rar

Is built for Joomla 1.5x and VM 1.1 but has been installed and working on several VM 1.8 and 1.9 installations

Contact me if you need any help - www.adamwydeman.com
Available for any Joomla / VM work.

Toivo Talikka

  • Beginner
  • *
  • Posts: 17
    • Toivo Ltd
Re: Intergration of Mastercard Gateway in Australia
« Reply #89 on: January 20, 2012, 23:18:24 pm »
Quote
ANZ eGate uses a different system. You can download the custom file I have built
Adam,

Replacing "MIGS" globally with "ANZ" in the source code from http://forum.virtuemart.net/index.php?topic=19994.msg144050#msg144050 may allow you to call your cloned version a "custom" file, but it is customary in the Open Source community to credit the previous authors as well.

Toivo
Toivo
-------------------------
Toivo Ltd
Nottingham, UK

VirtueMart Forum

Re: Intergration of Mastercard Gateway in Australia
« Reply #89 on: January 20, 2012, 23:18:24 pm »