回答編集履歴

2

見出し修正

2020/04/10 07:09

投稿

mingos
mingos

スコア4032

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

文言修正

2020/04/10 07:09

投稿

mingos
mingos

スコア4032

test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
 
10
10
 
11
- とりあえずRuby(Rails)での検証方法だけ記載しておきます。
11
+ はRails(Ruby)を使っているのでRailsでの検証方法記載します。
12
12
 
13
13
  お使いのサーバサイドの言語次第で実装は変わりますので、そこはご自身の環境に合わせてください。
14
14
 
@@ -32,7 +32,7 @@
32
32
 
33
33
 
34
34
 
35
- とりあえず、このままのJSON文字列args.purchasedProduct.receiptを
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