mirror of https://github.com/axmolengine/axmol.git
Merge pull request #2379 from natural-law/master
issue #1723 : Remove the protocol IAP Online.
This commit is contained in:
commit
b3e499c6db
|
@ -1,76 +0,0 @@
|
||||||
#ifndef __CCX_PROTOCOL_IAP_ONLINE_H__
|
|
||||||
#define __CCX_PROTOCOL_IAP_ONLINE_H__
|
|
||||||
|
|
||||||
#include "ProtocolIAP.h"
|
|
||||||
|
|
||||||
namespace cocos2d { namespace plugin {
|
|
||||||
|
|
||||||
class LocalResultListener
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual void payFailedLocally(EPayResult ret, const char* msg) = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
class ProtocolIAPOnLine : public PluginProtocol
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
|
||||||
@brief plugin initialization
|
|
||||||
*/
|
|
||||||
virtual bool init();
|
|
||||||
|
|
||||||
/**
|
|
||||||
@brief initialize the developer info
|
|
||||||
@param devInfo This parameter is the info of developer,
|
|
||||||
different plugin have different format
|
|
||||||
@warning Must invoke this interface before other interfaces.
|
|
||||||
And invoked only once.
|
|
||||||
*/
|
|
||||||
virtual void initDeveloperInfo(TDeveloperInfo devInfo);
|
|
||||||
|
|
||||||
/**
|
|
||||||
@brief pay for product
|
|
||||||
@param info The info of product, must contains key:
|
|
||||||
productName The name of product
|
|
||||||
productPrice The price of product
|
|
||||||
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);
|
|
||||||
|
|
||||||
/**
|
|
||||||
@brief Set whether needs to output logs to console.
|
|
||||||
@param debug if true debug mode enabled, or debug mode disabled.
|
|
||||||
*/
|
|
||||||
virtual void setDebugMode(bool debug);
|
|
||||||
|
|
||||||
/**
|
|
||||||
@breif set the local result listener
|
|
||||||
@param pListener The callback object for local result
|
|
||||||
@wraning Must invoke this interface before payForProduct.
|
|
||||||
*/
|
|
||||||
static void setLocalResultListener(LocalResultListener* pListener);
|
|
||||||
|
|
||||||
/**
|
|
||||||
@brief pay failed locally callback
|
|
||||||
*/
|
|
||||||
static void payFailedLocally(EPayResult ret, const char* msg);
|
|
||||||
|
|
||||||
virtual const char* getPluginVersion() { return "ProtocolIAPOnLine, v0.1.01 , subclass should override this interface!"; };
|
|
||||||
virtual const char* getSDKVersion();
|
|
||||||
virtual const char* getPluginName() = 0;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
ProtocolIAPOnLine();
|
|
||||||
public:
|
|
||||||
virtual ~ProtocolIAPOnLine();
|
|
||||||
|
|
||||||
protected:
|
|
||||||
static LocalResultListener* m_spListener;
|
|
||||||
};
|
|
||||||
|
|
||||||
}} // namespace cocos2d { namespace plugin {
|
|
||||||
|
|
||||||
#endif /* __CCX_PROTOCOL_IAP_ONLINE_H__ */
|
|
|
@ -1,134 +0,0 @@
|
||||||
#include "ProtocolIAPOnLine.h"
|
|
||||||
#include "PluginJniHelper.h"
|
|
||||||
#include <android/log.h>
|
|
||||||
#include "PluginUtils.h"
|
|
||||||
#include "PluginJavaData.h"
|
|
||||||
|
|
||||||
#if 1
|
|
||||||
#define LOG_TAG "ProtocolIAPOnLine"
|
|
||||||
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)
|
|
||||||
#else
|
|
||||||
#define LOGD(...)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace cocos2d { namespace plugin {
|
|
||||||
|
|
||||||
extern "C" {
|
|
||||||
JNIEXPORT void JNICALL Java_org_cocos2dx_plugin_InterfaceIAPOL_nativePayFailedLocally(JNIEnv* env, jobject thiz, jint ret, jstring msg)
|
|
||||||
{
|
|
||||||
std::string strMsg = PluginJniHelper::jstring2string(msg);
|
|
||||||
ProtocolIAPOnLine::payFailedLocally((EPayResult) ret, strMsg.c_str());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
LocalResultListener* ProtocolIAPOnLine::m_spListener = NULL;
|
|
||||||
|
|
||||||
ProtocolIAPOnLine::ProtocolIAPOnLine()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
ProtocolIAPOnLine::~ProtocolIAPOnLine()
|
|
||||||
{
|
|
||||||
PluginUtils::erasePluginJavaData(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ProtocolIAPOnLine::init()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ProtocolIAPOnLine::initDeveloperInfo(TDeveloperInfo devInfo)
|
|
||||||
{
|
|
||||||
if (devInfo.empty())
|
|
||||||
{
|
|
||||||
LOGD("The developer info is empty!");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
PluginJavaData* pData = PluginUtils::getPluginJavaData(this);
|
|
||||||
PluginJniMethodInfo t;
|
|
||||||
if (PluginJniHelper::getMethodInfo(t
|
|
||||||
, pData->jclassName.c_str()
|
|
||||||
, "initDeveloperInfo"
|
|
||||||
, "(Ljava/util/Hashtable;)V"))
|
|
||||||
{
|
|
||||||
// generate the hashtable from map
|
|
||||||
jobject obj_Map = PluginUtils::createJavaMapObject(t, &devInfo);
|
|
||||||
|
|
||||||
// invoke java method
|
|
||||||
t.env->CallVoidMethod(pData->jobj, t.methodID, obj_Map);
|
|
||||||
t.env->DeleteLocalRef(obj_Map);
|
|
||||||
t.env->DeleteLocalRef(t.classID);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void ProtocolIAPOnLine::payForProduct(TProductInfo info)
|
|
||||||
{
|
|
||||||
if (info.empty())
|
|
||||||
{
|
|
||||||
LOGD("The product info is empty!");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
PluginJavaData* pData = PluginUtils::getPluginJavaData(this);
|
|
||||||
PluginJniMethodInfo t;
|
|
||||||
if (PluginJniHelper::getMethodInfo(t
|
|
||||||
, pData->jclassName.c_str()
|
|
||||||
, "payForProduct"
|
|
||||||
, "(Ljava/util/Hashtable;)V"))
|
|
||||||
{
|
|
||||||
// generate the hashtable from map
|
|
||||||
jobject obj_Map = PluginUtils::createJavaMapObject(t, &info);
|
|
||||||
|
|
||||||
// invoke java method
|
|
||||||
t.env->CallVoidMethod(pData->jobj, t.methodID, obj_Map);
|
|
||||||
t.env->DeleteLocalRef(obj_Map);
|
|
||||||
t.env->DeleteLocalRef(t.classID);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void ProtocolIAPOnLine::setLocalResultListener(LocalResultListener* pListener)
|
|
||||||
{
|
|
||||||
m_spListener = pListener;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ProtocolIAPOnLine::payFailedLocally(EPayResult ret, const char* msg)
|
|
||||||
{
|
|
||||||
if (m_spListener)
|
|
||||||
{
|
|
||||||
m_spListener->payFailedLocally(ret, msg);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
LOGD("Local Result listener is null!");
|
|
||||||
}
|
|
||||||
LOGD("Pay failed locally : %d(%s)", (int) ret, msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
const char* ProtocolIAPOnLine::getSDKVersion()
|
|
||||||
{
|
|
||||||
std::string verName;
|
|
||||||
|
|
||||||
PluginJavaData* pData = PluginUtils::getPluginJavaData(this);
|
|
||||||
PluginJniMethodInfo t;
|
|
||||||
if (PluginJniHelper::getMethodInfo(t
|
|
||||||
, pData->jclassName.c_str()
|
|
||||||
, "getSDKVersion"
|
|
||||||
, "()Ljava/lang/String;"))
|
|
||||||
{
|
|
||||||
jstring ret = (jstring)(t.env->CallObjectMethod(pData->jobj, t.methodID));
|
|
||||||
verName = PluginJniHelper::jstring2string(ret);
|
|
||||||
}
|
|
||||||
return verName.c_str();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ProtocolIAPOnLine::setDebugMode(bool debug)
|
|
||||||
{
|
|
||||||
PluginUtils::callJavaFunctionWithName_oneBaseType(this, "setDebugMode", "(Z)V", debug);
|
|
||||||
}
|
|
||||||
|
|
||||||
}} // namespace cocos2d { namespace plugin {
|
|
|
@ -12,7 +12,6 @@ $(addprefix ../../platform/android/, \
|
||||||
PluginUtils.cpp \
|
PluginUtils.cpp \
|
||||||
ProtocolAnalytics.cpp \
|
ProtocolAnalytics.cpp \
|
||||||
ProtocolIAP.cpp \
|
ProtocolIAP.cpp \
|
||||||
ProtocolIAPOnLine.cpp \
|
|
||||||
) \
|
) \
|
||||||
../../PluginManager.cpp \
|
../../PluginManager.cpp \
|
||||||
../../RegisterPlugin.cpp \
|
../../RegisterPlugin.cpp \
|
||||||
|
|
Loading…
Reference in New Issue