1
我正在尝试集成Stripe以在我的Android应用程序中处理付款。尝试集成条纹时应用程序强制关闭
我有用户输入信用卡信息,然后我现在要做的就是创建一个令牌。但是当我点击按钮时,应用程序部队关闭。
这不是最终的应用程序将如何接受卡与磁条的工作,但我只是想获得一个了解我是如何将在未来
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Spinner;
import android.widget.Toast;
import com.stripe.android.*;
import com.stripe.android.model.Card;
import com.stripe.android.model.Token;
import com.stripe.android.Stripe;
import java.util.HashMap;
import java.util.Map;
public class newUser extends AppCompatActivity {
String fname;
String lname;
String email;
String phonenum;
String pin;
String cardNumber;
String cardCVC;
Integer cardExpMonth;
Integer cardExpYear;
String stripetok;
Card cardNew;
private static final String PUBLISHABLE_KEY = "pk_test_iUVdhdvJuurqSxIlXpzq32LS";
UserDBHelper newUserr;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_user);
newUserr = new UserDBHelper(newUser.this);
EditText fNameh = (EditText) findViewById(R.id.fNameNew);
EditText lNameh = (EditText) findViewById(R.id.lNameNew);
EditText emailh = (EditText) findViewById(R.id.emailNew);
EditText phoneNumh = (EditText) findViewById(R.id.phoneNew);
EditText pinh = (EditText) findViewById(R.id.pinNew);
EditText cardNumberh = (EditText) findViewById(R.id.cardNumNew);
EditText cardCVCh = (EditText) findViewById(R.id.cvcNew);
Spinner cardExpMonthh = (Spinner) findViewById(R.id.monthNew);
Spinner cardExpYearh = (Spinner) findViewById(R.id.yearNew);
fname = fNameh.getText().toString();
lname = lNameh.getText().toString();
email = emailh.getText().toString();
phonenum = phoneNumh.getText().toString();
pin = pinh.getText().toString();
cardNumber = cardNumberh.getText().toString();
cardCVC = cardCVCh.getText().toString();
cardExpMonth = (Integer) cardExpMonthh.getSelectedItem();
cardExpYear = (Integer) cardExpYearh.getSelectedItem();
cardNew = new Card(
cardNumber,
cardExpMonth,
cardExpYear,
cardCVC
);
ImageButton createNewUser = (ImageButton) findViewById(R.id.createNew);
createNewUser.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
if(cardNew.validateCard() & cardNew.validateCVC()) {
Stripe stripe = new Stripe();
stripe.createToken(cardNew, PUBLISHABLE_KEY, new TokenCallback() {
public void onSuccess(Token token) {
// TODO: Send Token information to your backend to initiate a charge
Toast.makeText(
getApplicationContext(),
"Token created: " + token.getId(),
Toast.LENGTH_LONG).show();
}
public void onError(Exception error) {
Log.d("Stripe", error.getLocalizedMessage());
}
});
}
else{
Toast.makeText(
getApplicationContext(),
"Token not made!",
Toast.LENGTH_LONG).show();
}
}
});
任何想法融入条纹为什么这是发生?我没有收到任何错误,但活动甚至无法加载。
我已经在依赖包括
compile 'com.stripe:stripe-android:2.0.2'
到应用程序的的build.gradle
感谢任何投入!
编辑1: 我相信这个问题可能是当我从字符串投射字符串到整数。
E/dalvikvm: Could not find class 'android.widget.ThemedSpinnerAdapter', referenced from method android.support.v7.widget.AppCompatSpinner$DropDownAdapter.<init>
W/dalvikvm: VFY: unable to resolve instanceof 2583 (Landroid/widget/ThemedSpinnerAdapter;) in Landroid/support/v7/widget/AppCompatSpinner$DropDownAdapter;
D/dalvikvm: VFY: replacing opcode 0x20 at 0x0016
D/AndroidRuntime: Shutting down VM
W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x416fcbc0)
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.zeuspwr.zeuspower, PID: 32121
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.zeuspwr.zeuspower/com.zeuspwr.zeuspower.newUser}: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2429)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2493)
at android.app.ActivityThread.access$800(ActivityThread.java:166)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5584)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
at com.zeuspwr.zeuspower.newUser.onCreate(newUser.java:62)
at android.app.Activity.performCreate(Activity.java:5447)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2393)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2493)
at android.app.ActivityThread.access$800(ActivityThread.java:166)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5584)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
at dalvik.system.NativeStart.main(Native Method)
I/Process: Sending signal. PID: 32121 SIG: 9
Application terminated.
提供的崩溃日志 –
你也都可以从在OnCreate文本字段中的值。这将在开始时假设为空或为空。让他们进入按钮点击 –
发布您的错误日志。 – Shailesh