Я не уверен, что я здесь делаю неправильно.
Я пытаюсь использовать средство проверки для полосы, используя эту документацию: https://stripe.com/docs/payments/checkout/accept-a-payment
I настроили мой API, чтобы просто вернуть checkoutid в виде строки. Служба Angular просто вызывает контроллер. Когда я запускаю свой код, я получаю хороший ответ 200, и я вижу идентификатор проверки в теле ответа, но Angular выдает ошибку:
SyntaxError: Unexpected token c in JSON в позиции 0 в JSON .parse () в XMLHttpRequest.onLoad (https://127.0.0.1: 4200 / vendor. js: 18780: 51 ) в ZoneDelegate.invokeTask
Служба выглядит так:
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { map } from 'rxjs/operators';
import { environment } from '@environments/environment';
@Injectable({
providedIn: 'root',
})
export class StripeService {
private endpoint: string = 'stripe';
constructor(private http: HttpClient) {}
checkout(priceId: string) {
return this.http
.get<string>(`${environment.apiUrl}/${this.endpoint}/${priceId}`)
.pipe(
map((response) => {
console.log(response);
return response;
})
);
}
}
и я вызываю ее так:
this.stripeService
.checkout(this.button.priceId)
.subscribe((checkoutId: string) => {
console.log(checkoutId);
// this.stripe
// .redirectToCheckout({
// sessionId: checkoutId,
// })
// .then(function (result) {
// // If `redirectToCheckout` fails due to a browser or network
// // error, display the localized error message to your customer
// // using `result.error.message`.
// });
});
Если я посмотрю на вкладку сети, я могу увидеть это:
Но на самом деле консоль показывает это:
Есть ли у кого-нибудь Скуби, почему?