martes, 8 de febrero de 2011

TUTORIAL: Desarrollo de aplicaciones para bada (XVII)

El servidor bada
El servicio Commerce. Crea tu propio negocio online

Lo que hace de bada una plataforma singular e interesante es su servicio de comercio. Con este servicio, los desarrolladores no sólo pueden vender sus aplicaciones en la tienda SamsungApps, sino que también pueden vender sus propios artículos en ellas.
La parte esencial del servicio de comercio es SamsungApps, donde puedes definir los artículos que quieras poner a la venta. Todos los artículos a vender tienen que definirse en SamsungApps. Veamos como hacerlo.


Paso 1: Definir los artículos a vender en SamsungApps Seller Office

Para definir y registrar los artículos, en primer lugar ve a Samsung Apps Seller Office y, en el menú, selecciona "Applications > Management > Item" para añadir artículos para su posible puesta a la venta. Crea un grupo de artículos y añádele los artículos que desees. Toma nota del identificador de grupo de artículos (Item Group ID), ya que lo necesitarás más adelante como parámetro de las APIs que utilizaremos.

Antes de registrar la aplicación en Samsung Apps Seller Office ("Applications > Add New Application"), puedes probar la compra de artículos en tu aplicación sin pago real (modo de prueba). Cuando registres la aplicación puedes registrar también los artículos a vender seleccionando el identificador de grupo de artículos (Item Group ID). Eso sí, ten en cuenta que no se acepta cualquier artículo. Lee los términos y condiciones en Samsung Apps para obtener más información.

















Paso 2: Utilizar la API de compras "in-App" (compras en aplicación)

El badaSDK incluye un buen ejemplo sobre la compra de artículos de SamsungApps. Hay dos clases relacionadas con las compras "in-app": ItemService y PurchaseService. Ahora vamos a ver cómo utilizar estas dos clases para implementar nuestra aplicación.

La clase ItemService sólo tiene un método, llamado GetItemList(). Se puede utilizar para enviar una petición al servidor de SamsungApps para obtener una lista de artículos. También debes especificar el identificador de grupo de artículos (string). Este identificador tiene que ser el mismo que creaste en tu tienda. Cuando se inicie la aplicación, mostrará sólo los artículos de este grupo.

Osp::Commerce::Store::ItemService* pItemService; ItemServiceListener *pItemServiceListener; 
pItemService = new ItemService(); pItemService->Construct(*pItemSerivceListener); 
//Obtener los articulos de indice 1 a 2 del group ID “0x1000000a7” pItemService->GetItemList(L“Ox1000000a7”, 1, 2, reqId);

También tienes que implementar el listener para capturar las respuestas del servidor:

class ItemServiceListener : 
public Osp::Commerce::Store::IItemServiceListener 
   public: ItemServiceListener(); 
   ~ItemServiceListener(); 

   void OnItemListReceivedN(RequestId reqId,
      Osp::Base::Collection::IList* pItemInfoList, 
      result r, const Osp::Base::String & errorCode, 
      const Osp::Base::String &errorString); 
};


void ItemServiceListener::OnItemListReceivedN(RequestId reqId,
   Osp::Base::Collection::IList* pItemInfoList, 
   result r, const Osp::Base::String & errorCode, 
   const Osp::Base::String &errorString) 
   if(IsFailed(r))
   { 
      //mostrar mensaje error
   } 
   else 
   {
      //mostrar info articulo
   } 
   if(pItemInforList != NULL) 
   {
      pItemInfoList->RemoveAll(true); 
      delete pItemInfoList;
   } 
}

La clase PurchaseService es otra clase que permite a los usuarios comprar artículos y obtener información de sus compras, como el historial de pagos. Siguiendo el mismo patrón de la clase ItemService, implementa la interface IPurchaseServiceListener y la clase PurchaseService. Es muy similar a IItemServiceListener. Ambas clases necesitan el listener correspondiente para gestionar las respuestas y los resultados procedentes del servidor de SamsungApps.

class PurchaseServiceListener : 
public Osp::Commerce::Store::IPurchaseServiceListener 
   public: PurchaseServiceListener(); 
   ~PurchaseServiceListener(); 

   void OnItemPurchaseCompleted(RequestId reqId,
      const PaymentId& paymentId, const ItemId& itemId, 
      const String& itemName, double price, 
      String& currency, const DateTime& purchaseDate, 
      result r, const String& errorCode, const String& errorMsg); 

   void OnItemPurchaseInfoReceivedN(RequestId reqId, 
      IList* pPurchaseInfoList,result r, 
      const String& errorCode, const String& errorMsg); 
};

Para implementar la compra de un artículo, puedes utilizar el siguiente fragmento de código: 

pPurchaseService = new PurchaseService(); pPurchaseService->Construct(pPurchaseServiceListener); 
result r; 
RequestId reqId = INVALID_REQUEST_ID; 
String itemGroupId(L”0x1000000a7”); 
String purchaseItemId(L”000000000517”); 

r = pPurchaseService->PurchaseItem(itemGroupId, purchaseItemId, reqId);


Vía: Introduction to bada - A developer's guide

No hay comentarios:

Publicar un comentario