Comparison among some popular PHP CMSs #16

From: http://sitestree.com/?p=5007
Categories:16
Tags:
Post Data:2009-09-04 15:17:53

    Shop Online: <a href='https://www.ShopForSoul.com/' target='new' rel="noopener">https://www.ShopForSoul.com/</a>
    (Big Data, Cloud, Security, Machine Learning): Courses: <a href='http://Training.SitesTree.com' target='new' rel="noopener"> http://Training.SitesTree.com</a> 
    In Bengali: <a href='http://Bangla.SaLearningSchool.com' target='new' rel="noopener">http://Bangla.SaLearningSchool.com</a>
    <a href='http://SitesTree.com' target='new' rel="noopener">http://SitesTree.com</a>
    8112223 Canada Inc./JustEtc: <a href='http://JustEtc.net' target='new' rel="noopener">http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning) </a>
    Shop Online: <a href='https://www.ShopForSoul.com'> https://www.ShopForSoul.com/</a>
    Medium: <a href='https://medium.com/@SayedAhmedCanada' target='new' rel="noopener"> https://medium.com/@SayedAhmedCanada </a>

A Sample PHP Class #16

A sample PHP class is provided below. How the class is used?

When the submit button from the interface (web-page) will be clicked the code in the form-action web-page will call the the create method (static) to create a Ticket data/row in the database table Ticket. The method call will look like Ticket::create(array with field=>value pair, as formed with form submitted data) and you will get an Ticket object created with the inserted row/data.

To update a Ticket, you can create the Ticket object (constructor will do it for you) as you will know the Ticket id at this time. Then use the appropriate set method to update the value in the database.

To search call the static search method with a list/array of field=>value pair.

$dbh (read-only) and $dbhWrite(read-write) are global variables that represent connections to the database.

//represents a customer submitted Ticketclass Ticket{  public $parentTicket;   private $dbh_;  //member variables, named after the column names of the databse table - Ticket  private $id_;   private $type;  private $subject_;  private $timestampCreated_; private $timestampUpdated_; private $status_;   private $parentTicketId_;   private $categoryId_;   private $categoryName_; private $internalNotifylist_;   private $externalNotifyList_;   private $customerId_;   private $customerName_; private $creatorId_;    private $creatorName_;  private $ownerId_;  private $assignedTo_;   //constructor, creates a Ticket object with the table row with id = $id public function  __construct($id)   {       global $dbh;        $this->dbh_ = $dbh;      $this->refreshValues($id);   }   public function refreshValues($id)  {       $query="Select Ticket.*, TicketCategory.name  from Ticket left join TicketCategory on Ticket.categoryId = TicketCategory.id             where Ticket.id=$id";       if ($result=$this->dbh_->query($query))           if($result->num_rows==1)         {               $row=$result->fetch_object();                $this->id_ = $id;                $this->type_=$row->type;              $this->subject_ = $row->subject;              $this->timestampCreated_ = $row->timestampCreated;                $this->timestampUpdated_ = $row->timestampUpdated;                $this->status_ = $row->status;                $this->parentTicketId_ = $row->parentTicketId;                if($this->parentTicketId_>0)                  $this->parentTicket=$row->parentTicketId; //new Ticket($this->parentTicketId_);                else $this->parentTicketId=0;                $this->categoryId_ = $row->categoryId;                $this->categoryName_ = $row->name;                $this->internalNotifyList_ = $row->internalNotifyList;                $this->externalNotifyList_ =$row->externalNotifyList;             $this->customerId_ = $row->customerId;                $this->creatorId_ = $row->creatorId;              $this->ownerId_ =$row->ownerId;               $this->assignedTo_ =$row->assignedTo;             return true;            }           else                return false;   }   //methods to retrieve/set data/member variables //retrieve id   public function getId() {       if($this->id_>0) return $this->id_;        else return false;  }   //set id    public function setId($id)  {       if (is_numeric($id))        {           if ($this->setField('id',$id)) return true;          else return false;      }       else return false;  }   public function getCustomerId() {       if($this->id_>0) return $this->customerId_;        else return false;  }   public function setCustomerId($customerId)  {       if (is_numeric($customerId))        {           if ($this->setField('customerId',$customerId))               return true;            else return false;      }       else return false;  }    //used by methods to set member variables  private function setField($field, $value)   {       $dbhWrite=getDbhWrite();        $query="update Ticket set $field='".$dbhWrite->escape_string($value)."' where id=$this->id_";     $result = $dbhWrite->query($query);      if ($result==true)      {           if($dbhWrite->affected_rows==1)          {               $this->setTimestampUpdated();                $this->refreshValues($this->id_);             return true;            }           else return false;      }       else return false;  }    //used to create an entry into the Ticket table (database).    //After insertion this row is used to form a Table object and returned to the caller    static public function create($fields)  {       $dbhWrite=getDbhWrite();        $timestamp = time();        $parentTicketId='null';     $customerId='null';     $ownerId='null';        $assignedTo='null';     $categoryId='null';     $type='null';       foreach($fields as $field => $value)     {           switch($field)          {               case "type":                    if(self::isPermittedType($value)) $type=$value;                 else return false;                  break;              case "status":                  if(self::isPermittedStatus($value)) $status=$value;                 else return false;                  break;              case "subject":                 if (is_string($value))                      $subject=$dbhWrite->escape_string($value);                   else                        return false;                   break;              case "parentTicketId":                  if(is_numeric($value))                      $parentTicketId=$value;                 break;              case "categoryId":                  if(is_numeric($value))                      $categoryId=$value;                 break;              case "customerId":                  if(is_numeric($value)) $customerId=$value;                  else return false;                  break;              case "creatorId":                   if(is_numeric($value))                      $creatorId=$value;                  else return false;                  break;              case "ownerId":                 if(is_numeric($value))                      $ownerId=$value;                    break;              case "assignedTo":                  if(is_numeric($value))                      $assignedTo=$value;                 break;          }       }       $insertStr = "insert into Ticket (type,subject, timestampCreated, timestampUpdated, status, parentTicketId, categoryId, customerId, creatorId, ownerId, assignedTo) values ($type, '$subject', $timestamp, $timestamp, $status, $parentTicketId, $categoryId, $customerId, $creatorId,$ownerId,$assignedTo)";       $result = $dbhWrite->query($insertStr);      if ($result == true)        {           if ($dbhWrite->affected_rows==1)         {               $ticket=new Ticket($dbhWrite->insert_id);                return $ticket;         }           else return false;      }       else return false;  }   //searches the entire ticket table based on supplied field=>value pairs  static public function searchFields($fields,$orderBy='id')  {       global $dbh;        $query="select * from Ticket where ";       foreach($fields as $field => $value)     {           if($value[0]=="!") //checking for not equal condition           {               $value=substr($value,1);                $query.="`".$dbh->escape_string($field)."`!='".$dbh->escape_string($value)."' and ";          }           else                $query.="`".$dbh->escape_string($field)."`='".$dbh->escape_string($value)."' and ";       }       $query=substr($query,0,-5);     $query.=" order by ".$dbh->escape_string($orderBy);      $result = $dbh->query($query);       if ($result)        {           if ($dbh->affected_rows>0)            {               $tickets = array();             $tickets = Ticket::processResult($result);              return $tickets;            }           else return false;      }       else return false;  }    //used by searchFields method. Converts a set of retrieved data rows into array of objects.    static private function processResult($result)  {       if($result->num_rows >= 1)        {           $tickets=array();           while($row=$result->fetch_object())          {               $tickets[] = new Ticket($row->id);           }           return $tickets;        }       else return false;  }}

From: http://sitestree.com/?p=4808
Categories:16
Tags:
Post Data:2009-10-22 12:58:33

    Shop Online: <a href='https://www.ShopForSoul.com/' target='new' rel="noopener">https://www.ShopForSoul.com/</a>
    (Big Data, Cloud, Security, Machine Learning): Courses: <a href='http://Training.SitesTree.com' target='new' rel="noopener"> http://Training.SitesTree.com</a> 
    In Bengali: <a href='http://Bangla.SaLearningSchool.com' target='new' rel="noopener">http://Bangla.SaLearningSchool.com</a>
    <a href='http://SitesTree.com' target='new' rel="noopener">http://SitesTree.com</a>
    8112223 Canada Inc./JustEtc: <a href='http://JustEtc.net' target='new' rel="noopener">http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning) </a>
    Shop Online: <a href='https://www.ShopForSoul.com'> https://www.ShopForSoul.com/</a>
    Medium: <a href='https://medium.com/@SayedAhmedCanada' target='new' rel="noopener"> https://medium.com/@SayedAhmedCanada </a>

PHP Security: Coding that Maintains Security #16

Php Security

PHP can be included as a module to the web-server, or executed as a separate executable binary. In either case, it can access files, execute commands, open network connections in the server. Further, PHP can be used to write scripts with all the power of the shell users. Hence, anything running on that server may face security problems. Though, careful coding will reduce the risks to a great extent[php.net].

Common security risks in PHP[Abdul Basit, php.net]

Most common are :

  • 1-Invalidated Input Errors
  • 2-Access Control Flaws
  • 3-Session ID Protection
  • 4-Cross Site Scripting (XSS) Attacks
  • 5-SQL Injection Vulnerabilities
  • 6-Error Reporting
  • 7-Data Handling Errors
  • 8-PHP configuration settings

PHP Security when installed as a CGI Binary[php.net]

  • Do not place any interpreters into the cgi-bin directory
  • Even If PHP is installed as a standalone binary (and in cgi-bin directory), PHP can prevent attacks that may arise from such setting.
  • Accessing system files: http://my.host/cgi-bin/php?/etc/passwd — using such URLs can be risky, the part after ? may be treated as command line arguments to the interpreter, and hence, in some cases pose risks
  • Accessing any web document on server: http://my.host/cgi-bin/php/secret/doc.html — this way can also be risky

PHP compile time options such as –enable-force-cgi-redirect and runtime configuration directives doc_root and user_dir can be used to prevent such risks.

From: http://sitestree.com/?p=4742
Categories:16
Tags:
Post Data:2008-07-09 01:21:35

    Shop Online: <a href='https://www.ShopForSoul.com/' target='new' rel="noopener">https://www.ShopForSoul.com/</a>
    (Big Data, Cloud, Security, Machine Learning): Courses: <a href='http://Training.SitesTree.com' target='new' rel="noopener"> http://Training.SitesTree.com</a> 
    In Bengali: <a href='http://Bangla.SaLearningSchool.com' target='new' rel="noopener">http://Bangla.SaLearningSchool.com</a>
    <a href='http://SitesTree.com' target='new' rel="noopener">http://SitesTree.com</a>
    8112223 Canada Inc./JustEtc: <a href='http://JustEtc.net' target='new' rel="noopener">http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning) </a>
    Shop Online: <a href='https://www.ShopForSoul.com'> https://www.ShopForSoul.com/</a>
    Medium: <a href='https://medium.com/@SayedAhmedCanada' target='new' rel="noopener"> https://medium.com/@SayedAhmedCanada </a>

Zend Developer Studio Overview #16

If you are familiar with Eclipse development IDE, then you can learn Zend Developer Studio pretty easily. If you are familiar with programming concepts in general and especially in PHP, then you may need 1-3 days to be good at Zend Developer Studio. You really don’t need 20 years of experience to be able to work effectively with Zend Developer Studio. First, know what are the topics to learn, then learn one by one. It will be mostly common sense.

Concepts to learn in Zend Developer Studio

  • View: Any sub-window to give you information on a topic (application development). Two types: PHP, Explorer view, Outline View
  • Perspective: A collection of similar views to accomplish a specific task
  • Outline View: Tree view of an entity. open/selected entity
  • Working Sets: Collection of files or open projects that you can bind together and give a name
  • Code Editor: Learn the code editor, try to use code completion features, navigation features
  • Learn to create project:
  • Learn different ways and features of creating projects such as:
    • Projects Wizard
    • Zend Framework Project
    • Multiproject Support
    • Setting Up Working Sets
    • Importing Projects
    • Exporting Projects
    • Creating New Files
    • Using Link with Editor
    • Accessing Remote Files
  • Learn to write code under MVC model in Zend framework
  • Learn to use Zend libraries
  • Learn to use classes provided by Zend for MVC type of project development
  • You may want to learn – how to use Zend provided features to access google data, and Zend features for emailing
  • Learn Zend_PDF for PDF file creation and handling, Zend_Service for web-service based application development, Zend_Gdata for google services, Zend_Mail for mailing, Zend_Controller for MVC application development, Zend_Db for database operations, Zend_Acl for access control
  • Learn Zend Framework project structure, folder structure, and how to modify settings [database settings for example]
  • Learn how to update eclipse/zend features from the menu options. Learn how to install new eclipse/zend components.
  • Learn how to install third party plug-ins to eclipse
  • Learn how to install libraries
  • Zend studio also has an interface where you can easily design your web-pages. You have to change your perspective to this editor view (PHP/HTML WYSIWYG).
  • Learn to use a version control software with Zend studio. You may want to use CVSNT (client for CVS). You also need a Version Control Server.
  • You will get version control options under Window->preferences menu option.
  • You can set configuration for files, how they will be handled under version control
  • You also need to learn debugging. How to set debugging parameters (window->preferences). Learn how to debug locally and remotely.
  • Learn how to use debug perspective. How to use different debugging concepts such as step into, step over, run to cursor, breakpoint, watch variables and similar
  • Learn Code Analyzer, Refactoring, and SQL Integration

From: http://sitestree.com/?p=4708
Categories:16
Tags:
Post Data:2008-03-03 20:32:04

    Shop Online: <a href='https://www.ShopForSoul.com/' target='new' rel="noopener">https://www.ShopForSoul.com/</a>
    (Big Data, Cloud, Security, Machine Learning): Courses: <a href='http://Training.SitesTree.com' target='new' rel="noopener"> http://Training.SitesTree.com</a> 
    In Bengali: <a href='http://Bangla.SaLearningSchool.com' target='new' rel="noopener">http://Bangla.SaLearningSchool.com</a>
    <a href='http://SitesTree.com' target='new' rel="noopener">http://SitesTree.com</a>
    8112223 Canada Inc./JustEtc: <a href='http://JustEtc.net' target='new' rel="noopener">http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning) </a>
    Shop Online: <a href='https://www.ShopForSoul.com'> https://www.ShopForSoul.com/</a>
    Medium: <a href='https://medium.com/@SayedAhmedCanada' target='new' rel="noopener"> https://medium.com/@SayedAhmedCanada </a>

Zend Tools for PHP Web-Application Development #16

“Zend Technologies is the leading provider of products and services for developing, deploying and managing business-critical PHP applications. The mission of Zend Technologies is to enable PHP as a world-class language for large-scale enterprise development solutions. [www.zend.com]”

  • PHP Application Server: Solutions for Business Critical PHP: http://www.zend.com/en/products/platform/
  • Zend Developer Studio for RIA: http://www.zend.com/en/products/studio/: http://www.zend.com/en/products/studio/
  • Production ready PHP: The PHP Stack for Serious Professionals: Stable and Extended PHP: http://www.zend.com/en/products/core/
  • Zend Guard: PHP encryption product: http://www.zend.com/en/products/guard/
  • Zend Optimizer: Zend Optimizer The Free Runtime for Zend Guard

From: http://sitestree.com/?p=4707
Categories:16
Tags:
Post Data:2010-01-03 06:03:51

    Shop Online: <a href='https://www.ShopForSoul.com/' target='new' rel="noopener">https://www.ShopForSoul.com/</a>
    (Big Data, Cloud, Security, Machine Learning): Courses: <a href='http://Training.SitesTree.com' target='new' rel="noopener"> http://Training.SitesTree.com</a> 
    In Bengali: <a href='http://Bangla.SaLearningSchool.com' target='new' rel="noopener">http://Bangla.SaLearningSchool.com</a>
    <a href='http://SitesTree.com' target='new' rel="noopener">http://SitesTree.com</a>
    8112223 Canada Inc./JustEtc: <a href='http://JustEtc.net' target='new' rel="noopener">http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning) </a>
    Shop Online: <a href='https://www.ShopForSoul.com'> https://www.ShopForSoul.com/</a>
    Medium: <a href='https://medium.com/@SayedAhmedCanada' target='new' rel="noopener"> https://medium.com/@SayedAhmedCanada </a>

Online Reversal Request to Paymentech in C# #17

protected void saLearnOnlineReversal(object sender, EventArgs e)    {

PaymentechGateway gateway = new PaymentechGateway();
gateway.Url = "https://wsvar.paymentech.net/PaymentechGateway";        

//Create a reversal request object                
ReversalElement reversalObj = new ReversalElement();        reversalObj.orbitalConnectionUsername = "paymentech_username";        reversalObj.orbitalConnectionPassword = "paymentech_password";                reversalObj.bin = "bin number with paymentech";        
reversalObj.merchantID = "Your merchant ID with Paymentech";        
reversalObj.terminalID = "Your Terminal ID with Paymentec";        

//transaction for reversal        
reversalObj.orderID = "567";        

//as you received from authentication response        
//transaction to reverse        
reversalObj.txRefNum = "transaction reference number to reverse";         reversalObj.txRefIdx = "transaction reference ID to reverse";         ReversalResponseElement responseObj = null;        

string response = "";        
try        
{            
//send the reversal request            
responseObj = gateway.Reversal(reversalObj);            
//receive the response            
response = responseObj.approvalStatus + "-" + responseObj.procStatus;            
//you can process the response here                   
}
        
catch (Exception ex)        
{                    
}    
        
}

From: http://sitestree.com/?p=5333
Categories:17
Tags:
Post Data:2007-01-05 11:42:41

    Shop Online: <a href='https://www.ShopForSoul.com/' target='new' rel="noopener">https://www.ShopForSoul.com/</a>
    (Big Data, Cloud, Security, Machine Learning): Courses: <a href='http://Training.SitesTree.com' target='new' rel="noopener"> http://Training.SitesTree.com</a> 
    In Bengali: <a href='http://Bangla.SaLearningSchool.com' target='new' rel="noopener">http://Bangla.SaLearningSchool.com</a>
    <a href='http://SitesTree.com' target='new' rel="noopener">http://SitesTree.com</a>
    8112223 Canada Inc./JustEtc: <a href='http://JustEtc.net' target='new' rel="noopener">http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning) </a>
    Shop Online: <a href='https://www.ShopForSoul.com'> https://www.ShopForSoul.com/</a>
    Medium: <a href='https://medium.com/@SayedAhmedCanada' target='new' rel="noopener"> https://medium.com/@SayedAhmedCanada </a>

How to Integrate Paymentech Payment Processing Solution on Your eCommerce Shop #17

How to Integrate Paymentech Payment Processing Solution on Your eCommerce Shop

  • Sign up with paymentech. Get approval from them. Get an account with them
  • Determine, how your software/application will verify with their API: Username/Password (preferred) or IP address
  • Get the Username/Password for them for verification with their API. You will also be assigned a Merchant ID, a Terminal ID, a Gateway URL, a bin number
  • Remember, I am talking about writing custom code to integrate. I am not talking about Hosted Solutions (Hosted: buyers are taken on paymentech web-site to pay)
  • Before the production system (actual implementation and deployment), you have to go through a certification (test phase) process. You will be given sample credit card transactions to be executed from your application as tests. If everything seems alright, you can move to production
  • So how to implement
    • As usual, you will have a credit card information collection form; yes, the amount to be charged has to be calculated/determined
    • You have to connect to Paymentech Gateway using their APIs such as XML API and SOAP API
    • I am talking about ecommerce transactions/online payments
    • Yes, other than providing the APIs, paymentech also provides SDKs. Third party companies also have modules for the purpose. These modules can be handy, else you have to implement many functionality from ground up
    • So, you connect to the Gateway (through a Gateway URL), send the credit card information and the amount. To send the request, you will usually create a NewOrderRequestElement and pass it to the gateway
    • Remember, I am talking about using SOAP for the purpose
    • In SOAP, before being able to connect and send requests to their Gateway, you will need a reference to their web-services (to the wsdl file/service)
    • Now, foreach type of transaction, you have to send a separate type of request. The gateway will give you back some response using some codes (key value pairs). The codes will provide information such as: if the transaction went through, was there any error, if the security code matched or not, the transaction reference number and similar
    • Transaction Request Types: New Order, Reversal, Capture, Inquiry
    • To send a order/purchase request, you have to create and send NewOrderRequestElement (as defined in the SOAP API), the server will get back to you with NewOrderResponseElement object
    • How do you know about the objects, what to send and what you will receive in return? when to send what type of request? what are the fields for each request and response?
    • To know, download and read SOAP API documentation from http://download.chasepaymentech.com/ more specifically from http://download.chasepaymentech.com/docs/orbital/orbital_gateway_web_service_specification.pdf
    • Know about the objects such as NewOrderRequestElement, NewOrderResponseElement, ReversalElement (to request a refund), ReversalResponseElement, EndOfDayElement (request to clear all transactions), EndofDayResponseElement
    • A list of the Objects Available. You will need to know when to send these types of requests and what the fields inside the object indicate NewOrderRequestElement, NewOrderResponseElements, MarkforCaptureRequestElements, MarkforCaptureResponseElements, ReversalRequestElements, ReversalResponseElements EndofDayRequestElements, EndofDayResponseElements, ProfileAddRequestElements, ProfileUpdateRequestElements, ProfileDeleteRequestElements ProfileRetrievalRequestElements, ProfileResponseElements, GiftCardRequestElements, GiftCardResponseElements, InquiryRequestElements InquiryResponseElements, AccountUpdaterRequestElements, AccountUpdaterResponseElements, FraudAnalysisRequestElements, FraudAnalysisResponseElements
  • Steps in your code for a Purchase Request
    • Get a reference to the wsdl (https://wsvar.paymentech.net/PaymentechGateway/wsdl/PaymentechGateway.wsdl). in Visual studio use Add Web Reference
    • Add the library in your code (in c#, using ….)
    • Create a PaymentGateway object. Specify the gateway URL to the PaymentechGateway object obj.url = “https://wsvar.paymentech.net/PaymentechGateway”;
    • Create a NewOrderRequestElement. Provide information such as orbitalConnectionUserName, orbitalConnectionPassword, orderID, transType, bin, merchantID, terminalID, amount, industryType, ccAccountNum, expiryDate with the object
    • call the NewOrder method of a NewOrderResponseElement. Grab the response from the gateway and process the responses
  • A sample c# code for a order/purchase request is given below
  • get a web reference to https://wsvar.paymentech.net/PaymentechGateway/wsdl/PaymentechGateway.wsdl
          protected void btnSubmitOrder_click(object sender, EventArgs e){        PaymentechGateway gatewayObj = new PaymentechGateway();     gatewayObj.Url = "https://wsvar.paymentech.net/PaymentechGateway";      //Create a request Object       NewOrderRequestElement orderRequest = new NewOrderRequestElement();             //must supply if you use username/password combination to authenticate against API      orderRequest.orbitalConnectionUsername = "";        orderRequest.orbitalConnectionPassword = "";                //in real life, you will grab these values from a web form and assign to the orderRequest object        orderRequest.orderID = "500";       orderRequest.transType = "A"; //auth only       orderRequest.bin = "000001"; //you will be assigned a bin       orderRequest.merchantID = "3452"; //you will be assigned a merchant id      orderRequest.terminalID = "001"; //you will be given a termina ID       orderRequest.amount = "100"; //amount to be charged     orderRequest.industryType = "EC"; //ecommerce       orderRequest.ccAccountNum = "2727272727272727"; //credit card number        orderRequest.ccExp = "201509"; //credit card expiry date                try         {           NewOrderResponseElement responseElement = gatewayObj.NewOrder(orderRequest);            txtResponse.Text = "Response Status" + ":" +responseElement.approvalStatus                         +":"+responseElement.txRefNum;       }       catch (System.Web.Services.Protocols.SoapException ex)      {           txtResponse.Text = "Error Occured:"+ex.Message;     }   }       

From: http://sitestree.com/?p=5301
Categories:17
Tags:
Post Data:2010-11-21 14:11:58

    Shop Online: <a href='https://www.ShopForSoul.com/' target='new' rel="noopener">https://www.ShopForSoul.com/</a>
    (Big Data, Cloud, Security, Machine Learning): Courses: <a href='http://Training.SitesTree.com' target='new' rel="noopener"> http://Training.SitesTree.com</a> 
    In Bengali: <a href='http://Bangla.SaLearningSchool.com' target='new' rel="noopener">http://Bangla.SaLearningSchool.com</a>
    <a href='http://SitesTree.com' target='new' rel="noopener">http://SitesTree.com</a>
    8112223 Canada Inc./JustEtc: <a href='http://JustEtc.net' target='new' rel="noopener">http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning) </a>
    Shop Online: <a href='https://www.ShopForSoul.com'> https://www.ShopForSoul.com/</a>
    Medium: <a href='https://medium.com/@SayedAhmedCanada' target='new' rel="noopener"> https://medium.com/@SayedAhmedCanada </a>

Automating Digital Delivery with Paypal Payment Processing System #17

Just recently, I have implemented an automatic notification and digital product delivery system with Paypal Payment Processing System. The concept is, when a person buys products from your web-sites, he gets his products automatically as email attachments after you have confirmed the transaction. The most important part is – collecting payment data and buyer information from Paypal to ensure that the transaction is legitimate and the payment really went through. You can use either Paypal IPN or Paypal PDT to collect these data and email products on successful verification. Either will/should work. For me, PDT worked alright. Check the following web-pages/documents. Also, from PDT section, check the sample examples. For me the sample example with ASP/VBSCript worked alright.

In the past, I have worked with MiraServ, and Moneris payment processing systems. You can find short-notes and video tutorials in this web-site on them. Just search through our web-sites.

From: http://sitestree.com/?p=5183
Categories:17
Tags:
Post Data:2011-12-22 21:24:17

    Shop Online: <a href='https://www.ShopForSoul.com/' target='new' rel="noopener">https://www.ShopForSoul.com/</a>
    (Big Data, Cloud, Security, Machine Learning): Courses: <a href='http://Training.SitesTree.com' target='new' rel="noopener"> http://Training.SitesTree.com</a> 
    In Bengali: <a href='http://Bangla.SaLearningSchool.com' target='new' rel="noopener">http://Bangla.SaLearningSchool.com</a>
    <a href='http://SitesTree.com' target='new' rel="noopener">http://SitesTree.com</a>
    8112223 Canada Inc./JustEtc: <a href='http://JustEtc.net' target='new' rel="noopener">http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning) </a>
    Shop Online: <a href='https://www.ShopForSoul.com'> https://www.ShopForSoul.com/</a>
    Medium: <a href='https://medium.com/@SayedAhmedCanada' target='new' rel="noopener"> https://medium.com/@SayedAhmedCanada </a>

Is there a payment processing system like this? #17

I am not sure that any bank offers such systems/services…Just wondering ..how useful will it be if you do not have to go to the bank to deposit your cheques? I think, it will be a very useful software/service for many especially for many business owners.

How the software/service will work? You may need a scanner/similar device/especially designed device attached to your computer/phone line. A software will scan and send the cheque information to the bank. The bank will have a server side software that will verify the authenticity of the cheques, deposit the amount, and announce success/failure. Optical Character Readers may help in the process. Pattern recognition will also help to identify the cheques. Also, image processing algorithms will play important roles in the software. Making the system/software secure will also be challenging.

Banks can implement such systems independently, or a 3rd party can implement such services may be using SOA. Banks and clients will use the services (for a small fee)

From: http://sitestree.com/?p=5167
Categories:17
Tags:
Post Data:2011-01-02 02:11:09

    Shop Online: <a href='https://www.ShopForSoul.com/' target='new' rel="noopener">https://www.ShopForSoul.com/</a>
    (Big Data, Cloud, Security, Machine Learning): Courses: <a href='http://Training.SitesTree.com' target='new' rel="noopener"> http://Training.SitesTree.com</a> 
    In Bengali: <a href='http://Bangla.SaLearningSchool.com' target='new' rel="noopener">http://Bangla.SaLearningSchool.com</a>
    <a href='http://SitesTree.com' target='new' rel="noopener">http://SitesTree.com</a>
    8112223 Canada Inc./JustEtc: <a href='http://JustEtc.net' target='new' rel="noopener">http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning) </a>
    Shop Online: <a href='https://www.ShopForSoul.com'> https://www.ShopForSoul.com/</a>
    Medium: <a href='https://medium.com/@SayedAhmedCanada' target='new' rel="noopener"> https://medium.com/@SayedAhmedCanada </a>

Payment Processing using MiraPay/MiraServ #17

From: http://sitestree.com/?p=5132
Categories:17
Tags:
Post Data:2013-04-08 02:12:57

    Shop Online: <a href='https://www.ShopForSoul.com/' target='new' rel="noopener">https://www.ShopForSoul.com/</a>
    (Big Data, Cloud, Security, Machine Learning): Courses: <a href='http://Training.SitesTree.com' target='new' rel="noopener"> http://Training.SitesTree.com</a> 
    In Bengali: <a href='http://Bangla.SaLearningSchool.com' target='new' rel="noopener">http://Bangla.SaLearningSchool.com</a>
    <a href='http://SitesTree.com' target='new' rel="noopener">http://SitesTree.com</a>
    8112223 Canada Inc./JustEtc: <a href='http://JustEtc.net' target='new' rel="noopener">http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning) </a>
    Shop Online: <a href='https://www.ShopForSoul.com'> https://www.ShopForSoul.com/</a>
    Medium: <a href='https://medium.com/@SayedAhmedCanada' target='new' rel="noopener"> https://medium.com/@SayedAhmedCanada </a>