Не удается передать дополнительные данные из фрагмента платежа в Poynt - PullRequest
0 голосов
/ 24 мая 2018

Я работаю над приложением для POS-системы Poynt и пытаюсь интегрировать пользовательский платеж, как показано в их примере, найденном здесь

В этом примере в PaymentActivity.java, есть некоторый код, который создает намерение при получении платежа, добавляет к нему некоторые дополнительные данные и отправляет его:

@Override
public void onFragmentInteraction(Transaction transaction, PoyntError error) {
    // Create intent to deliver some kind of result data
    Intent result = new Intent(Intents.ACTION_COLLECT_PAYMENT_RESULT);
    result.putExtra("transaction", transaction);
    result.putExtra("error", error);
    result.putExtra("test", true);
    if (error == null) {
        setResult(Activity.RESULT_OK, result);
    }else{
        setResult(Activity.RESULT_CANCELED, result);
    }
    finish();
}

Вернувшись к действию, с которого начался фрагмент платежа Poynt, естьобработчик результата деятельности.Этот обработчик принимает намерение в качестве параметра, но похоже, что это намерение отличается от того, которое создано в PaymentActivity:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == Activity.RESULT_OK) {
        if (data != null) {
            Payment payment = data.getParcelableExtra(Intents.INTENT_EXTRAS_PAYMENT);
            Log.d("ConfigurationTest", "Received onPaymentAction from PaymentFragment w/ Status:" + payment.getStatus());

            if (payment.getTransactions() != null && payment.getTransactions().size() > 0) {
                Transaction transaction = payment.getTransactions().get(0);
                Gson gson = new GsonBuilder().setPrettyPrinting().create();
                Type transactionType = new TypeToken<Transaction>() {
                }.getType();
                //logReceivedMessage(gson.toJson(transaction, transactionType));
            }
        }
    }

    Boolean test = data.getBooleanExtra("test", false);
    Log.d("Sample", test.toString());   // this value will be false
}

Параметр данных не имеет дополнительного поля test.Он также не имеет transaction или error.Есть идеи, почему это так?

...