1

Ich habe eine ionische App, die ich versuche, meine Stripe Token zu senden, für die Zahlungsabwicklung. Wenn ich die Anfrage an den Server node mit curl sende, wird die Anfrage empfangen. Wenn ich jedoch versuche, die Anfrage über das http-Modul von Angular zu senden, wird es überhaupt nicht registriert. All dies wird derzeit lokal getestet, sodass dies möglicherweise Teil des Problems sein könnte.http-Anfrage in Ionic mit Angular http senden

HTML

<button (click)="testPost()" ion-button full>TEST POST</button> 

cart.ts

... 
import {Http, Headers, RequestOptions} from '@angular/http'; 
import { Stripe } from '@ionic-native/stripe'; 

@Component({ 
selector: 'page-cart', 
templateUrl: 'cart.html', 
}) 
export class Cart { 

    constructor(
    ... 
    private http: Http, 
    private stripe: Stripe 
    ) { 
     // 
    });  
    } 

    testPost() { 
    var headers = new Headers(); 
    headers.append("Accept", 'application/json'); 
    headers.append('Content-Type', 'application/json'); 
    let options = new RequestOptions({ headers: headers }); 

    let postParams = { 
     body: { 
     token: 'axqrexample123tokenbasdflkjo3', 
     amount: 225 
     } 
    } 

    this.http.post("http://11.1.1.7:3100/charge", postParams, options) 
     .subscribe(data => { 
     console.log(data['_body']); 
     }, error => { 
     console.log(error);// Error getting the data 
     }); 
    } 

} 

NODE SERVER

var express = require('express'); 
var app = express(); 
var bodyParser = require('body-parser'); 
var stripe = require("stripe")("sk_test_abcTAdefgn1oDexamplex"); 

app.use(bodyParser.json()); 

app.post('/charge', function (req, res) { 

    var token = req.body.token; 
    var amount = req.body.amount; 
    stripe.charges.create({ 
    amount: amount, 
    currency: "usd", 
    source: token, // obtained with Stripe.js 
    description: "Charge for [email protected]" 
    }, function(err, charge) { 
    // asynchronously called 
    }); 
    res.send('Hello World!') 
}); 


app.listen(3100, function() { 
    console.log('Example app listening on port 3100!') 
}) 

Antwort

1

Ich glaube, Sie th eine Karte brauchen e Anfrage vor

this.http.post("http://11.1.1.7:3100/charge", postParams, options) 
     .map(res => res.json()) 
     .subscribe(data => { 
     console.log(data['_body']); 
     }, error => { 
     console.log(error);// Error getting the data 
     }); 

auch die rxjs

import 'rxjs/Rx'; 
0

importieren auf die Anforderung der abonnieren möchte ich versuchen würde, dies in der stripe.charges.create Rückruf und sehen, was passiert:

}, function(err, charge) { 
    if (err) throw err; 

    console.log('Charge ID:', charge.id); 

    res.send('Hello World!'); 
}); 
+0

die Fehlermeldung kommt von 'cart.ts', die die Anfrage nicht stellen wird ... es erreicht den Node Server nicht. Der Node Server selbst funktioniert korrekt. – maudulus

+0

Was ist die Fehlermeldung? Ihr Beitrag enthielt keine Fehlermeldung. – floatingLomas