Monday, April 27, 2015

Android LG U+ IAP(인앱결제) 라이브러리 예제

LG U+ 인앱 결제 라이브러리 예제이다. LG U+의 공식 예제에는 액티비티를 상속받게 되어 있는데 상속 안받는 버전으로 변경해 보았다.

package com.example.lgtsample;

import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

import com.feelingk.lguiab.LguIAPLib;
import com.feelingk.lguiab.LguIAPLib.OnClientListener;
import com.feelingk.lguiab.vo.IAPLibSetting;
import com.feelingk.lguiab.vo.ProductItemInfo;
import com.feelingk.lguiab.vo.UseItemInfo;

//public class MainActivity extends LguIAPLib {
public class MainActivity extends Activity {

/** IAP Library Init */
private LguIAPLib mIAPLib = null;

private IAPLibSetting setting = null;
private final String lgt_aid = "Q0201083****";

private String mTestAppID = "Q0201083****"; // AppID (개발)
private String mTestPID = "Q02D1083****"; // PID

private String mTestBpIP = null; // BPIP
private String mTestBpPort = "0"; // BPPort
private String mTestBpUri = null; // BPUri
private String mTestBpData = null; // BPData
private boolean serverType = false; // false: 개발기, true: 상용

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mIAPLib = new LguIAPLib();
initLGTStore();

Button payment = (Button) findViewById(R.id.payment);

payment.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// lguIABpopPurchaseDlg(MainActivity.this, lgt_aid,
// "Q02D10830139", null, null, setting);

mIAPLib.lguIABpopPurchaseDlg(MainActivity.this, mTestAppID, mTestPID,
mTestBpUri, mTestBpData, setting);

}
});
}

private OnClientListener mClientListener = new OnClientListener() {
private static final int LGT_BUY_STATE_OK = 0;
private static final int LGT_BUY_STATE_CANCEL = 1;
private static final int LGT_BUY_STATE_ERROR = 2;
private int mState = LGT_BUY_STATE_CANCEL;

@Override
public void lguIABonBuyVerifyComplete(String arg0, String arg1) {
// TODO Auto-generated method stub

}

@Override
public void lguIABonDlgClick() {
// TODO Auto-generated method stub
// OK, ERROR
switch (mState) {
case LGT_BUY_STATE_OK:
// CletActivity.handleSendBuyEvent(M_E_SUCCESS, 0);
break;
case LGT_BUY_STATE_ERROR:
// CletActivity.handleSendBuyEvent(M_E_ERROR, 0);
break;
}
}

@Override
public void lguIABonDlgPurchaseCancel() {
// TODO Auto-generated method stub
mState = LGT_BUY_STATE_CANCEL;
// CletActivity
// .handleSendBuyEvent(M_E_PAYMENT_CANCELED, 0);
}

@Override
public void lguIABonError(int arg0, int arg1) {
// TODO Auto-generated method stub
mState = LGT_BUY_STATE_ERROR;
// 다음에 DlgClick이 불림
}

@Override
public void lguIABonItemAuthInfo(ProductItemInfo arg0) {
// TODO Auto-generated method stub

}

@Override
public void lguIABonItemPurchaseComplete(String arg0, String arg1) {
// TODO Auto-generated method stub
mState = LGT_BUY_STATE_OK;
}

@Override
public boolean lguIABonItemQueryComplete() {
// TODO Auto-generated method stub

// 이게 true여야 함
return true;
}

@Override
public void lguIABonItemUseQuery(UseItemInfo arg0) {
// TODO Auto-generated method stub

}

@Override
public void lguIABonWholeQuery(List<ProductItemInfo> arg0) {
// TODO Auto-generated method stub

}

};

private void initLGTStore() {
// 라이브러리 설정
setting = new IAPLibSetting(this, mTestAppID, mTestBpIP, mTestBpPort,
serverType, mClientListener);
mIAPLib.LguIAPLibInit(setting);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}




No comments:

Post a Comment