You can set up your own digital shop on the Internet with the help of PayPal and Google Scripts. You upload your file on Google Drive, the buyer makes a purchase through PayPal and Google Apps Script will deliver the file to the buyer through Gmail.
See: Sell Digital Products Online
/* PayPal Shop with Apps Script */
/* Add the PayPal Item Ids and Google Drive Files names here */
PAYPAL = [
  ['product-001', 'useful-websites-book.pdf'],
  ['product-002', 'linux-training-course.mp4'],
  ['product-003', 'labnol-audio-book.mp3'],
  ['product-004', 'presentation-template.ppt'],
];
/* The script will scan your Gmail inbox every 5 minutes for PayPal emails */
function PayPal() {
  ScriptApp.newTrigger('myShop').timeBased().everyMinutes(5).create();
}
function myShop() {
  var file, size, files, threads;
  for (var p in PAYPAL) {
    threads = GmailApp.search('is:unread from:paypal ' + PAYPAL[p][0]);
    if (threads.length > 0) {
      /* Find the file in Google Drive */
      files = DriveApp.searchFiles('title contains "' + PAYPAL[p][1] + '"');
      if (files.hasNext()) {
        file = files.next();
        size = file.getSize() / (1024 * 1024);
        for (var i = 0; i < threads.length; i++) {
          /* The PayPal transaction emails container the buyer's email in the Reply-To field */
          var buyer = threads[i].getMessages()[0].getReplyTo();
          var subject = 'Thank you for your purchase';
          var body = 'Please download the file using the link below.\n\n';
          /* Check the size of the Google Drive file (in MB) */
          if (size > 20) {
            file.addViewer(buyer); /* For big files, share the file with the buyer */
            GmailApp.sendEmail(buyer, subject, body + file.getUrl());
          } else {
            /* Else attach the file in the email message itself */
            GmailApp.sendEmail(buyer, subject, body, { attachments: file.getBlob() });
          }
          /* Move the PayPal email to Archive and Mark it as Read */
          threads[i].markRead().moveToArchive();
        }
      }
    }
  }
} 
  
  
  
  
 