CasperVend 2/API: Difference between revisions

From CasperTech Wiki
Jump to navigation Jump to search
No edit summary
mNo edit summary
Line 1: Line 1:
{|align=right
  |__TOC__
  |}
 
== '''<span style="color:#00528c">Introduction</span>''' ==
Starting from the 12th of June 2012, CasperVend2 has a read-only API which is designed to help creators with scripting knowledge to create plugins for our vendors.
Starting from the 12th of June 2012, CasperVend2 has a read-only API which is designed to help creators with scripting knowledge to create plugins for our vendors.


== Messages ==
== '''<span style="color:#00528c">Messages </span>''' ==


API messages are sent via linked message. They are sent on the following events:
API messages are sent via linked message. They are sent on the following events:
Line 8: Line 13:
#'''Transaction Completed''' - When a product has been successfully purchased from a vendor.
#'''Transaction Completed''' - When a product has been successfully purchased from a vendor.


== On Update ==
==== On Update ====


This event occurs when a vendor is scrolled, reset, updated, rezzed, or the region is restarted.
This event occurs when a vendor is scrolled, reset, updated, rezzed, or the region is restarted.
Line 19: Line 24:
Please note that the characters :, @ and | are removed from the product name.
Please note that the characters :, @ and | are removed from the product name.


== Transaction Completed ==
==== Transaction Completed ====


This event occurs when a transaction has been successfully completed, and the item delivered.
This event occurs when a transaction has been successfully completed, and the item delivered.
Line 41: Line 46:
#RECIPIENT_KEY - This is the key (UUID) of the avatar who has received the product.
#RECIPIENT_KEY - This is the key (UUID) of the avatar who has received the product.


=== Example script ===
== '''<span style="color:#00528c">Example Script </span>''' ==


Drop this script into your dropboxes to receive a nice IM whenever anyone buys anything. Kinda redundant because it does this anyway, but a good example.
Drop this script into your dropboxes to receive a nice IM whenever anyone buys anything. Kinda redundant because it does this anyway, but a good example.

Revision as of 21:08, 30 June 2013

Introduction

Starting from the 12th of June 2012, CasperVend2 has a read-only API which is designed to help creators with scripting knowledge to create plugins for our vendors.

Messages

API messages are sent via linked message. They are sent on the following events:

  1. On Update - Vendor scrolled, rezzed, reset, or region restarted
  2. Transaction Completed - When a product has been successfully purchased from a vendor.

On Update

This event occurs when a vendor is scrolled, reset, updated, rezzed, or the region is restarted. It provides information on the currently displayed product.

The following linked message is sent on the vendor concerned:

llMessageLinked(LINK_SET, PRODUCT_PRICE, PRODUCT_NAME, PRODUCT_TEXTURE_KEY);

Please note that the characters :, @ and | are removed from the product name.

Transaction Completed

This event occurs when a transaction has been successfully completed, and the item delivered. It provides information on the transaction.

The following linked message is sent on BOTH the vendor used to purchase the product, and the dropbox used to deliver the item

llMessageLinked(LINK_SET, -10, TRANSACTION_ID+":"+PURCHASER_KEY+":"+PURCHASER_NAME+":"+RECIPIENT_NAME+":"+AMOUNT_PAID+":"+GIFT_CARD_USED+":"+MODE+":"+PRODUCT_ID+":"+ITEM_NAME, RECIPIENT_KEY);

Fields:

  1. TRANSACTION_ID - This is your CasperVend transactionID. This is used to uniquely identify this transaction.
  2. PURCHASER_KEY - This is the key (UUID) of the avatar who has purchased the product - NOT THE RECIPIENT.
  3. PURCHASER_NAME - This is the avatar name (not display name or username) of the person purchasing the product.
  4. RECIPIENT_NAME - This is the avatar name (not display name or username) of the person receiving the product.
  5. AMOUNT_PAID - This is the amount that was paid for the item, in Linden Dollars.
  6. GIFT_CARD_USED - This is 1 if a gift card was used for this transaction, 0 if not.
  7. MODE - "norm" if a regular transaction. "lucky" if a lucky chair win. "midni" if a midnight madness win.
  8. PRODUCT_ID - The CasperVend product ID of the product. You should use this rather than the item name, since the item name can change, but the product ID won't.
  9. ITEM_NAME - The inventory item name that was delivered.
  10. RECIPIENT_KEY - This is the key (UUID) of the avatar who has received the product.

Example Script

Drop this script into your dropboxes to receive a nice IM whenever anyone buys anything. Kinda redundant because it does this anyway, but a good example.

   default
   {
       link_message(integer source, integer num, string str, key id)
       {
           if (num==-10)
           {
                list tmp = llParseStringKeepNulls(str,[":"],[]);  
            
                string TransactionID = llList2String(tmp,0);
                key PurchaserKey = llList2Key(tmp,1);
                string PurchaserName = llList2String(tmp,2);
                string RecipientName = llList2String(tmp,3);
                integer amountPaid = llList2Integer(tmp,4);
                integer giftCardUsed = llList2Integer(tmp,5);
                string mode = llList2String(tmp,6);
                integer productID = llList2Integer(tmp,7);
                string itemName = llList2String(tmp,8);
                key RecipientKey = id;
            
                string sendText = "Hello! "+PurchaserName+" just bought a '"+itemName+"' from you";
                if (giftCardUsed==1)
                {
                   sendText+=" (worth L$"+(string)amountPaid+"), using a gift card";
                }
                else
                {
                   sendText+=" for L$"+(string)amountPaid;
                }
                if (RecipientKey!=PurchaserKey)
                {
                   sendText+=", as a gift for "+RecipientName;  
                }
                if (mode=="lucky") 
                {
                   sendText="Hello! "+PurchaserName+" just won a "+itemName+" from your lucky chair";            
                } 
                sendText+="! You can view the full transaction details here: https://status.casperdns.com/?transaction="+TransactionID+"&t="+(string)llGetUnixTime();
            
                llInstantMessage(llGetOwner(),sendText);
           }
       }
   }