回答編集履歴
2
見出し修正
test
CHANGED
@@ -40,7 +40,7 @@
|
|
40
40
|
|
41
41
|
|
42
42
|
|
43
|
-
### サーバにPOSTされた
|
43
|
+
### サーバにPOSTされたUnityのレシートから、レシート検証に必要な情報を取り出す
|
44
44
|
|
45
45
|
|
46
46
|
|
@@ -54,7 +54,7 @@
|
|
54
54
|
|
55
55
|
|
56
56
|
|
57
|
-
# レシートと署名を取り出す
|
57
|
+
# GooglePlayのレシートと署名を取り出す
|
58
58
|
|
59
59
|
data = JSON.parse(unity_receipt['Payload'])
|
60
60
|
|
@@ -90,11 +90,13 @@
|
|
90
90
|
|
91
91
|
verifier.verify(OpenSSL::Digest::SHA1.new, Base64.decode64(signature), receipt)
|
92
92
|
|
93
|
-
=> true/false
|
93
|
+
=> true/false
|
94
94
|
|
95
95
|
```
|
96
96
|
|
97
97
|
|
98
|
+
|
99
|
+
trueが返ってくればレシートが正しいという事になります。
|
98
100
|
|
99
101
|
これで正しいレシートかどうかの検証はできるようになりましたが、
|
100
102
|
|
1
文言修正
test
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
|
10
10
|
|
11
|
-
|
11
|
+
私はRails(Ruby)を使っているのでRailsでの検証方法を記載します。
|
12
12
|
|
13
13
|
お使いのサーバサイドの言語次第で実装は変わりますので、そこはご自身の環境に合わせてください。
|
14
14
|
|
@@ -32,7 +32,7 @@
|
|
32
32
|
|
33
33
|
|
34
34
|
|
35
|
-
|
35
|
+
このままのJSON文字列args.purchasedProduct.receiptを
|
36
36
|
|
37
37
|
サーバに送信しておき、サーバではPayloadの文字列をさらにJSONとしてパースする事になります。
|
38
38
|
|
@@ -50,11 +50,17 @@
|
|
50
50
|
|
51
51
|
unity_receipt = JSON.parse(params[:receipt])
|
52
52
|
|
53
|
+
=> {"Store"=>"GooglePlay", "TransactionID"=>"GPA.XXXX-XXXX-XXXX-XXXXX", "Payload"=>"{\"json\":...., \"signature\":....,}"
|
54
|
+
|
53
55
|
|
54
56
|
|
55
57
|
# レシートと署名を取り出す
|
56
58
|
|
57
59
|
data = JSON.parse(unity_receipt['Payload'])
|
60
|
+
|
61
|
+
=> {"json"=> "...", "signature" => "...", ....}
|
62
|
+
|
63
|
+
|
58
64
|
|
59
65
|
receipt = data['json'] # レシートJSON文字列
|
60
66
|
|