Tôi đang thử android trong thanh toán ứng dụng v3 xác minh trên máy chủ php từ xa của tôi.android trong thanh toán ứng dụng v3 với php
nhưng có vẻ như đã xảy ra lỗi ở mã của tôi.
tôi nghĩ rằng hàm openssl_verify này là vấn đề.
kết quả luôn thất bại!
tôi không thể tìm thấy thông số đầu tiên để xác minh bằng openssl_verify. trên thực tế, tôi đang nhầm lẫn giữa định dạng hợp lý là những gì để đặt vào tham số đầu tiên :(
bạn có thể giúp tôi để giải quyết nó?
$result = openssl_verify($data["purchaseToken"], base64_decode($signature), $key); // original // failed
belows mã kiểm tra đầy đủ.
<?php
$responseCode = 0;
$encoded='{
"orderId":"12999763169054705758.1111111111111",
"packageName":"com.xxx.yyy",
"productId":"test__100_c",
"purchaseTime":1368455064000,
"purchaseState":0,
"purchaseToken":"tcmggamllmgqiabymvcgtfsj.AO-J1OwoOzoFd-G-....."
}';
$data = json_decode($encoded,true);
$signature = "tKdvc42ujbYfLl+3sGdl7RAUPlNv.....";
$publicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2kMri6mE5+.....";
$key = "-----BEGIN PUBLIC KEY-----\n" . chunk_split($publicKey, 64, "\n") . "-----END PUBLIC KEY-----";
$key = openssl_get_publickey($key);
if (false === $key) {
exit("error openssl_get_publickey");
}
var_dump($key);
$result = openssl_verify($data["purchaseToken"], base64_decode($signature), $key); // original // failed
//$result = openssl_verify($data, base64_decode($signature), $key); // failed
//$result = openssl_verify($encoded, base64_decode($signature), $key); // failed
//$result = openssl_verify(base64_decode($data["purchaseToken"]), base64_decode($signature), $key); // failed
//$result = openssl_verify(base64_decode($signature),$data["purchaseToken"], $key,OPENSSL_ALGO_SHA512); // failed
if ($result == 1) {
echo "good";
} elseif ($result == 0) {
echo "bad";
} else {
echo "error";
}
echo($result);
nhờ :)
+1 cho hai thứ, thông số và chuỗi json sai. i sửa cả hai và cố định. cảm ơn – TaeL
nó là một chút bối rối bởi vì trong câu trả lời của bạn '$ data' được giải mã json thành mảng. Điều quan trọng là sử dụng ORIGINAL JSON từ Google (tôi biết rằng câu trả lời của bạn ở cuối câu trả lời, nhưng tôi đã bỏ lỡ nó trong lần đọc đầu tiên :-)) – Naxos
Bạn có đủ đại diện để cải thiện câu trả lời không? Nếu vậy bằng mọi cách hãy làm. Nếu không, tôi sẽ cố gắng cập nhật nó để làm rõ nó tốt hơn. :) –