Zunächst einmal, bitte verzeih mir, wenn dies als vage angesehen wird, dies ist meine erste Zeit bei Stack Exchange.
Hoffentlich ist dies keine schlechte Frage, ich habe darüber nachgedacht, obwohl es Vertrautheit mit CURL, Stripe und Angular voraussetzt.
Auf das Problem:
Ich versuche, die Ergebnisse einer CURL an den Stripe-API mit Angularjs von $ http und mit etwas Mühe dabei neu zu erstellen.
Mit CURL, ich bin in der Lage eine Karte Token zu erstellen, wie folgt:
curl -X POST https://api.stripe.com/v1/tokens \
-u MY_TEST_KEY: \
-d "card[number]"=4242424242424242 \
-d "card[exp_month]"=12 \
-d "card[exp_year]"=2017 \
-d "card[cvc]"=123
Das gibt mir so etwas wie „tok_blahblahbcryptnonsense“
Allerdings kann ich nicht dieses CURL in eine Winkel $ zu übersetzen scheinen http-Funktion, und ich bekomme einen Statuscode 400 zurück mit der Nachricht "Sie müssen die vollständigen Kartendetails übergeben, um ein Token zu erstellen."
$http({
method: 'POST',
url: 'https://api.stripe.com/v1/tokens',
headers: {
'content-type': 'application/json',
'Authorization': 'Bearer MY_TEST_KEY'
},
params: {
card: {
"number": '4242424242424242', // I have tried this as
// an integer and string
// Stripe docs say string
"exp_month": 12,
"exp_year": 2017,
"cvc": '123' // I have tried this as
// an integer and string
// Stripe docs don't specify but I think string
}
}
}).then(function(success){
console.log('success ', success)
}, function(error){
console.log('error ', error) // gets here, this is where the message is
})
Soweit mein Verständnis geht, ist dies absolut möglich. Alles, was ich brauche, ist ein Token für diese Karte zu erstellen. Es wird spät und es könnte eine völlig offensichtliche Lösung sein und ich bin zu müde.
Öffnen Sie die Entwickler-Tools von Ihrem Browser und klicken Sie auf die Registerkarte Netzwerk. Dann sende deine Anfrage. Sehen Sie sich dann den Hauptteil der Anfrage auf der Registerkarte Netzwerk an. Wie sieht es aus? –
Wow, mir ist schon peinlich, hätte viel konkreter sein sollen. Ich führe diesen Code in ionischen, auf emulierten iPhone 5s - iOS 9.2 mit Live-Reload und Konsole aktiviert. Der Code selbst ist nur eckig, also dachte ich mir, die Frage so zu stellen. Ich denke, ich werfe das in ein anderes eckiges Projekt und schau es mir schnell an. –
@SamuelPolicar: Nur ein Kopf, aus Gründen der PCI-Compliance sollten Sie * die * HTTP-Anfrage nicht selbst machen. Sie sollten stattdessen Stripe Checkout oder Stripe.js verwenden. – koopajah