Setcom integrates using Auto-post callback.
Use this integration if you are using Auto-post for another purpose, such assome kind of digital delivery or membership registration etc. and you already using custom field for transfering some data.

To integrate with Setcom, you need Setcom plugin which is distributed with PAP by default.

1.

Configure plugin

First you must activate Setcom plugin in PAP->Startmenu->Plugins. After plugin is activated you must configure it.Click Configure button. Youmust set your Merchant username, password which you are using to loginto your merchant panel. Merchant identifier is located in your Setcommerchant panel top menu->My account->Overview tab. You must define some separator. Default value is ||.

2.

SetUp your Setcom settings

Login to your Setcom merchant panel. In top menu->Profile->Selling Preferences select Website Payment Preferences. Make sure that Auto-post is set to on and that Auto-post URL is set to http://URL_TO_PostAffiliatePro/plugins/Setcom/setcom.php.
Do not forget save your settings.

3.

Update Buttons

Now add the following code into EVERY Setcom (Buy now, Add to cart and/or Checkout) button form

<input type="hidden" name="MerchCustom" value="abc" id="pap_ab78y5t4a">

For example:

<form action="https://www.setcom.com/secure/index.cfm" method="post">
  <input type="hidden" name="buttonaction" value="buynow">
  <input type="hidden" name="merchantidentifier" value="12345678920">
  <input type="hidden" name="liddesc" value="auticko">
  <input type="hidden" name="lidsku" value="a123">
  <input type="hidden" name="lidprice" value="150.00">
  <input type="hidden" name="lidqty" value="1">
  <input type="hidden" name="CurrencyAlphaCode" value="ZAR">
  <input type="hidden" name="LIDExpiry" value="1">
  <input type="hidden" name="ShippingRequired" value="0">
  <input type="hidden" name="IsVoucher" value="0">
  <input type="hidden" name="Option1Name" value="custom">
  <input type="hidden" name="Option1Value" value="oldCustom">
  <input type="hidden" name="MerchCustom" value="abc" id="pap_ab78y5t4a">
  <input type="image" src="https://www.setcom.com/www/graphics/cartbuttons/bn6.gif">
</form>

After this form you must insert:
<script id="pap_x2s6df8d" src="notifysale.php" type="text/javascript">
</script>
<script type="text/javascript">
    PostAffTracker.setAppendValuesToField('||');
    PostAffTracker.writeCookieToCustomField('pap_ab78y5t4a');
</script>

4.

Integration with your script

Now the Auto-post callback is pointed to your script. This callback has to beforwarded also to PAP paypal.php script, which url is http://URL_TO_PostAffiliatePro/plugins/Setcom/setcom.php.In case, your Setcom processing script is in PHP, you can use followingcode to accomplish that. You can place it at the beginning of yourprocessing file.

/* PAP integration */
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, "http://URL_TO_PostAffiliatePro/plugins/Setcom/setcom.php");
 curl_setopt($ch, CURLOPT_POST, 1);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST);
 curl_exec($ch);
/* end of PAP integration */

This will ensure that whole Auto-post callback will be forwarded without affecting your original script

5.

Integration with your script - part 2

The custom parameter is in format 3rdPartySystemValue||PapValue. Inorder for 3rd party system to work correctly you need to parse3rdPartySystemValue from the custom parameter. To do this add followingcode right after Setcom Auto-post verification.

Assume that in variable $custom_value you have custom value loaded from XML sended by Setcom.

$separator = '||';

if ($custom_value!= '') {
      $explodedCustomValue = explode($separator, $custom_value, 2);
          if (count($explodedCustomValue) == 2) {
            $custom_value = $explodedCustomValue[0];   
      }
}

Afther this you have your original value in $custom_value.

You can find more detailed info about Setcom integration in Setcom Implementation Guide