Name

MV_PAYMENT_MODE — payment gateway mode name

SYNOPSIS

{ mode }

DESCRIPTION

Payment gateway mode name for one of the available payment modules.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_PAYMENT_MODE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UI_Tag/update_order_status.tag
Line 110 (context shows lines 100-114)

elsif($oid =~ /\*$/) {
  Vend::Tags->error( {
          name => 'settle_transaction',
          set => "Order ID $oid already settled!",
        });
  return undef;
}
else {
#::logDebug("auth-code: $trec->{auth_code} oid=$oid");
  my $settled  = Vend::Tags->charge( {
            route => $::Variable->{MV_PAYMENT_MODE},
            order_id => $oid,
            amount => $amount,
            auth_code => $trec->{auth_code},
            transaction => 'settle_prior',

Source: code/UI_Tag/update_order_status.tag
Line 162 (context shows lines 152-166)

elsif($oid =~ /-$/) {
  Vend::Tags->error( {
          name => 'void_transaction',
          set => "Order ID $oid already voided!",
        });
  return undef;
}
else {
#::logDebug("auth-code: $trec->{auth_code} oid=$oid");
  my $voided  = Vend::Tags->charge( {
            route => $::Variable->{MV_PAYMENT_MODE},
            order_id => $oid,
            amount => $amount,
            auth_code => $trec->{auth_code},
            transaction => 'void',

Source: lib/Vend/Payment/HSBC.pm
Line 128 (context shows lines 118-132)

  N = test, 'no' response
  R = test, random 'yes|no' response;
  FY = test, FraudShield 'yes' response
  FN = test, FraudShield 'no' response

Alter etc/log_transaction to wrap the following code around the "[charge route...]" call 
found in ln 172 (or nearby):
[if scratchd mstatus eq success]
[tmp name="charge_succeed"][scratch order_id][/tmp]
[else]
[tmp name="charge_succeed"][charge route="[var MV_PAYMENT_MODE]" amount="[scratch \
 tmp_remaining]" order_id="[value mv_transaction_id]"][/tmp]
[/else]
[/if]
and change [var MV_PAYMENT_MODE] above to [value mv_payment_route] if you \
 want to use Paypal or similar in conjunction with this


Source: lib/Vend/Payment/HSBC.pm
Line 134 (context shows lines 124-138)

found in ln 172 (or nearby):
[if scratchd mstatus eq success]
[tmp name="charge_succeed"][scratch order_id][/tmp]
[else]
[tmp name="charge_succeed"][charge route="[var MV_PAYMENT_MODE]" amount="[scratch \
 \
 \
 tmp_remaining]" order_id="[value mv_transaction_id]"][/tmp]
[/else]
[/if]
and change [var MV_PAYMENT_MODE] above to [value mv_payment_route] if you \
 \
 \
 want to use Paypal or similar in conjunction with this

Also add this line just after '&final = yes' near the end of the credit_card \
 \
 section of etc/profiles.order:
&set=mv_payment_route hsbc if you change [var MV_PAYMENT_MODE] as above


If run from some sort of terminal this will also make refunds or send funds to a specified
credit card.

Source: lib/Vend/Payment/PayflowPro.pm
Line 233 (context shows lines 223-237 in avs_check():155)

]
    mv_order_profile=paypal
    mv_todo=submit
[/button]

In F<etc/log_transction>, immediately after the 
[elsif variable MV_PAYMENT_MODE]
line, look for the [charge] tag, and alter it to include the C<action>
parameter, like so:

[charge route="[var MV_PAYMENT_MODE]" action="[if value mv_order_profile \
 eq paypal]do[/if]" amount="...

Add into the end of the C<[import table=transactions type=LINE continue=NOTES \
 no-commit=1]> section of F<etc/log_transaction>:

pptransactionid: [calc]$Session->{payment_result}{TRANSACTIONID}[/calc]

Source: lib/Vend/Payment/PayflowPro.pm
Line 263 (context shows lines 253-267 in avs_check():155)

__COMMON_ORDER_PROFILE__
email=required
email=email
&fatal = yes
&setcheck = end_profile 1

&set = mv_payment Incomplete

[if variable MV_PAYMENT_MODE]
[value name=mv_payment_realtime set=""]
&set=mv_payment PayPal ([var MV_PAYMENT_MODE])
&set=mv_payment_realtime 1
[else]
&set=mv_payment PayPal
[/else]

Source: lib/Vend/Payment/GoogleCheckout.pm
Line 252 (context shows lines 242-256)

In etc/log_transction, immediately after the
[elsif variable MV_PAYMENT_MODE]
[calc]
insert this line:
undef $Session->{payment_result}{MStatus};

and leave
[elsif variable MV_PAYMENT_MODE]
as set (contrary to earlier revisions of this document), but within the \
 same section change the following 
two instances of
[var MV_PAYMENT_MODE] to [value mv_payment_route]

Also add these five lines to the end of the section that starts "[import table=transactions ":
lead_source: [data session source]
referring_url: [data session referer]

Source: lib/Vend/Payment/SagePay.pm
Line 129 (context shows lines 119-133)

8. When running a card through 3DSecure, the route is run twice: firstly \
 to Sagepay who check whether or
not the card is part of 3DSecure - if it is they send the customer to the bank's authentication page
and upon returning from that the route must be run a second time to send \
 the authentication results to
Sagepay. The second run is initiated from the 'ord/tdsreturn' page, not \
 from etc/log_transaction as it normally
would be. To handle this change to the normal system flow you need to alter \
 log_transaction to make the 
call to the payment module conditional,ie, wrap the following code around \
 the "[charge route...]" call 
found in ln 172 (or nearby):
[if scratchd mstatus eq success]
[tmp name="charge_succeed"][scratch order_id][/tmp]
[else]
[tmp name="charge_succeed"][charge route="[var MV_PAYMENT_MODE]" amount="[scratch \
 tmp_remaining]" order_id="[value mv_transaction_id]"][/tmp]
[/else]
[/if]
If the first call to Sagepay returns a request to send the customer to \
 the 3DSecure server, then IC will 
write a payment route error to the error log prior to sending the customer \
 there. This error stops the

Source: lib/Vend/Payment/Worldpay.pm
Line 161 (context shows lines 151-165)

[elsif variable MV_PAYMENT_MODE]
to
[elsif value mv_order_profile =~ /worldpay/] add an OR if required
eg [elsif value mv_order_profile =~ /googlecheckout|worldpay/]

Then in the [calc] block immediately below insert this line: 

undef $Session->{payment_result}{MStatus};

Within the same section change the following two instances of
[var MV_PAYMENT_MODE] to [value mv_payment_route]

10. Create a callback page in /pages called wpcallback.html or any name you prefer, set this page in
the Worldpay admin panel, the module also supports dynamic callback pages \
 where different catalogs can
have different callback pages, if using this the callpage URL must be set \
 in the route in catalog.cfg as

Source: lib/Vend/Payment/PRI.pm
Line 88 (context shows lines 78-92)

or

Route PRI id YourPRIID

or with only PRI as a payment provider

Variable MV_PAYMENT_ID      YourPRIID

A fully valid catalog.cfg entry to work with the standard demo would be:

Variable MV_PAYMENT_MODE    "__MV_PAYMENT_MODE__"
Route  PRI      id          "__PRI_ID__"
Route  PRI      regkey      "__PRI_REGKEY__"
Route  PRI      test_id     "__PRI_TEST_ID__"
Route  PRI      test_regkey "__PRI_TEST_REGKEY__"

Source: lib/Vend/Payment/PaypalExpress.pm
Line 125 (context shows lines 115-129)


In etc/log_transction, immediately after the 
[elsif variable MV_PAYMENT_MODE]
[calc]
insert this line: 
undef $Session->{payment_result}{MStatus};

and leave
[elsif variable MV_PAYMENT_MODE] 
as set (contrary to previous revisions of this document) but within the \
 same section change the following 
two instances of [var MV_PAYMENT_MODE] to [value mv_payment_route]. In \
 particular, the setting inside the
[charge route="..] line will specify which payment processor is used for \
 each particular case, and you
need to further modify this line so that it ends up like this:
[tmp name="charge_succeed"][charge route="[value mv_payment_route]" pprequest="dorequest" \
 amount="[scratch tmp_remaining]" order_id="[value mv_transaction_id]"][/tmp]
If the value of 'mv_payment_route' is set to 'paypalexpress', then this \
 is the one that is run. It is only

Source: lib/Vend/Payment/Cardsave.pm
Line 84 (context shows lines 74-88)

The displayed message will start with the main3DSerror and append others as appropriate. 
Route cardsave mail_txn_to (email address, defaults to ORDERS_TO)
Route cardsave mail_txn_approved (1 to email approved orders)
Route cardsave mail_txn_declined (1 to email possibly fraudulent attempts)

Alter etc/log_transaction to wrap the following code around the "[charge route...]" call 
found in ln 172 (or nearby):
[if scratchd mstatus eq success]
[tmp name="charge_succeed"][scratch order_id][/tmp]
[else]
[tmp name="charge_succeed"][charge route="[var MV_PAYMENT_MODE]" amount="[scratch \
 tmp_remaining]" order_id="[value mv_transaction_id]"][/tmp]
[/else]
[/if]
and change [var MV_PAYMENT_MODE] above to [value mv_payment_route] if you \
 want to use Paypal or similar in conjunction with this


AUTHORS

Interchange Development Group

SEE ALSO

DocBook! Interchange!