회원이 결제를 하고나서, SMS를 발송하게끔 작업을 했는데,
어떤회원은 발송이 되고, 어떤 회원은 발송이 안되는 문제가 있는데, 조언 좀 부탁드립니다.
private int SMSSendCnt = 0;
IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() {
public void onIabPurchaseFinished(IabResult result, Purchase purchase) {
Log.d(Settings.TAG, "Purchase finished: " + result + ", purchase: "
+ purchase); //결제 완료 되었을때 각종 결제 정보들을 볼 수 있습니다. 이정보들을 서버에 저장해 놓아야 결제 취소시 변경된 정보를 관리 할 수 있을것 같습니다~
if (purchase != null) {
if (!verifyDeveloperPayload(purchase)) {
Log.d(Settings.TAG, "Error purchasing. Authenticity verification failed.");
}
if (SMSSendCnt < 1){
SmsManager smsManager = SmsManager.getDefault();
TelephonyManager systemService = (TelephonyManager)getSystemService (Context.TELEPHONY_SERVICE);
String sMyPhoneNum = systemService.getLine1Number();
String myMessage = sMyPhoneNum + " 님 께서 " + msgBuy + " 구매를 하셨습니다.";
smsManager.sendTextMessage("010-1111-1111", null, myMessage, null, null);
SMSSendCnt = 1;
}
mHelper.consumeAsync(purchase, mConsumeFinishedListener);
} else {
showToast("결제가 취소 되었습니다. 다시 결제 부탁드립니다.");
}
}
};
// Called when consumption is complete
IabHelper.OnConsumeFinishedListener mConsumeFinishedListener = new IabHelper.OnConsumeFinishedListener() {
public void onConsumeFinished(Purchase purchase, IabResult result) {
Log.d(Settings.TAG, "Consumption finished. Purchase: " + purchase + ", result: " + result);
if (SMSSendCnt < 1){
SmsManager smsManager = SmsManager.getDefault();
TelephonyManager systemService = (TelephonyManager)getSystemService (Context.TELEPHONY_SERVICE);
String sMyPhoneNum = systemService.getLine1Number();
String myMessage = sMyPhoneNum + " 님 께서 " + msgBuy + " 구매를 하셨습니다.";
smsManager.sendTextMessage("010-1111-1111", null, myMessage, null, null);
SMSSendCnt = 1;
}
showToast(msgBuy + " 결제 되었습니다.");
SendConsumeResult(purchase, result);
}
};