2017-03-14 2 views
1

Ich habe den folgenden Code, wo ich Stripe-Zahlung in Android-Anwendung implementieren möchte. Bitte sagen Sie, wie dieses Problem ich kann lösen, wenn ich Kartennummer dinamically in Code wie this:card = new Card("4242424242421111", 12, 2019, "123"); dann gebe, nachdem Erfolgstoken erschafft, aber ich kann Kartennummer nicht dynamisch jedesmal geben. so dass ich CardInputWidget in meinem XML-Layout hinzugefügt habe und schreibt diesen Code:Streifen Zahlung Integration in Android Fehler java.lang.RuntimeException: Erforderlich Parameter: 'Karte' ist erforderlich, um ein Token zu erstellen

CardInputWidget mCardInputWidget = (CardInputWidget) findViewById(R.id.card_input_widget); 
card = mCardInputWidget.getCard(); 

dann j ava.lang.RuntimeException: Required Parameter: ‚Karte‘ wird benötigt, um ein Token zu erstellen, wie ich diese Probleme lösen kann ich das seit dem letzten 1 Tag zu lösen versuchen aber nicht in der Lage

meine vollständigen Code zu lösen:

Card card; 
    public static final String PUBLISHABLE_KEY = "pk_test_djaC9oh3D3xwh8FxOjh7pnew"; 
     private ProgressDialog progress; 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_maincard); 
      btnsubmit= (Button) findViewById(R.id.btnsubmit); 

      CardInputWidget mCardInputWidget = (CardInputWidget) findViewById(R.id.card_input_widget); 

      card = mCardInputWidget.getCard(); 

     //  card = new Card("4242424242424242", 12, 2018, "123"); 
      if (card == null) { 
       // mErrorDialogHandler.showError("Invalid Card Data"); 

       Stripe stripe = null; 
       try { 
        stripe = new Stripe(MainActivity.this, PUBLISHABLE_KEY); 
       } catch (AuthenticationException e) { 
        e.printStackTrace(); 
       } 
       stripe.createToken(
         card, 
         new TokenCallback() { 
          public void onSuccess(Token token) { 
           // Send token to your server 
           Log.d("token","token"+token); 
          } 
          public void onError(Exception error) { 
           // Show localized error message 
           Log.d("token","excep"+error.getMessage()); 

          } 
         } 
       ); 
      }` 

activity_maincard.xml:

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:id="@+id/activity_main" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:paddingBottom="@dimen/activity_vertical_margin" 
     android:paddingLeft="@dimen/activity_horizontal_margin" 
     android:paddingRight="@dimen/activity_horizontal_margin" 
     android:paddingTop="@dimen/activity_vertical_margin" 
     tools:context="com.mspl.stripepay.MainActivity" 
     xmlns:wallet="http://schemas.android.com/apk/res-auto"> 

     <com.stripe.android.view.CardInputWidget 
      android:id="@+id/card_input_widget" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      /> 
    </RelativeLayout> 

Dies ist meine Xml enthält CardInputWidget Bitte versuchen Sie zu helfen, danke im Voraus.

Antwort

1
Finally i got my solution to get Card Information using CardInputWidget code: 
I am giving my own answer here to get card Information.` if(mCardInputWidget.getCard()!=null){ 
        String cvv= mCardInputWidget.getCard().getCVC(); 
        int exp= mCardInputWidget.getCard().getExpMonth(); 
        int exp_year= mCardInputWidget.getCard().getExpYear(); 
        String card_num= mCardInputWidget.getCard().getNumber(); 

        card = new Card(card_num, exp, exp_year, cvv);` 
Verwandte Themen