cocos-engine-external/android/arm64-v8a/include/anysdk/ProtocolIAP.h

120 lines
3.6 KiB
C++
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/** @file ProtocolIAP.h
*/
#ifndef __CCX_PROTOCOL_IAP_H__
#define __CCX_PROTOCOL_IAP_H__
#include "PluginProtocol.h"
#include <map>
#include <string>
namespace anysdk { namespace framework {
/// \typedef std::map<std::string, std::string> TIAPDeveloperInfo
/// typedef TIAPDeveloperInfo.
typedef std::map<std::string, std::string> TIAPDeveloperInfo;
/// \typedef std::map<std::string, std::string> TProductInfo
/// typedef TProductInfo.
typedef std::map<std::string, std::string> TProductInfo;
/// typedef TProductsInfo.
typedef std::map<std::string, TProductInfo> AllProductsInfo;
/** @brief PayResultCode enum, with inline docs */
typedef enum
{
kPaySuccess = 0,/**< enum value is callback of succeeding in paying . */
kPayFail,/**< enum value is callback of failing to pay . */
kPayCancel,/**< enum value is callback of canceling to pay . */
kPayNetworkError,/**< enum value is callback of network error . */
kPayProductionInforIncomplete,/**< enum value is callback of incompleting info . */
kPayInitSuccess,/**< enum value is callback of succeeding in initing sdk . */
kPayInitFail,/**< enum value is callback of failing to init sdk . */
kPayNowPaying,/**< enum value is callback of paying now . */
kPayRechargeSuccess,/**< enum value is callback of succeeding in recharging. */
kPayExtension = 30000 /**< enum value is extension code . */
} PayResultCode;
/** @brief RequestResultCode enum, with inline docs */
typedef enum
{
kRequestSuccess = 31000,/**< enum value is callback of succeeding in paying . */
kRequestFail/**< enum value is callback of failing to pay . */
} RequestResultCode;
/**   
 *@class  PayResultListener
*@brief the interface of pay callback  
*/
class PayResultListener
{
public:
/**   
*@brief the interface of pay callback 
*@param the id of callback
*@param the information of callback
*@param the info of pay
*/
virtual void onPayResult(PayResultCode ret, const char* msg, TProductInfo info) = 0;
/**
*@brief the interface of request callback
*@param the id of callback
*@param the information of callback
*@param the info of request product
*/
virtual void onRequestResult(RequestResultCode ret, const char* msg, AllProductsInfo info) {}
};
/**   
 *@class  ProtocolIAP
*@brief the interface of pay   
*/
class ProtocolIAP : public PluginProtocol
{
public:
/**
@brief pay for product
@param info The info of product, must contains key:
productName The name of product
productPrice The price of product(must can be parse to float)
productDesc The description of product
@warning For different plugin, the parameter should have other keys to pay.
Look at the manual of plugins.
*/
virtual void payForProduct(TProductInfo info) = 0;
/**
@brief get order id
@return the order id
*/
virtual std::string getOrderId() = 0;
/**
@breif set the result listener
@param pListener The callback object for pay result
@wraning Must invoke this interface before payForProduct.
*/
virtual void setResultListener(PayResultListener* pListener) = 0;
virtual PayResultListener* getPayListener() = 0 ;
/**
@brief get plugin id
@return the plugin id
*/
virtual std::string getPluginId() = 0 ;
/**
@brief change the state of paying
@param the state
*/
static void resetPayState()
{
_paying = false;
}
static bool _paying;
};
}} // namespace anysdk { namespace framework {
#endif /* __CCX_PROTOCOL_IAP_H__ */