Данные не могут быть прочитаны, потому что они не в правильном формате

Хорошо, после долгих поисков я не знаю, что происходит с этим, потому что я думал, что исправил, когда я заменил ключи, и это работало. Однако это больше не работает, и я ничего не изменил. Не сообщайте о дубликатах, пожалуйста, ни один из вопросов не был дан ответ.

    let URL = "http://localhost/donate/payment.php"let params: Dictionary<String,AnyObject> = ["stripeToken": token.tokenId,
"amount": Int(self.amountTextField.text!)!,
"currency": "usd",
"description": self.emailTextField.text!]let manager = AFHTTPSessionManager()
manager.responseSerializer.acceptableContentTypes = NSSet(array: ["text/plain", "text/html", "application/json"]) as! Set<String>

manager.PATCH(URL, parameters: params, success: { (operation, responseObject) -> Void in
guard let response = responseObject as? [String: String] else {
print("failed")
return
}
}) { (operation, error) -> Void in

self.handleError(error)
}

Вот мой php-код, который я получил из appcoda (я никогда не программировал на PHP)

    <?php
require_once('vendor/autoload.php');
\Stripe\Stripe::setApiKey("key");
$token =  $_POST['stripeToken'];
$amount = $_POST['amount'];
$currency = $_POST['currency'];
$description = $_POST['description'];
try {
$charge = \Stripe\Charge::create(array(

"amount" => $amount*100, // Convert amount in cents to dollar
"currency" => $currency,
"source" => $token,
"description" => $description)
);

// Check that it was paid:
if ($charge->paid == true) {
$response = array( 'status'=> 'Success', 'message'=>'Payment has been charged!!' );
} else { // Charge was not paid!
$response = array( 'status'=> 'Failure', 'message'=>'Your payment could NOT be processed because the payment system rejected the transaction. You can try again or use another card.' );
}
header('Content-Type: application/json');
echo json_encode($response);

} catch(\Stripe\Error\Card $e) {
// The card has been declined
}
?>

1

Решение

PATCH Метод используется, если вы обновляете существующий ресурс.

В то время как

СООБЩЕНИЕ отправляет данные для обработки (например, из формы HTML) на указанный ресурс. Данные включены в тело запроса.
Это может привести к созданию нового ресурса или обновлению
существующие ресурсы или оба.

И в вашем PHP-файле вы используете POST метод, чтобы получить параметры, которые вы передали через запрос, в то время как вы использовали PATCH метод передачи параметров и вот почему ваш сервер возвращал ошибку в ответе

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector