Comme le titre, quelle que soit la méthode curl, POST est donné aux données de l'interface, mais l'interface ne peut pas les obtenir ou il y a un problème avec le retour des paramètres.
Publiez le code :
$POSTFIELDS = array("receipt-data" => $receipt_data); //
$POSTFIELDS = json_encode($POSTFIELDS); // 注释了也没用
$url = "https://sandbox.itunes.apple.com/verifyReceipt";
$context = stream_context_create(array(
'http' => array(
'method' => 'POST',
'header' => "Content-type: application/x-www-form-urlencoded",
'content' => http_build_query($POSTFIELDS),
'timeout' => 20,
)
));
return file_get_contents($url, false, $context);
Le format de données $receipt_data est correct car les tests curl peuvent renvoyer des informations correctes.
Mais pour le fichier, les paramètres renvoyés sont toujours faux quoi qu'il arrive, je ne sais pas quel est le problème.
Ce que vous avez dit à l'étage est correct. Concernant ce problème, il s'agit en fait d'une erreur lors de l'interaction avec l'interface de paiement Apple et de la transmission des données.
http_build_query n'est pas obligatoire
Regardons d'abord ce que obtient le serveur. . . Est-ce que vous passez json ? Ensuite, il y a le POST au format formulaire. . . Sans key=>value, le backend ne peut obtenir que des chaînes au format json
HTTPS doit activer SSL
Obtenez ceci pour vous aider
http://www.jb51.net/article/4...