Пример #1
0
void MiniIAPQtClient::purchaseFlowFinished( int requestId )
{
    qDebug() << "purchaseFlowFinished";
    if (!m_miniIAPReceiver) return;
    if (m_requestId != requestId) return;
    m_miniIAPReceiver->purchaseFlowFinished(m_productId.toLatin1().constData());
    clearPurchasing();
}
void SymbianClientApiHelper::PurchaseFlowFinished(TInt aRequestId)
{
	RDebug::Printf("SymbianClientApiHelper::PurchaseFlowFinished");
    if (!m_miniIAPSymbianClient) return;
    // @TODO: fix this to "(m_requestId != aRequestId)" comparison when IAP is working ok!
    if (m_requestId != aRequestId && m_requestId != 0) return;    
    
    m_miniIAPSymbianClient->PurchaseFlowFinished(m_productIdAsText);
    clearPurchasing();
}
bool SymbianClientApiHelper::purchaseProduct(const char * productId) 
{
	RDebug::Printf("SymbianClientApiHelper::purchaseProduct");
	if (!m_miniIAPSymbianClient) return false;
	if (isPurchaseRunning) return false;
	if (!m_IAPClient) return false;

	isPurchaseRunning = ETrue;
    bool result = false;
    TText8 *productIdAsText = (TText8 *)productId;
    TPtr8 ptrTo(m_productIdAsText, KMaxProductIdLength);
    TPtrC8 ptrFrom(productIdAsText);
    if (ptrFrom.Size() >= KMaxProductIdLength) {
    	RDebug::Printf("SymbianClientApiHelper::purchaseProduct: too long");
    	return false;
    }
    ptrTo.Zero();
    TBuf<KMaxProductIdLength> productIdAsTBuf16;
    RDebug::Printf("pointerSize: %d %s",ptrTo.Size(), productId);
    RDebug::RawPrint(productIdAsTBuf16);
    productIdAsTBuf16.Copy(ptrFrom);
    ptrTo.Copy(ptrFrom);
    ptrTo.Append('\0');
    m_requestId = m_IAPClient->PurchaseProduct(productIdAsTBuf16, CIAPSymbianClientApi::EForcedAutomaticRestoration);
    // @TODO: fix this to "(m_requestId >= 0)" comparison when IAP is working ok!
    if (m_requestId >= 0) {
    	RDebug::Printf("SymbianClientApiHelper::purchaseProduct: started OK, m_requestId == %d",m_requestId);
    	result = true;
    }
    else {
    	RDebug::Printf("SymbianClientApiHelper::purchaseProduct: not started OK, m_requestId == %d",m_requestId);
    	clearPurchasing();
    	result = false;
    }
    return result;
}
Пример #4
0
bool MiniIAPQtClient::purchaseProduct(const char *productId)
{
    qDebug() << "MiniIAPQtClient::purchaseProduct >>>";
    prepare();

    if (!m_miniIAPReceiver) return false;
    if (isPurchaseRunning) {
        qDebug() << "already running";
        return false;
    }
    isPurchaseRunning = true;
    m_productId = productId;
    m_requestId = m_IAPClient->purchaseProduct(m_productId, IAPClient::ForcedAutomaticRestoration);
    bool result = false;
    if (m_requestId > 0) {
        qDebug() << "MiniIAPQtClient::purchaseProduct INITIATED" << m_requestId << m_productId;
        result = true;
    }
    else {
        clearPurchasing();
        qDebug() << "MiniIAPQtClient::purchaseProduct FAILED" << m_requestId;
    }
    return result;
}