Chuyển tới nội dung chính

Multi Purchase

Overview:

You only need to call this method to pay and the payment type will depend on the DzoSDK server.

Method:

    public void MultiPurchase(String _sku, String _itemID, String _roleID, String _gameTransaction, DzoMultiPurchaseCallback _callback)
TypeParameter NameTypeDescription
InputskustringStock Keeping Unit of this item.
Ex: "skutest_20k_vnd"
itemIDstringID of Item in your game.
Ex: "sword01"
roleIDstringUserID in game.
Ex: "User123456"
gameTransactionstringOrder code, transaction from the game.
Ex: "10938093890130192830"

With DzoMultiPurchaseCallback is defined:

    public interface DzoMultiPurchaseCallback {
public class Result {
public enum Status{
Success(0),
ProcessToServerError(-999), CheckLogicError(-997),
Failed(-996),
IAP_ProcessToStoreError(-99), IAP_Success_Payment_OtherAccount(-98);
IAP_User_Canceled(-97);
};

public TypeMultiPurchase typeMultiPurchase;
public DzoMultiPurchaseCallback.Result.Status status;
public int errorCode;
public String money;
public String transactionID;
public String sku;
public String itemID;
public String gameTransaction;
public String roleID;
public String lastHashID;
public String msg;
public IAPPaymentResend paymentResendData; // data verify send to server
}
public void callbackOnResult(DzoMultiPurchaseCallback.Result _result);
}

Example:

    DzoSDK.GetInstance().MultiPurchase(_sku, _itemID, _roleID, _gameTransaction, new DzoMultiPurchaseCallback() {
@Override
public void callbackOnResult(Result _result) {
try{
Log.d(DzoSDK.TAG, ">>> MultiPurchase callback --- status: " + _result.status + " | errorCode: " + _result.errorCode + " | typePurchase: " + _result.typeMultiPurchase.toString() + " | money: " + _result.money + " | transactionID: " + _result.transactionID + " | sku: " + _result.sku + " | itemID: " + _result.itemID + " | roleID: " + _result.roleID + " | gameTransaction: " + _result.gameTransaction + " | lastHashID: " + _result.lastHashID + " | msg: " + _result.msg);

if(_result.status == DzoMultiPurchaseCallback.Result.Status.Success){
Log.d(DzoSDK.TAG, ">>> MultiPurchase | Success --- money: " + _result.money
+ " | transactionID: " + _result.transactionID + " | sku: " + _result.sku + " | lastHashID: " + _result.lastHashID);
}else if(_result.status == Result.Status.IAP_Success_Payment_OtherAccount){
Log.d(DzoSDK.TAG, ">>> MultiPurchase | In-App Purchase | Success_Payment_OtherAccount --- money: " + _result.money
+ " | transactionID: " + _result.transactionID + " | sku: " + _result.sku + " | lastHashID: " + _result.lastHashID);
}else if(_result.status == Result.Status.Failed){
Log.d(DzoSDK.TAG, ">>> MultiPurchase | Failed | errorCode: " + _result.errorCode + " | msg: " + _result.msg);
}else if(_result.status == DzoMultiPurchaseCallback.Result.Status.CheckLogicError){
Log.d(DzoSDK.TAG, ">>> MultiPurchase | CheckLogicError| errorCode: " + _result.errorCode + " | msg: " + _result.msg);
}else if(_result.status == DzoMultiPurchaseCallback.Result.Status.IAP_ProcessToStoreError){
Log.d(DzoSDK.TAG, ">>> MultiPurchase | In-App Purchase | Process to Store error: --- errorCode: " + _result.errorCode + " | msg: " + _result.msg);
}else if(_result.status == Result.Status.IAP_User_Canceled){ // New Update
Log.d(DzoSDK.TAG, ">>> MultiPurchase | In-App Purchase | IAP_User_Canceled");
}else{ // In-App Success but verify to server error.
Log.e(DzoSDK.TAG, ">>> MultiPurchase | In-App Purchase Success but verify to server error. You must save this receiptData and re-send to server.\nsku: " + _result.paymentResendData.sku + " | itemID: " + _result.paymentResendData.itemID + " | roleID: " + _result.paymentResendData.roleID + " | gameTransaction: " + _result.paymentResendData.gameTransaction
+ " | errorCode: " + _result.errorCode + " | msg: " + _result.msg + " | jsonStringPayment: " + _result.paymentResendData.jsonStringPayment);
}
}catch (Exception _ex){
Log.e(DzoSDK.TAG, "MultiPurchase Error: "+ _ex);
}
}
});