-1

I follow flow ipay88 starting setup payment object

payment = new IPayIHPayment();
                        payment.setMerchantKey(marchantKey);
                        payment.setMerchantCode(marchantCode);
                        payment.setPaymentId(generateId("WoW"));
                        payment.setRefNo(generateRefNo());
                        payment.setAmount(amount);
                        payment.setProdDesc(generateDescription());
                        payment.setUserName(nameUser);
                        payment.setUserEmail(emailUser);
                        payment.setUserContact(phoneUser);
                        payment.setRemark(generateRemark());
                        payment.setBackendPostURL(backendUrl);

                        Intent checkoutIntent = IPayIH.getInstance().checkout(payment, ipay88pay.this, new ResultDelegate(), IPayIH.ENV_PRODUCTION);

                        startActivityForResult(checkoutIntent, 1);

and class ResultDelegate :

public class ResultDelegate implements IPayIHResultDelegate, Serializable {

    @Override
    public void onPaymentSucceeded(String s, String s1, String s2, String s3, String s4, String s5, String s6, String s7, String s8) {
        showSuccessUpload();
    }

    @Override
    public void onPaymentFailed(String s, String s1, String s2, String s3, String s4, String s5, String s6, String s7, String s8) {
        Toast.makeText(context, "Pembayaran gagal. Sila cuba lagi!", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onPaymentCanceled(String s, String s1, String s2, String s3, String s4, String s5, String s6, String s7, String s8) {
        Toast.makeText(context, "Pembayaran batal. Sila cuba lagi!", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onRequeryResult(String s, String s1, String s2, String s3) {

    }

    @Override
    public void onConnectionError(String s, String s1, String s2, String s3, String s4, String s5, String s6) {
        Toast.makeText(context, "Masalah hubungan internet. Sila cuba lagi!", Toast.LENGTH_SHORT).show();
    }
}

and this is interface ipay88 try to serialize:

public interface IPayIHResultDelegate {
void onPaymentSucceeded(String var1, String var2, String var3, String var4, String var5, String var6, String var7, String var8, String var9);

void onPaymentFailed(String var1, String var2, String var3, String var4, String var5, String var6, String var7, String var8, String var9);

void onPaymentCanceled(String var1, String var2, String var3, String var4, String var5, String var6, String var7, String var8, String var9);

void onRequeryResult(String var1, String var2, String var3, String var4);

void onConnectionError(String var1, String var2, String var3, String var4, String var5, String var6, String var7);

}

at the end got this error:

Parcelable encountered IOException writing serializable object (name = {packageid}.ipay88pay$ResultDelegate Caused by: java.io.NotSerializableException:

Further I do reach to implement parcel but none of them also working. Anyone has the same problem like me appreciate sharing. tq.

Fantasy Fang
  • 6,106
  • 2
  • 25
  • 30
mohd hafiz
  • 47
  • 1
  • 5

1 Answers1

1

The error is telling you the problem; the object you are trying to serialize is not serializable, most likely because it contains a variable wich doesnt implement serializable, and you didnt override the wriiteobject and readobject methods.

You can take a look at Serialization - readObject writeObject overrides for more info on how to do this

Juanjo Martinez
  • 679
  • 7
  • 18
  • hi thanks for repyl, neither have doc ipay88 tell about implement Serializable. So sample that u give not same thing in ipay88 – mohd hafiz Jun 04 '19 at 08:13