【发布时间】:2021-07-26 08:45:27
【问题描述】:
我正在开发一个带有 PHP 后端的 Ionic 5 应用程序。我从 Stripe 文档中复制了代码并将其放入 try/catch 中,如下所示:
\Stripe\Stripe::setApiKey('sk_test_********************');
$postedChargeObject = file_get_contents("php://input");
$cO = json_decode($postedChargeObject);
try {
$charge = \Stripe\Charge::create([
'amount' => $cO->amount,
'currency' => 'usd',
'description' => 'charge test with token 2',
'source' => $cO->token,
]);
echo "success";
} catch(\Stripe\Error\Base $e){
echo($e->getMessage());
} catch (Exception $e){
echo $e;
}
使用 echo "success",我得到了一些意想不到的行为。 1)从我的服务器获得任何响应需要很长时间,并且 2)我在开发人员控制台中收到以下错误:
如果我注释掉 echo "success",它仍然需要几秒钟,但收费会通过,因为我可以在我的 Stripe 仪表板上看到它。
理想情况下,我希望我的 PHP 脚本使用 Stripe::create 对卡片进行收费,并将 Stripe charge object docs 中定义的收费对象返回给客户端脚本。所以不仅仅是echo "success",而是整个 Stripe 充电对象。
我调用 PHP 脚本的服务是:
chargeCardForOrder(chargeObj): Observable<any> {
let c = JSON.stringify(chargeObj);
console.log("stringified c from service", c);
return this.http.post(this.chargeUrl, c);
}
我调用服务的.ts文件是:
this.coService.chargeCardForOrder(cO).subscribe( resp => {
console.log( "response from server charge", resp );
})
附带说明,如果我从 PHP 脚本中取出 echo "success",则费用会按照我的 Stripe 仪表板进行,但控制台会显示 "response从服务器收费无效”。我很困惑我错过了什么。非常感谢您的帮助。
【问题讨论】:
标签: php ionic-framework stripe-payments