如何使用SQLite在Android App中实现“服务器端”条带代码

态度

我能够使用Stripes Android Walkthrough创建令牌但是现在我想创建一个客户并最终产生一笔费用,他们会在这里显示如何在你的服务器上做但是我正在使用SQLite作为数据库,因为此应用程序仅由少数人使用,并且仅由我自己加载到单个平板电脑上。所以我的问题是我可以在应用程序中创建客户而不必在应用程序中构建整个服务器端后端吗?

这是我创建令牌的代码,现在我要使用该令牌创建一个客户:(忽略应用程序的混乱情况,对不起,最终的应用程序将更加干净,只是尝试查看我是否可以使它正常工作)

package com.zeuspwr.zeuspower;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
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 {
    EditText fNameh;
    EditText lNameh;
    EditText emailh;
    EditText phoneNumh;
    EditText pinh;
    EditText cardNumberh;
    EditText cardCVCh;
    Spinner cardExpMonthh;
    Spinner cardExpYearh;
    String fname;
    String lname;
    String email;
    String phonenum;
    String pin;
    String cardNumber;
    String cardCVC;
    Integer cardExpMonth;
    Integer cardExpYear;
    String stripetok;
    Card cardNew;

    String cardExpMonthStr;
    String cardExpYearStr;

    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);

        fNameh = (EditText) findViewById(R.id.fNameNew);
        lNameh = (EditText) findViewById(R.id.lNameNew);
        emailh = (EditText) findViewById(R.id.emailNew);
        phoneNumh = (EditText) findViewById(R.id.phoneNew);
        pinh = (EditText) findViewById(R.id.pinNew);
        cardNumberh = (EditText) findViewById(R.id.cardNumNew);
        cardCVCh = (EditText) findViewById(R.id.cvcNew);
        cardExpMonthh = (Spinner) findViewById(R.id.monthNew);
        cardExpYearh = (Spinner) findViewById(R.id.yearNew);


        ImageButton createNewUser = (ImageButton) findViewById(R.id.createNew);



        createNewUser.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v)
            {

                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();
                cardExpMonthStr = cardExpMonthh.getSelectedItem().toString();
                cardExpYearStr = cardExpYearh.getSelectedItem().toString();
                cardExpMonth = Integer.valueOf(cardExpMonthStr);
                cardExpYear = Integer.valueOf(cardExpYearStr);

                cardNew = new Card(
                        cardNumber,
                        cardExpMonth,
                        cardExpYear,
                        cardCVC
                );

                if(cardNew.validateCard() & cardNew.validateCVC()) {
                    final 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();
                }



                /*Intent retPage = new Intent(BorroworReturn.this, returno.class);

                startActivity(retPage);*/
            }
        });
考帕雅

不幸的是,由于这些调用需要您的Secret API密钥,因此无法在Android应用程序中执行任何操作。您永远不要在Android应用程序中拥有Secret API密钥,否则攻击者可能会亲手使用它,然后代您创建费用,退款或转帐。

您需要做的是先创建一个卡令牌(已完成),然后将其发送到您的服务器,您将在其中使用您的密钥创建费用或客户。在您的Android应用程序中什么都不会发生。

您可以参考另一个问题:使用Android发送带区令牌的正确方法,以检查有关如何将令牌发送到服务器的一些Android代码。

在服务器端,您需要检索令牌,然后将其用于创建ChargeCustomer

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

服务器端javascript如何使用/实现?

如何在不使用 webhook 的情况下在服务器端确认条带支付?

如何实现服务器端SMTP STARTTLS?

如何实现jqGrid树的服务器端排序?

使用node.js实现服务器端

使用 SignalR 实现服务器端事件

如何在服务器端的Excel中实现“组织帐户”身份验证?

如何在AngularJS中实现服务器端搜索框

如何从 html 中获取数据从 AppScript 中返回到服务器端代码

Android中的JSON异常,服务器端带有PHP代码

最佳实践:如何在Maven存储库中托管服务器端代码

如何检查JavaScript是否在Node JS服务器端代码中启用

如何在CSHTML中编写服务器端代码

使用node.js中的readline模块调试服务器端代码

使用google.script.run在Google App脚本中运行服务器端功能

如何在服务器端Java代码中的Vaadin 10中获取浏览器窗口宽度

如何干净地检查HTTP返回代码在服务器端异常代码家族中

如何使用TextMode =“ Date”将服务器端代码中的值设置为asp.net TextBox?

客户端服务器应用程序如何实现?(服务器端)(询问概念)

div在服务器端使用C#中的div类在服务器端可见false

如何在ASP.net Core中实现dataTables服务器端分页/搜索/排序

如何使用node和mongo db实现服务器端渲染数据表?

在服务器端使用容器

如何为Firebase实现Node.Js服务器端事件侦听器?

如何检查代码是在GWT的服务器端还是客户端执行的?

如何从服务器端C#代码触发客户端JavaScript?

在客户端和服务器端使用相同的呈现代码

如何在 Asp.Net 的代码隐藏文件中访问服务器端控件?

寻找有关如何在服务器端(PHP 代码)解析 JSON 编码对象的帮助(在 wordpress 中)?