Jump to content
wellconnit

Result URL for Payments

Recommended Posts

Hi guys,

 

I've almost finished developing a custom payment gateway, however when I submit and it posts I've set the return url(not the callback) to /viewinvoice?id=#### and there is a problem somewhere

The callback is separate and is set to modules/gateways/callback/nabtransact.php

But it returns me a page with no CSS and a login box which suggests it's logged out or lost the login cookie in the process.

The address bar shows the payment gateway target but the page does not correspond.

Any ideas are appreciated.

 

Thanks

Share this post


Link to post
Share on other sites

After looking at logs it seems that the return URL is being called from the IP address of the payment processor which is causing a lost session for the user, does anyone have any best practice ideas for how this should be resolved ??

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Similar Content

    • By WGS
      We have released a new update of our WGS PayPal Tokenization WHMCS Payment gateway module. This new 1.0.6 Update brings in the compatibility with the latest WHMCS 7.8 - 7.8.1. Our module has become the most updated Paypal tokenization module in the WHMCS Marketplace. Users can download the latest files from the WGS Client Area. 
       
       
    • By kan
      Hello
      I have integrated stripe into WHMCS and it work perfectly with whmcs client area. We have our own client area using WHMCS API, but when we click on "PayNow" in invoice it will re directs to WHMCS client area for payment instead of Stripe payment gateway. Currently I'm using paypal because it will re direct to their gateway for payment.
      Is there any solution in whmcs or in stripe?
       
    • By sokalsondha
      hello community...
      i hope all are doing very well. today i came back again for a small help with an code.
      basically by default now whmcs store the last 4 digit of the Credit card number of stripe gateway.
      which i found less confident for our clients.
      so i found an idea to modify the creditcard.tpl and make the RADIO BUTTON default to ENTER NEW CARD DETAILS
      and i will hide the 2nd radio button. this way client will never see that their credit card 4 digit is stored.. basically even storing the 4 digit we can't do anything.. but you know the clients....
      can someone guide me from this code what i should modify to make default to the 1st radio button even the card number is stored in the server
       
      {if $remotecode}
          <div id="frmRemoteCardProcess" class="text-center" align="center">
              {$remotecode}
              <iframe name="ccframe" class="auth3d-area" width="90%" height="600" scrolling="auto" src="about:blank"></iframe>
          </div>
          <script language="javascript">
              jQuery("#frmRemoteCardProcess").find("form:first").attr('target', 'ccframe');
              setTimeout("autoSubmitFormByContainer('frmRemoteCardProcess')", 1000);
          </script>
      {else}
          <form id="frmPayment" method="post" action="creditcard.php" class="form-horizontal" role="form">
              <input type="hidden" name="action" value="submit" />
              <input type="hidden" name="invoiceid" value="{$invoiceid}" />
              <div class="row">
                  <div class="col-md-7">
                      {if $errormessage}
                          {include file="$template/includes/alert.tpl" type="error" errorshtml=$errormessage}
                      {/if}
                      
                      
                          <div class="col-sm-12">
                          <img width="100%" src="/templates/{$template}/img/stripelogo.png">
                      </div>
                      <div class="alert alert-danger text-center gateway-errors hidden"></div>
                      <div class="form-group">
                          <div class="col-sm-8 col-sm-offset-4">
                              <div class="radio">
                                  <label>
                                      <input type="radio" name="ccinfo" value="new" onclick="showNewCardInputFields()"{if $ccinfo eq "new" || !$cardOnFile} checked{/if} /> {$LANG.creditcardenternewcard}</label>
                                  </label>
                              </div>
                              <div class="radio">
                                  <label>
                                      <input type="radio" name="ccinfo" value="useexisting" onclick="hideNewCardInputFields()" {if $cardOnFile && $ccinfo neq "new"}checked{elseif !$cardOnFile}disabled{/if} /> {$LANG.creditcarduseexisting}{if $cardOnFile} ({$existingCardType}-{$existingCardLastFour}){/if}
                                  </label>
                              </div>
                          </div>
                      </div>
                      <div class="form-group{if $userDetailsValidationError} hidden{/if}" id="billingAddressSummary">
                          <label for="cctype" class="col-sm-4 control-label">{$LANG.billingAddress}</label>
                          <div class="col-sm-6">
                              {if $companyname}{$companyname}{else}{$firstname} {$lastname}{/if} <button type="button" id="btnEditBillingAddress" onclick="editBillingAddress()" class="btn btn-default btn-sm"{if $cardOnFile} disabled="disabled"{/if}><i class="fa fa-edit"></i> {$LANG.change}</button><br />
                              {$address1}{if $address2}, {$address2}{/if}<br />
                              {$city}, {$state}, {$postcode}<br />
                              {$countryname}
                          </div>
                      </div>
                      <div class="form-group cc-billing-address{if !$userDetailsValidationError} hidden{/if}">
                          <label for="inputFirstName" class="col-sm-4 control-label">{$LANG.clientareafirstname}</label>
                          <div class="col-sm-6">
                              <input type="text" name="firstname" id="inputFirstName" value="{$firstname}" class="form-control" />
                          </div>
                      </div>
                      <div class="form-group cc-billing-address{if !$userDetailsValidationError} hidden{/if}">
                          <label for="inputLastName" class="col-sm-4 control-label">{$LANG.clientarealastname}</label>
                          <div class="col-sm-6">
                              <input type="text" name="lastname" id="inputLastName" value="{$lastname}" class="form-control" />
                          </div>
                      </div>
                      <div class="form-group cc-billing-address{if !$userDetailsValidationError} hidden{/if}">
                          <label for="inputAddress1" class="col-sm-4 control-label">{$LANG.clientareaaddress1}</label>
                          <div class="col-sm-6">
                              <input type="text" name="address1" id="inputAddress1" value="{$address1}" class="form-control" />
                          </div>
                      </div>
                      <div class="form-group cc-billing-address{if !$userDetailsValidationError} hidden{/if}">
                          <label for="inputAddress2" class="col-sm-4 control-label">{$LANG.clientareaaddress2}</label>
                          <div class="col-sm-6">
                              <input type="text" name="address2" id="inputAddress2" value="{$address2}" class="form-control" />
                          </div>
                      </div>
                      <div class="form-group cc-billing-address{if !$userDetailsValidationError} hidden{/if}">
                          <label for="inputCity" class="col-sm-4 control-label">{$LANG.clientareacity}</label>
                          <div class="col-sm-6">
                              <input type="text" name="city" id="inputCity" value="{$city}" class="form-control" />
                          </div>
                      </div>
                      <div class="form-group cc-billing-address{if !$userDetailsValidationError} hidden{/if}">
                          <label for="inputState" class="col-sm-4 control-label">{$LANG.clientareastate}</label>
                          <div class="col-sm-6">
                              <input type="text" name="state" id="inputState" value="{$state}" class="form-control" />
                          </div>
                      </div>
                      <div class="form-group cc-billing-address{if !$userDetailsValidationError} hidden{/if}">
                          <label for="inputPostcode" class="col-sm-4 control-label">{$LANG.clientareapostcode}</label>
                          <div class="col-sm-6">
                              <input type="text" name="postcode" id="inputPostcode" value="{$postcode}" class="form-control" />
                          </div>
                      </div>
                      <div class="form-group cc-billing-address{if !$userDetailsValidationError} hidden{/if}">
                          <label for="inputCountry" class="col-sm-4 control-label">{$LANG.clientareacountry}</label>
                          <div class="col-sm-6">
                              {$countriesdropdown}
                          </div>
                      </div>
                      <div class="form-group cc-billing-address{if !$userDetailsValidationError} hidden{/if}">
                          <label for="inputPhone" class="col-sm-4 control-label">{$LANG.clientareaphonenumber}</label>
                          <div class="col-sm-6">
                              <input type="text" name="phonenumber" id="inputPhone" value="{$phonenumber}" class="form-control" />
                          </div>
                      </div>
                      <div class="form-group cc-details{if !$addingNewCard} hidden{/if}">
                          <label for="cctype" class="col-sm-4 control-label">{$LANG.creditcardcardtype}</label>
                          <div class="col-sm-5">
                              <select name="cctype" id="cctype" class="form-control newccinfo">
                                  {foreach from=$acceptedcctypes item=type}
                                      <option{if $cctype eq $type} selected{/if}>
                                          {$type}
                                      </option>
                                  {/foreach}
                              </select>
                          </div>
                      </div>
                      <div class="form-group cc-details{if !$addingNewCard} hidden{/if}">
                          <label for="inputCardNumber" class="col-sm-4 control-label">{$LANG.creditcardcardnumber}</label>
                          <div class="col-sm-7">
                              <input type="tel" name="ccnumber" id="inputCardNumber" size="30" value="{if $ccnumber}{$ccnumber}{/if}" autocomplete="off" class="form-control newccinfo" />
                          </div>
                      </div>
                      {if $showccissuestart}
                          <div class="form-group cc-details{if !$addingNewCard} hidden{/if}">
                              <label for="inputCardStart" class="col-sm-4 control-label">{$LANG.creditcardcardstart}</label>
                              <div class="col-sm-8">
                                  <select name="ccstartmonth" id="inputCardStart" class="form-control select-inline">
                                      {foreach from=$months item=month}
                                          <option{if $ccstartmonth eq $month} selected{/if}>{$month}</option>
                                      {/foreach}
                                  </select>
                                  <select name="ccstartyear" id="inputCardStartYear" class="form-control select-inline">
                                      {foreach from=$startyears item=year}
                                          <option{if $ccstartyear eq $year} selected{/if}>{$year}</option>
                                      {/foreach}
                                  </select>
                              </div>
                          </div>
                      {/if}
                      <div class="form-group cc-details{if !$addingNewCard} hidden{/if}">
                          <label for="inputCardExpiry" class="col-sm-4 control-label">{$LANG.creditcardcardexpires}</label>
                          <div class="col-sm-8">
                              <select name="ccexpirymonth" id="inputCardExpiry" class="form-control select-inline">
                                  {foreach from=$months item=month}
                                      <option{if $ccexpirymonth eq $month} selected{/if}>{$month}</option>
                                  {/foreach}
                              </select>
                              <select name="ccexpiryyear" id="inputCardExpiryYear" class="form-control select-inline">
                                  {foreach from=$expiryyears item=year}
                                      <option{if $ccexpiryyear eq $year} selected{/if}>{$year}</option>
                                  {/foreach}
                              </select>
                          </div>
                      </div>
                      {if $showccissuestart}
                          <div class="form-group cc-details{if !$addingNewCard} hidden{/if}">
                              <label for="inputIssueNum" class="col-sm-4 control-label">{$LANG.creditcardcardissuenum}</label>
                              <div class="col-xs-2">
                                  <input type="number" name="ccissuenum" id="inputIssueNum" value="{$ccissuenum}" class="form-control input-" />
                              </div>
                          </div>
                      {/if}
                      <div class="form-group">
                          <label for="cctype" class="col-sm-4 control-label">{$LANG.creditcardcvvnumber}</label>
                          <div class="col-sm-7">
                              <input type="number" name="cccvv" id="inputCardCvv" value="{$cccvv}" autocomplete="off" class="form-control input-inline input-inline-100" />
                              <button type="button" class="btn btn-link" data-toggle="popover" data-content="<img src='{$BASE_PATH_IMG}/ccv.gif' width='210' />">
                                  {$LANG.creditcardcvvwhere}
                              </button>
                          </div>
                      </div>
                      {if $shownostore}
                          <div class="form-group cc-details{if !$addingNewCard} hidden{/if}">
                              <div class="col-sm-offset-4 col-sm-8">
                                  <div class="checkbox">
                                      <label>
                                          <input type="checkbox" name="nostore" id="inputNoStore"> {$LANG.creditcardnostore}
                                      </label>
                                  </div>
                              </div>
                          </div>
                      {/if}
                      <div class="form-group">
                          <div class="text-center">
                              <button type="submit" class="btn btn-primary btn-lg" id="btnSubmit" value="{$LANG.submitpayment}">
                                  <span class="pay-text">{$LANG.submitpayment}</span>
                                  <span class="click-text hidden">{$LANG.pleasewait}</span>
                              </button>
                          </div>
                      </div>
                  </div>
                  <div class="col-md-5">
                      <div id="invoiceIdSummary" class="invoice-summary">
                          <h2 class="text-center">{$LANG.invoicenumber}{$invoiceid}</h2>
                          <div class="invoice-summary-table">
                          <table class="table table-condensed">
                              <tr>
                                  <td class="text-center"><strong>{$LANG.invoicesdescription}</strong></td>
                                  <td width="150" class="text-center"><strong>{$LANG.invoicesamount}</strong></td>
                              </tr>
                              {foreach $invoiceitems as $item}
                                  <tr>
                                      <td>{$item.description}</td>
                                      <td class="text-center">{$item.amount}</td>
                                  </tr>
                              {/foreach}
                              <tr>
                                  <td class="total-row text-right">{$LANG.invoicessubtotal}</td>
                                  <td class="total-row text-center">{$invoice.subtotal}</td>
                              </tr>
                              {if $invoice.taxrate}
                                  <tr>
                                      <td class="total-row text-right">{$invoice.taxrate}% {$invoice.taxname}</td>
                                      <td class="total-row text-center">{$invoice.tax}</td>
                                  </tr>
                              {/if}
                              {if $invoice.taxrate2}
                                  <tr>
                                      <td class="total-row text-right">{$invoice.taxrate2}% {$invoice.taxname2}</td>
                                      <td class="total-row text-center">{$invoice.tax2}</td>
                                  </tr>
                              {/if}
                              <tr>
                                  <td class="total-row text-right">{$LANG.invoicescredit}</td>
                                  <td class="total-row text-center">{$invoice.credit}</td>
                              </tr>
                              <tr>
                                  <td class="total-row text-right">{$LANG.invoicestotaldue}</td>
                                  <td class="total-row text-center">{$invoice.total}</td>
                              </tr>
                          </table>
                          </div>
                          <p class="text-center">
                              {$LANG.paymentstodate}: <strong>{$invoice.amountpaid}</strong><br />
                              {$LANG.balancedue}: <strong>{$balance}</strong>
                          </p>
                      </div>
                  </div>
              </div>
              <div class="alert alert-warning" role="alert">
                  <i class="fa fa-lock"></i> &nbsp; {$LANG.creditcardsecuritynotice}
              </div>
          </form>
      {/if}
       
       
       
      thanks very much to everyone for reading my post...
       
      Mahim
       
    • By ModulesGarden
      1. What would you say to SMS Center For WHMCS module perfectly supporting your favorite SMS gateway? More – how would you feel about having such integration developed exclusively for you, in less than two weeks and free of any charge?
      There is only one way to find out, and it leads through our website! 
      Stay ahead of the competition with your client-tailored software!
       
      2. Speaking of one-off bargains you cannot miss this season, you still have the chance to lay your hands on a fully customized gear from ModulesGarden at a 10% discount!
      Need some single modifications to your current WHMCS module? Or perhaps a full-fledged domain registrar system? What about a custom order page? 
      Whatever your company requires to make further headway, we can now provide in much more attractive price and significantly reduced time! 
      Have customers on your side with gear designed for success!
       
      3. Any profit-oriented data center company owner knows you need a robust business automation software tool to handle the routine tasks and scale swiftly with your changing needs. 
      Blazing SEO has already found theirs. As Neil Emeigh reveals, the best thing about EasyDCIM is its all-out integration with the WHMCS system which empowers them to not only keep all owned servers neatly organized, but provision them to clients in a perfectly automated way as well.
       
      To gain more in-depth insight from the Blazing SEO President himself and trace the company’s inspiring rise to success, visit the latest EasyDCIM Blog!
       
      4. Have you seen what module updates powered up our Product Marketplace most recently?

      CRM For WHMCS - v2.5.2 Plesk Extended For WHMCS - v3.1.0 QuickBooks Desktop For WHMCS - v1.1.4

       
      Need Custom Software Development For Your Business?

      Get Your Free Quote Now! Specially for you we will adapt an application and its design to your own needs, create a new module or even a completely new system built from scratch!
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

By using this site, you agree to our Terms of Use & Guidelines and understand your posts will initially be pre-moderated