Skip to content

Commit d16d71f

Browse files
committed
add meta to rave initializer
1 parent ae07404 commit d16d71f

File tree

9 files changed

+109
-13
lines changed

9 files changed

+109
-13
lines changed

app/src/main/java/com/flutterwave/rave_android/MainActivity.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,21 @@
44
import android.support.v7.app.AppCompatActivity;
55
import android.os.Bundle;
66
import android.support.v7.widget.SwitchCompat;
7+
import android.util.Log;
78
import android.view.View;
89
import android.widget.Button;
910
import android.widget.EditText;
1011
import android.widget.Toast;
12+
13+
import com.flutterwave.raveandroid.Meta;
1114
import com.flutterwave.raveandroid.RaveConstants;
1215
import com.flutterwave.raveandroid.RavePayActivity;
1316
import com.flutterwave.raveandroid.RavePayManager;
1417
import com.flutterwave.raveandroid.Utils;
1518

19+
import java.util.ArrayList;
20+
import java.util.List;
21+
1622

1723
public class MainActivity extends AppCompatActivity {
1824

@@ -30,6 +36,7 @@ public class MainActivity extends AppCompatActivity {
3036
SwitchCompat cardSwitch;
3137
SwitchCompat accountSwitch;
3238
SwitchCompat isLiveSwitch;
39+
List<Meta> meta = new ArrayList<>();
3340

3441
@Override
3542
protected void onCreate(Bundle savedInstanceState) {
@@ -54,6 +61,9 @@ protected void onCreate(Bundle savedInstanceState) {
5461
publicKeyEt.setText(RaveConstants.PUBLIC_KEY);
5562
secretKeyEt.setText(RaveConstants.PRIVATE_KEY);
5663

64+
meta.add(new Meta("test key 1", "test value 1"));
65+
meta.add(new Meta("test key 2", "test value 2"));
66+
5767
startPayBtn.setOnClickListener(new View.OnClickListener() {
5868
@Override
5969
public void onClick(View v) {
@@ -128,6 +138,7 @@ private void validateEntries() {
128138
.acceptAccountPayments(accountSwitch.isChecked())
129139
.acceptCardPayments(cardSwitch.isChecked())
130140
.onStagingEnv(!isLiveSwitch.isChecked())
141+
.setMeta(meta)
131142
// .withTheme(R.style.TestNewTheme)
132143
.initialize();
133144

@@ -140,6 +151,7 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
140151
if (requestCode == RaveConstants.RAVE_REQUEST_CODE && data != null) {
141152

142153
String message = data.getStringExtra("response");
154+
Log.d("rave response", message);
143155

144156
if (resultCode == RavePayActivity.RESULT_SUCCESS) {
145157
Toast.makeText(this, "SUCCESS " + message, Toast.LENGTH_SHORT).show();
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.flutterwave.raveandroid;
2+
3+
/**
4+
* Created by hamzafetuga on 28/11/2017.
5+
*/
6+
7+
public class Meta {
8+
9+
public Meta(String metaname, String metavalue) {
10+
this.metaname = metaname;
11+
this.metavalue = metavalue;
12+
}
13+
14+
String metavalue;
15+
16+
public String getMetavalue() {
17+
return metavalue;
18+
}
19+
20+
public void setMetavalue(String metavalue) {
21+
this.metavalue = metavalue;
22+
}
23+
24+
public String getMetaname() {
25+
return metaname;
26+
}
27+
28+
public void setMetaname(String metaname) {
29+
this.metaname = metaname;
30+
}
31+
32+
String metaname;
33+
}

raveandroid/src/main/java/com/flutterwave/raveandroid/Payload.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import com.google.gson.annotations.SerializedName;
44

5+
import java.util.List;
6+
57
/**
68
* Created by hamzafetuga on 05/07/2017.
79
*/
@@ -14,7 +16,7 @@ public String getCardBIN() {
1416

1517
private String cardBIN;
1618

17-
public Payload(String meta, String narration,
19+
public Payload(List<Meta> meta, String narration,
1820
String expirymonth, String PBFPubKey, String IP, String lastname,
1921
String firstname, String currency, String country, String amount,
2022
String email, String expiryyear, String cvv, String device_fingerprint,
@@ -38,7 +40,7 @@ public Payload(String meta, String narration,
3840
}
3941

4042

41-
public Payload(String meta, String narration, String IP, String accountnumber, String accountbank,
43+
public Payload(List<Meta> meta, String narration, String IP, String accountnumber, String accountbank,
4244
String lastname, String firstname, String currency, String country, String amount,
4345
String email, String device_fingerprint, String txRef, String PBFPubKey) {
4446
this.meta = meta;
@@ -67,13 +69,11 @@ public void setToken(String token) {
6769

6870
String token;
6971

70-
71-
72-
public String getMeta() {
72+
public List<Meta> getMeta() {
7373
return meta;
7474
}
7575

76-
public void setMeta(String meta) {
76+
public void setMeta(List<Meta> meta) {
7777
this.meta = meta;
7878
}
7979

@@ -110,7 +110,7 @@ public void setSECKEY(String SECKEY) {
110110
@SerializedName("suggested_auth")
111111
private String suggestedAuth;
112112

113-
private String meta;
113+
private List<Meta> meta;
114114

115115
public String getBillingzip() {
116116
return billingzip;

raveandroid/src/main/java/com/flutterwave/raveandroid/PayloadBuilder.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.flutterwave.raveandroid;
22

3+
import java.util.List;
4+
35
public class PayloadBuilder {
46
private String expirymonth;
57
private String pbfPubKey;
@@ -16,7 +18,7 @@ public class PayloadBuilder {
1618
private String cardno;
1719

1820
private String txRef;
19-
private String meta;
21+
private String meta = "";
2022

2123
public PayloadBuilder setCustomer_phone(String customer_phone) {
2224
this.customer_phone = customer_phone;
@@ -115,7 +117,9 @@ public PayloadBuilder setTxRef(String txRef) {
115117
}
116118

117119
public Payload createPayload() {
118-
return new Payload(meta, narration, expirymonth,
120+
List<Meta> metaObj = Utils.pojofyMetaString(meta);
121+
122+
return new Payload(metaObj, narration, expirymonth,
119123
pbfPubKey, ip, lastname,
120124
firstname, currency, country,
121125
amount, email, expiryyear,
@@ -124,7 +128,8 @@ public Payload createPayload() {
124128
}
125129

126130
public Payload createBankPayload() {
127-
Payload payload = new Payload(meta, narration, ip, accountnumber, accountbank, lastname,
131+
List<Meta> metaObj = Utils.pojofyMetaString(meta);
132+
Payload payload = new Payload(metaObj, narration, ip, accountnumber, accountbank, lastname,
128133
firstname, currency, country, amount, email, device_fingerprint, txRef, pbfPubKey);
129134
payload.setPayment_type("account");
130135
return payload;

raveandroid/src/main/java/com/flutterwave/raveandroid/RavePayInitializer.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import org.parceler.Parcel;
44

5+
import java.util.List;
6+
57
/**
68
* Created by hamzafetuga on 21/07/2017.
79
*/
@@ -18,6 +20,7 @@ public class RavePayInitializer {
1820
String country;
1921
String fName;
2022
String lName;
23+
String meta;
2124
boolean withCard = true;
2225
boolean withAccount = true;
2326
int theme;
@@ -29,7 +32,7 @@ public RavePayInitializer(String email, double amount, String publicKey,
2932
String currency, String country, String fName,
3033
String lName, boolean withCard,
3134
boolean withAccount, int theme,
32-
boolean staging, boolean allowSaveCard) {
35+
boolean staging, boolean allowSaveCard, String meta) {
3336
this.email = email;
3437
this.amount = amount;
3538
this.publicKey = publicKey;
@@ -45,11 +48,20 @@ public RavePayInitializer(String email, double amount, String publicKey,
4548
this.theme = theme;
4649
this.staging = staging;
4750
this.allowSaveCard = allowSaveCard;
51+
this.meta = meta;
4852
}
4953

5054
public RavePayInitializer() {
5155
}
5256

57+
public String getMeta() {
58+
return meta;
59+
}
60+
61+
public void setMeta(String meta) {
62+
this.meta = meta;
63+
}
64+
5365
public boolean isAllowSaveCard() {
5466
return allowSaveCard;
5567
}

raveandroid/src/main/java/com/flutterwave/raveandroid/RavePayManager.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@
55
import android.util.Log;
66

77
import org.parceler.Parcels;
8+
9+
import java.util.ArrayList;
10+
import java.util.List;
11+
812
import static com.flutterwave.raveandroid.RaveConstants.RAVEPAY;
913
import static com.flutterwave.raveandroid.RaveConstants.RAVE_PARAMS;
1014
import static com.flutterwave.raveandroid.RaveConstants.RAVE_REQUEST_CODE;
@@ -20,6 +24,7 @@ public class RavePayManager {
2024
private String country = "NG";
2125
private String fName = "";
2226
private String lName = "";
27+
private String meta = "";
2328
private Activity activity;
2429
boolean withCard = true;
2530
boolean withAccount = true;
@@ -56,6 +61,11 @@ public RavePayManager acceptAccountPayments(boolean withAccount) {
5661
return this;
5762
}
5863

64+
public RavePayManager setMeta(List<Meta> meta) {
65+
this.meta = Utils.stringifyMeta(meta);
66+
return this;
67+
}
68+
5969

6070
public RavePayManager setEmail(String email) {
6171
this.email = email;
@@ -111,6 +121,7 @@ public RavePayManager setlName(String lName) {
111121

112122
public void initialize() {
113123
if (activity != null) {
124+
114125
Intent intent = new Intent(activity, RavePayActivity.class);
115126
intent.putExtra(RAVE_PARAMS, Parcels.wrap(createRavePayInitializer()));
116127
activity.startActivityForResult(intent, RAVE_REQUEST_CODE) ;
@@ -121,6 +132,6 @@ public void initialize() {
121132
}
122133

123134
public RavePayInitializer createRavePayInitializer() {
124-
return new RavePayInitializer(email, amount, publicKey, secretKey, txRef, narration, currency, country, fName, lName, withCard, withAccount, theme, staging, allowSaveCard);
135+
return new RavePayInitializer(email, amount, publicKey, secretKey, txRef, narration, currency, country, fName, lName, withCard, withAccount, theme, staging, allowSaveCard, meta);
125136
}
126137
}

raveandroid/src/main/java/com/flutterwave/raveandroid/Utils.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import java.lang.reflect.Type;
1818
import java.security.GeneralSecurityException;
1919
import java.security.MessageDigest;
20+
import java.util.List;
2021

2122
import javax.crypto.Cipher;
2223
import javax.crypto.spec.SecretKeySpec;
@@ -106,6 +107,25 @@ public static String convertChargeRequestPayloadToJson(Payload body) {
106107
return gson.toJson(body, type);
107108
}
108109

110+
public static List<Meta> pojofyMetaString(String meta) {
111+
try {
112+
Gson gson = new Gson();
113+
Type type = new TypeToken<List<Meta>>() {
114+
}.getType();
115+
return gson.fromJson(meta, type);
116+
}
117+
catch (Exception e) {
118+
e.printStackTrace();
119+
return null;
120+
}
121+
}
122+
123+
public static String stringifyMeta(List<Meta> meta) {
124+
Gson gson = new Gson();
125+
Type type = new TypeToken<List<Meta>>() {}.getType();
126+
return gson.toJson(meta, type);
127+
}
128+
109129
public static String getEncryptedData(String unEncryptedString, String secret) {
110130
try {
111131
// hash the secret

raveandroid/src/main/java/com/flutterwave/raveandroid/account/AccountFragment.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,7 @@ private void validateDetails() {
231231
.setDevice_fingerprint(Utils.getDeviceImei(getActivity()))
232232
.setIP(Utils.getDeviceImei(getActivity())).setTxRef(txRef)
233233
.setAccountbank(selectedBank.getBankcode())
234+
.setMeta(ravePayInitializer.getMeta())
234235
.setAccountnumber(accountNo);
235236

236237
Payload body = builder.createBankPayload();

raveandroid/src/main/java/com/flutterwave/raveandroid/card/CardFragment.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,7 @@ private void validateDetails() {
334334
.setCvv(cvv).setEmail(email).setFirstname(ravePayInitializer.getfName())
335335
.setLastname(ravePayInitializer.getlName()).setIP(Utils.getDeviceImei(getActivity())).setTxRef(ravePayInitializer.getTxRef())
336336
.setExpiryyear(expiryDate.substring(3,5)).setExpirymonth(expiryDate.substring(0,2))
337+
.setMeta(ravePayInitializer.getMeta())
337338
.setPBFPubKey(ravePayInitializer.getPublicKey()).setDevice_fingerprint(Utils.getDeviceImei(getActivity()));
338339

339340
Payload body = builder.createPayload();
@@ -638,7 +639,8 @@ public void onTokenRetrieved(String flwRef, String cardBIN, String token) {
638639
.setLastname(ravePayInitializer.getlName())
639640
.setIP(Utils.getDeviceImei(getActivity()))
640641
.setTxRef(ravePayInitializer.getTxRef())
641-
.setDevice_fingerprint(Utils.getDeviceImei(getActivity()));
642+
.setDevice_fingerprint(Utils.getDeviceImei(getActivity()))
643+
.setMeta(ravePayInitializer.getMeta());
642644

643645
Payload body = builder.createPayload();
644646
body.setToken(token);

0 commit comments

Comments
 (0)