- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试集成 Stripe 以在我的 Android 应用程序中处理付款。
我让用户输入信用卡信息,然后我现在要做的就是创建一个 token 。但是,当我单击该按钮时,应用会强制关闭。
这不是最终应用程序接受卡片和与 Stripe 一起工作的方式,但我只是想了解我将如何在未来集成 Stripe
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();
}
}
});
关于为什么会发生这种情况的任何想法?我没有收到任何错误,但 Activity 甚至不会加载。
我已经包含了
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.
最佳答案
改变
cardExpMonth = (Integer) cardExpMonthh.getSelectedItem();
cardExpYear = (Integer) cardExpYearh.getSelectedItem();
到
cardExpMonth = Integer.valueOf(cardExpMonthh.getSelectedItem());
cardExpYear = Integer.valueOf(cardExpYearh.getSelectedItem());
关于java - 尝试集成 Stripe 时应用强制关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41972154/
我可以在不使用收款人信用卡号的情况下将资金从我的 Stripe 账户发送到另一个 Stripe 账户吗?在我的网站中,我希望管理员将资金从他的帐户转移到用户的条纹帐户(而不是用户的银行帐户)。用户的
我曾经有 Angular Stripe Checkout 表单,我正在尝试将表单更新为新的 Stripe Card Elements这是最近推出的。 删除表单输入字段并将其替换为条纹卡片元素后,我的表
我的目标是为产品创建一个简单的支付页面。 在官方文档中,它说在服务器端需要生成 token 才能创建交易,使用: stripe.paymentIntents.create({ amount: re
我是 strip 的新手,打算使用 strip token /收费 api,但 strip 文档说 paymentIntent api 是新的方法。我可以使用任何人吗或 PaymentIntent 是
我正在开发一个项目,我们正在为 Node 使用 Stripe 库。我们还想在这个项目上使用 TypeScript。 我发现 Stripe 没有提供官方 TypeScript 定义,但我找到了一些社区定
通常在使用 stripe 时我可以创建产品并添加税率、运费。付款后我可以创建发票。我想在使用连接帐户时做同样的事情。在我的应用程序中,我希望用户创建商店,并且该商店的产品将保存到他们连接的 Strip
假设我们已经设置了一个 Stripe 订阅计划。即 30 美元/月。 (注意:账单/账户信息存储在 Stripe 上。) 假设我们想为客户提供提前购买一年服务的选项,如果他们这样做,他们只需支付 25
我们知道 Stripe 支持多张信用卡。一个是 default_card。关于这张 Stripe 多张卡片,我需要知道一些答案。 假设我想向我的客户收费,他的 Stripe 个人资料中有 3 张信用卡
有没有办法根据为特定客户生成的最后一张发票过滤发票结果? 穿过 Stripe documentation我可以看到有可能获得即将到来的发票,但我找不到获得最后生成的发票的方法。 最佳答案 如果您使用
我正在使用 Stripe 为客户订阅月度计划。中途客户可能会减少计划数量。所以,在即将开出的发票有时会是负数。 带有负金额的发票行是否意味着客户将这些金额退还到他们的卡中? 谢谢 最佳答案 是的,负发
我正在使用定期计划和电子邮件地址在 Stripe(使用测试模式)中创建客户。到目前为止,一切都按我的预期工作:当客户创建并注册到定期计划时,他们会自动在计划的第一期收费。我所拥有的几乎是逐字逐句wha
我正在尝试使用 Stripe checkout.js 订阅,然后使用 PHP 订阅客户。我的问题是获取他们的电子邮件地址。在文档中找不到任何有用的东西。 文档在这里:https://stripe.co
我在两部分付款过程中使用 Stripe。 IE。 使用 capture = false 对调用 Charge 对象的卡进行预授权 做一些数据库工作 使用电荷捕获为卡充电 如果第 2 步失败(即数据库工
我们使用 Stripe 作为支付网关,我们有一个年度计划,即该计划的计费周期为 1 年。 在计费周期内,用户可以更新选择更多席位,这将导致增加订阅计划的数量。 Subscription subscri
我正在使用 PHP Stripe Payment 表单来收款。付款似乎通过 OK 并在成功完成后将用户带到确认页面。我处于测试模式,能够看到显示在仪表板“付款”部分的付款。但是,当我单击仪表板的“主页
我正在构建一个市场应用程序。我正在使用 Stripe 接受买家付款并将百分比转移给卖家。但是,stripe 只能让您从 Stripe 余额中转移。因此,如果我接受需要 2 个工作日才能显示在我的 st
正如我们所知,Stripe 每张信用卡收费 2.9% + 30 美分。因此,对于每 1 美元的交易,Stripe 大约需要 33 美分。有没有办法批量处理多个 1 美元的交易(由同一客户)并完全收费?
我有一个关于 Stripe 的订阅计划,并将其用于按座位定价。 具体用例是: 客户之前已付款,因此数据库中的客户 ID 和订阅 ID 他们在一个月内删除了所有用户 下个月他们又添加了一个用户 我希望结
在Stripe API文档中,它们显示您可以在客户上应用优惠券。 cust = Stripe::Customer.retrieve("cus_asdasdad") cust.coupon = "COU
我在订阅中添加发票项目时遇到问题,目前无法正常工作。 我已经在 strip 上创建了一个发票项目,并且希望该发票项目包含在定期付款中 这是我的代码,它在第一个发票上添加了一个发票项目,但在下一个发票上
我是一名优秀的程序员,十分优秀!