pindo 4.7.1 → 4.7.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -8,8 +8,8 @@ module Pindo
8
8
  module AppStoreInAppPurchase
9
9
 
10
10
  def get_price_tier_dict
11
-
12
- iap_tier_file = File.join(File.expand_path('./', __dir__), 'iap_tier.json')
11
+
12
+ iap_tier_file = File.join(File.expand_path('./', __dir__), 'iap_tier.json')
13
13
  iap_tier_json = JSON.parse(File.read(iap_tier_file))
14
14
 
15
15
  return iap_tier_json
@@ -41,14 +41,14 @@ module Pindo
41
41
  iap_item["localizations_id"] = temp_item[:id]
42
42
  end
43
43
  if !purchase_item[:relationships][:app_store_review_screenshot].nil? && !purchase_item[:relationships][:app_store_review_screenshot][:data].nil? && !purchase_item[:relationships][:app_store_review_screenshot][:data][:id].nil?
44
- iap_item["review_screenshot_id"] = purchase_item[:relationships][:app_store_review_screenshot][:data][:id]
44
+ iap_item["review_screenshot_id"] = purchase_item[:relationships][:app_store_review_screenshot][:data][:id]
45
45
  end
46
-
46
+
47
47
  if !iap_item["localizations_id"].nil? && !in_app_purchases_response.nil? && !in_app_purchases_response[:included].nil?
48
48
  localizations_item = in_app_purchases_response[:included].find { |item| item[:type].eql?("inAppPurchaseLocalizations") && item[:id].eql?(iap_item["localizations_id"])}
49
49
 
50
50
  iap_item["display_name"] = localizations_item[:attributes][:name]
51
- iap_item["description"] = localizations_item[:attributes][:description]
51
+ iap_item["description"] = localizations_item[:attributes][:description]
52
52
  end
53
53
 
54
54
  iap_item["review_screenshot"] = nil
@@ -57,14 +57,14 @@ module Pindo
57
57
  # if !iap_item["review_screenshot_id"].nil? && !in_app_purchases_response.nil? && !in_app_purchases_response[:included].nil?
58
58
  # iap_item = in_app_purchases_response[:included].find { |item| item[:type].eql?("inAppPurchaseAppStoreReviewScreenshots") && item[:id].eql?(iap_item["review_screenshot_id"])}
59
59
  # end
60
-
60
+
61
61
  iap_item["price"] = get_purchase_item_price(appstore_client:appstore_client, in_app_purchase_id:purchase_item[:id])
62
62
 
63
63
  iap_item.delete("localizations_id")
64
64
  iap_item.delete("review_screenshot_id")
65
65
  in_app_purchase_items << iap_item
66
66
  end
67
- end
67
+ end
68
68
 
69
69
  in_app_purchase_items.sort! { | itema, itemb | itema["product_id"] <=> itemb["product_id"]}
70
70
 
@@ -112,14 +112,14 @@ module Pindo
112
112
  app_sharedsecrets_item = post_result_data["data"]
113
113
  # puts JSON.pretty_generate(app_sharedsecrets_item)
114
114
  end
115
- end
115
+ end
116
116
  end
117
-
117
+
118
118
  if !app_sharedsecrets_item.nil?
119
119
  # puts JSON.pretty_generate(app_sharedsecrets_item)
120
120
  scecrets_id = app_sharedsecrets_item["attributes"]["secret"]
121
121
  end
122
-
122
+
123
123
  rescue => err
124
124
  puts err
125
125
  puts "获取App Shared Secret失败!"
@@ -144,7 +144,7 @@ module Pindo
144
144
  purchase_item["purchase_id"] = iap_item[:id]
145
145
  purchase_item["state"] = iap_item[:attributes][:state]
146
146
  end
147
- end
147
+ end
148
148
  end
149
149
  end
150
150
 
@@ -153,22 +153,23 @@ module Pindo
153
153
 
154
154
  puts "购买项:" + purchase_item["product_id"]
155
155
  if purchase_item["purchase_id"].nil?
156
- create_purchase_item(appstore_client:appstore_client, app_id:app_id, purchase_item:purchase_item)
156
+ create_purchase_item(appstore_client:appstore_client, app_id:app_id, purchase_item:purchase_item)
157
157
  end
158
-
158
+
159
159
  if !purchase_item["purchase_id"].nil?
160
160
  in_app_purchase_id = purchase_item["purchase_id"]
161
161
 
162
162
  if !purchase_item["state"].nil? && purchase_item["state"].to_s.eql?("APPROVED")
163
163
  puts " 购买项已经上线, 只能修改价格"
164
- create_purchase_item_price(appstore_client:appstore_client, in_app_purchase_id:in_app_purchase_id, purchase_item:purchase_item)
164
+ create_purchase_item_price(appstore_client:appstore_client, in_app_purchase_id:in_app_purchase_id, purchase_item:purchase_item)
165
165
  else
166
166
  sleep(1)
167
- update_purchase_item_name(appstore_client:appstore_client, in_app_purchase_id:in_app_purchase_id, purchase_item:purchase_item)
168
- create_purchase_item_price(appstore_client:appstore_client, in_app_purchase_id:in_app_purchase_id, purchase_item:purchase_item)
167
+ update_purchase_item_name(appstore_client:appstore_client, in_app_purchase_id:in_app_purchase_id, purchase_item:purchase_item)
168
+ update_purchase_item_territory_availability(appstore_client:appstore_client, in_app_purchase_id:in_app_purchase_id, purchase_item:purchase_item)
169
+ create_purchase_item_price(appstore_client:appstore_client, in_app_purchase_id:in_app_purchase_id, purchase_item:purchase_item)
169
170
  upload_purchase_item_screenshots(appstore_client:appstore_client, in_app_purchase_id:in_app_purchase_id, purchase_item:purchase_item)
170
- create_purchase_item_localization(appstore_client:appstore_client, in_app_purchase_id:in_app_purchase_id, purchase_item:purchase_item)
171
- update_purchase_item_name(appstore_client:appstore_client, in_app_purchase_id:in_app_purchase_id, purchase_item:purchase_item)
171
+ create_purchase_item_localization(appstore_client:appstore_client, in_app_purchase_id:in_app_purchase_id, purchase_item:purchase_item)
172
+ update_purchase_item_name(appstore_client:appstore_client, in_app_purchase_id:in_app_purchase_id, purchase_item:purchase_item)
172
173
 
173
174
  end
174
175
  end
@@ -187,27 +188,26 @@ module Pindo
187
188
  name:purchase_item["reference_name"],
188
189
  product_id:purchase_item["product_id"],
189
190
  in_app_purchase_type:purchase_item["in_app_purchase_type"],
190
- available_in_all_territories:true,
191
191
  review_note:purchase_item["review_note"],
192
192
  relationships: {
193
193
  app:{
194
194
  data:{
195
- id: appstore_app_id,
195
+ id: appstore_app_id,
196
196
  type: 'apps'
197
197
  }
198
198
  }
199
199
  }
200
200
  )
201
-
201
+
202
202
  if !response.nil? && !response[:data].nil? && !response[:data][:id].nil?
203
203
 
204
204
  purchase_id = !response[:data][:id]
205
205
  purchase_item["purchase_id"] = response[:data][:id]
206
206
  return purchase_id
207
- else !response.nil? && !response[:errors].nil?
207
+ else !response.nil? && !response[:errors].nil?
208
208
  # puts JSON.pretty_generate(response)
209
209
  response[:errors].each do |error_item|
210
- if error_item[:status].to_s.eql?("409") && error_item[:code].to_s.eql?("ENTITY_ERROR.ATTRIBUTE.INVALID.DUPLICATE") && error_item[:source][:pointer].to_s.eql?("/data/attributes/name")
210
+ if error_item[:status].to_s.eql?("409") && error_item[:code].to_s.eql?("ENTITY_ERROR.ATTRIBUTE.INVALID.DUPLICATE") && error_item[:source][:pointer].to_s.eql?("/data/attributes/name")
211
211
  err_msg = " !!!!!" + purchase_item["product_id"] + " 购买项创建失败!!!, Reference Name重复!!!"
212
212
  raise Informative, err_msg
213
213
  end
@@ -223,12 +223,11 @@ module Pindo
223
223
  end
224
224
 
225
225
  def update_purchase_item_name(appstore_client:nil, in_app_purchase_id:nil, purchase_item:nil)
226
-
226
+
227
227
  puts " 更新Reference Name"
228
228
  begin
229
229
  response = appstore_client.update_in_app_purchase(
230
230
  name:purchase_item["reference_name"],
231
- available_in_all_territories:true,
232
231
  review_note:purchase_item["review_note"],
233
232
  id:in_app_purchase_id
234
233
  )
@@ -238,10 +237,46 @@ module Pindo
238
237
  end
239
238
  end
240
239
 
240
+ def update_purchase_item_territory_availability(appstore_client:nil, in_app_purchase_id:nil, purchase_item:nil)
241
+
242
+ puts " 设置Territory Availability"
243
+ response = appstore_client.list_all_availability(
244
+ limit:200
245
+ )
246
+ # puts JSON.pretty_generate(response)
247
+
248
+ availableTerritories_data = []
249
+ if !response.nil? && !response[:data].nil?
250
+ response[:data].each do |territory_item|
251
+ new_territory_item = {}
252
+ new_territory_item["id"] = territory_item[:id]
253
+ new_territory_item["type"] = territory_item[:type]
254
+ availableTerritories_data << new_territory_item
255
+ end
256
+ end
241
257
 
242
- def create_purchase_item_localization(appstore_client:nil, in_app_purchase_id:nil, purchase_item:nil)
258
+ response = appstore_client.modify_in_app_purchase_territory_availablity(
259
+ available_in_new_territories:true,
260
+ relationships: {
261
+ inAppPurchase:{
262
+ data:{
263
+ id: in_app_purchase_id,
264
+ type: 'inAppPurchases'
265
+ }
266
+ },
267
+ availableTerritories:{
268
+ data:availableTerritories_data
269
+ }
270
+ }
271
+ )
272
+
273
+ # puts JSON.pretty_generate(response)
243
274
 
244
- puts " 更新Display Name"
275
+ end
276
+
277
+ def create_purchase_item_localization(appstore_client:nil, in_app_purchase_id:nil, purchase_item:nil)
278
+
279
+ puts " 更新Display Name"
245
280
  begin
246
281
 
247
282
  response = appstore_client.list_in_app_purchase_all_localizations(
@@ -262,7 +297,7 @@ module Pindo
262
297
  purchase_item["localization"][locale]["display_name"] = purchase_item["localization"][locale]["display_name"] || display_name
263
298
  purchase_item["localization"][locale]["description"] = purchase_item["localization"][locale]["description"] || description
264
299
  end
265
-
300
+
266
301
  end
267
302
 
268
303
 
@@ -295,7 +330,7 @@ module Pindo
295
330
  )
296
331
 
297
332
  # puts JSON.pretty_generate(response)
298
-
333
+
299
334
  end
300
335
 
301
336
  end
@@ -377,7 +412,7 @@ module Pindo
377
412
  id: in_app_purchase_id
378
413
  }
379
414
  }
380
- },
415
+ },
381
416
  included: [
382
417
  {
383
418
  type: 'inAppPurchasePrices',
@@ -403,7 +438,7 @@ module Pindo
403
438
  ]
404
439
  )
405
440
  end
406
-
441
+
407
442
  rescue => err
408
443
  puts "创建价格失败: " + purchase_item["product_id"]
409
444
  puts err
@@ -427,16 +462,16 @@ module Pindo
427
462
  need_upload_screenshot = true
428
463
 
429
464
  if !response_iap_screenshot[:data].nil? && !response_iap_screenshot[:data][:attributes].nil? && !response_iap_screenshot[:data][:attributes][:asset_delivery_state].nil? && !response_iap_screenshot[:data][:attributes][:asset_delivery_state][:state].nil?
430
-
465
+
431
466
  if response_iap_screenshot[:data][:attributes][:asset_delivery_state][:state].to_s.eql?("COMPLETE")
432
-
467
+
433
468
  if !response_iap_screenshot[:data].nil? && !response_iap_screenshot[:data][:attributes].nil? && !response_iap_screenshot[:data][:attributes][:source_file_checksum].nil?
434
469
 
435
470
  if checksum.to_s.eql?(response_iap_screenshot[:data][:attributes][:source_file_checksum].to_s)
436
471
 
437
472
  puts " 有截屏,截屏未修改,无需重新上传"
438
473
  need_upload_screenshot = false
439
-
474
+
440
475
  end
441
476
  end
442
477
  end
@@ -460,13 +495,13 @@ module Pindo
460
495
  relationships: {
461
496
  inAppPurchaseV2:{
462
497
  data:{
463
- id: in_app_purchase_id,
498
+ id: in_app_purchase_id,
464
499
  type: 'inAppPurchases'
465
500
  }
466
501
  }
467
502
  }
468
503
  )
469
-
504
+
470
505
  # puts JSON.pretty_generate(response_iap_screenshot)
471
506
  upload_id = response_iap_screenshot[:data][:id]
472
507
  upload_operations = response_iap_screenshot[:data][:attributes][:upload_operations]
@@ -481,7 +516,7 @@ module Pindo
481
516
  res = conn.put(upload_operation[:url], bytes[offset, length], headers)
482
517
  end
483
518
 
484
-
519
+
485
520
 
486
521
  in_app_purchase = appstore_client.update_in_app_purchase_app_store_review_screenshot(
487
522
  id:upload_id,
@@ -495,7 +530,7 @@ module Pindo
495
530
  puts " 存在图片,无需上传...."
496
531
  end
497
532
 
498
-
533
+
499
534
 
500
535
  rescue => err
501
536
  puts err
@@ -556,38 +591,38 @@ module Pindo
556
591
 
557
592
  puts
558
593
  puts "**已存在订阅组的数目** : #{subscription_groups_response[:data].size}"
559
- puts
594
+ puts
560
595
 
561
596
  subscription_groups_response[:data].each do |old_subscription_group_item|
562
597
  subscription_group_items.each do |new_subscription_group_item|
563
598
  if !old_subscription_group_item[:attributes].nil? && old_subscription_group_item[:attributes][:reference_name].to_s.eql?(new_subscription_group_item["group_reference_name"])
564
599
  new_subscription_group_item["group_id"] = old_subscription_group_item[:id]
565
600
  end
566
- end
601
+ end
567
602
  end
568
603
  end
569
604
 
570
605
  subscription_group_items.each do |new_subscription_group_item|
571
606
 
572
607
  if new_subscription_group_item["group_id"].nil?
573
- if subscription_groups_response[:data].size > 0
608
+ if subscription_groups_response[:data].size > 0
574
609
  puts
575
610
  answer = agree("请确认要创建新的Subscription Group(Y/n):")
576
611
  unless answer
577
612
  raise Informative, "修改iap.json文件 !!! group_reference_name不一致会创建新的Subscription Group !!!"
578
- end
613
+ end
579
614
  end
580
- create_subscription_group_item(appstore_client:appstore_client, app_id:app_id, subscription_group_item:new_subscription_group_item)
615
+ create_subscription_group_item(appstore_client:appstore_client, app_id:app_id, subscription_group_item:new_subscription_group_item)
581
616
  end
582
-
617
+
583
618
  if !new_subscription_group_item["group_id"].nil?
584
619
 
585
620
  subscription_group_id = new_subscription_group_item["group_id"]
586
621
 
587
- create_subscription_group_localization(appstore_client:appstore_client, subscription_group_id:new_subscription_group_item["group_id"], subscription_group_item:new_subscription_group_item)
622
+ create_subscription_group_localization(appstore_client:appstore_client, subscription_group_id:new_subscription_group_item["group_id"], subscription_group_item:new_subscription_group_item)
588
623
  sleep(1)
589
624
  subscription_items = new_subscription_group_item["subscription_items"]
590
- create_subscription_items(appstore_client:appstore_client, subscription_group_id:subscription_group_id, subscription_items:subscription_items)
625
+ create_subscription_items(appstore_client:appstore_client, subscription_group_id:subscription_group_id, subscription_items:subscription_items)
591
626
 
592
627
  end
593
628
  end
@@ -595,7 +630,7 @@ module Pindo
595
630
 
596
631
  end
597
632
 
598
- def create_subscription_group_item(appstore_client:nil, app_id:nil, subscription_group_item:nil)
633
+ def create_subscription_group_item(appstore_client:nil, app_id:nil, subscription_group_item:nil)
599
634
 
600
635
  begin
601
636
  group_response = appstore_client.create_subscription_group(
@@ -603,7 +638,7 @@ module Pindo
603
638
  relationships: {
604
639
  app:{
605
640
  data:{
606
- id: app_id,
641
+ id: app_id,
607
642
  type: 'apps'
608
643
  }
609
644
  }
@@ -615,10 +650,10 @@ module Pindo
615
650
 
616
651
  end
617
652
 
618
- def create_subscription_group_localization(appstore_client:nil, subscription_group_id:nil, subscription_group_item:nil)
653
+ def create_subscription_group_localization(appstore_client:nil, subscription_group_id:nil, subscription_group_item:nil)
619
654
  begin
620
655
 
621
-
656
+
622
657
  response = appstore_client.list_all_subscription_group_localizations(
623
658
  id:subscription_group_id,
624
659
  limit:200
@@ -638,7 +673,7 @@ module Pindo
638
673
  subscription_group_item["localization"][locale]["group_display_name"] = subscription_group_item["localization"][locale]["group_display_name"] || group_display_name
639
674
  subscription_group_item["localization"][locale]["custom_app_name"] = subscription_group_item["localization"][locale]["custom_app_name"] || custom_app_name
640
675
  end
641
-
676
+
642
677
  end
643
678
 
644
679
 
@@ -671,10 +706,10 @@ module Pindo
671
706
  }
672
707
  )
673
708
  # puts JSON.pretty_generate(response)
674
-
709
+
675
710
  end
676
711
 
677
-
712
+
678
713
 
679
714
  end
680
715
 
@@ -687,11 +722,11 @@ module Pindo
687
722
 
688
723
  end
689
724
 
690
-
691
- def get_subscription_items(appstore_client:nil, subscription_group_id:nil)
725
+
726
+ def get_subscription_items(appstore_client:nil, subscription_group_id:nil)
692
727
  subscription_items = []
693
728
 
694
- tier_json = get_price_tier_dict
729
+ tier_json = get_price_tier_dict
695
730
  items_dict = tier_json["subscription_duration"]
696
731
  subscription_period_dict = items_dict.invert
697
732
 
@@ -728,7 +763,7 @@ module Pindo
728
763
  localizations_item = subscription_response[:included].find { |item| item[:type].eql?("subscriptionLocalizations") && item[:id].eql?(new_subscription_item["localizations_id"])}
729
764
 
730
765
  new_subscription_item["display_name"] = localizations_item[:attributes][:name]
731
- new_subscription_item["description"] = localizations_item[:attributes][:description]
766
+ new_subscription_item["description"] = localizations_item[:attributes][:description]
732
767
  end
733
768
 
734
769
 
@@ -737,7 +772,7 @@ module Pindo
737
772
  else
738
773
  new_subscription_item.delete("subscription_free_trial")
739
774
  end
740
-
775
+
741
776
  new_subscription_item["price"] = get_subscription_item_price(appstore_client:appstore_client, subscription_id:old_subscription_item[:id])
742
777
  new_subscription_item.delete("localizations_id")
743
778
 
@@ -752,12 +787,12 @@ module Pindo
752
787
 
753
788
  end
754
789
 
755
- def create_subscription_items(appstore_client:nil, subscription_group_id:nil, subscription_items:nil)
790
+ def create_subscription_items(appstore_client:nil, subscription_group_id:nil, subscription_items:nil)
756
791
 
757
792
 
758
793
  subscription_items = subscription_items || []
759
794
  subscription_items.sort! { | itema, itemb | itema["product_id"] <=> itemb["product_id"]}
760
-
795
+
761
796
  #查询是否存在group
762
797
  subscription_response = appstore_client.list_all_subscription_for_subscription_group(id: subscription_group_id, limit:50)
763
798
  # puts JSON.pretty_generate(subscription_response)
@@ -769,51 +804,52 @@ module Pindo
769
804
  new_subscription_item["subscription_id"] = old_subscription_item[:id]
770
805
  new_subscription_item["state"] = old_subscription_item[:attributes][:state]
771
806
  end
772
- end
807
+ end
773
808
  end
774
809
  end
775
810
 
776
811
  subscription_items.each do |new_subscription_item|
777
812
  puts " 订阅项:" + new_subscription_item["product_id"]
778
813
  if new_subscription_item["subscription_id"].nil?
779
- create_subscription_item(appstore_client:appstore_client, subscription_group_id:subscription_group_id, subscription_item:new_subscription_item)
814
+ create_subscription_item(appstore_client:appstore_client, subscription_group_id:subscription_group_id, subscription_item:new_subscription_item)
780
815
  end
781
-
816
+
782
817
  if !new_subscription_item["subscription_id"].nil?
783
818
  subscription_id = new_subscription_item["subscription_id"]
784
819
  puts " 订阅项id: #{subscription_id}"
785
-
820
+
786
821
  sleep(1)
787
822
  if !new_subscription_item["state"].nil? && new_subscription_item["state"].to_s.eql?("APPROVED")
788
823
  puts " 订阅项已经上线, 只能修改价格"
789
824
  create_subscription_item_price(appstore_client:appstore_client, subscription_id:subscription_id, subscription_item:new_subscription_item)
790
825
  update_subscription_item_introductory_offer(appstore_client:appstore_client, subscription_id:subscription_id, subscription_item:new_subscription_item)
791
826
  else
792
-
793
- update_subscription_item_attributes(appstore_client:appstore_client, subscription_id:subscription_id, subscription_item:new_subscription_item)
794
- create_subscription_item_localization(appstore_client:appstore_client, subscription_id:subscription_id, subscription_item:new_subscription_item)
795
- update_subscription_item_screenshots(appstore_client:appstore_client, subscription_id:subscription_id, subscription_item:new_subscription_item)
827
+
828
+ update_subscription_item_attributes(appstore_client:appstore_client, subscription_id:subscription_id, subscription_item:new_subscription_item)
829
+ create_subscription_item_territory_availability(appstore_client:appstore_client, subscription_id:subscription_id, subscription_item:new_subscription_item)
830
+ create_subscription_item_localization(appstore_client:appstore_client, subscription_id:subscription_id, subscription_item:new_subscription_item)
831
+ update_subscription_item_screenshots(appstore_client:appstore_client, subscription_id:subscription_id, subscription_item:new_subscription_item)
796
832
 
797
833
  create_subscription_item_price(appstore_client:appstore_client, subscription_id:subscription_id, subscription_item:new_subscription_item)
798
834
  delete_subscription_item_introductory_offer(appstore_client:appstore_client, subscription_id:subscription_id, subscription_item:new_subscription_item)
799
- update_subscription_item_period(appstore_client:appstore_client, subscription_id:subscription_id, subscription_item:new_subscription_item)
835
+ update_subscription_item_period(appstore_client:appstore_client, subscription_id:subscription_id, subscription_item:new_subscription_item)
800
836
  update_subscription_item_introductory_offer(appstore_client:appstore_client, subscription_id:subscription_id, subscription_item:new_subscription_item)
801
837
  end
802
838
 
803
839
 
804
-
840
+
805
841
  end
806
842
  end
807
843
 
808
844
 
809
845
  # subscription_items.each do |new_subscription_item|
810
846
  # puts " 订阅项:" + new_subscription_item["product_id"]
811
-
847
+
812
848
  # if !new_subscription_item["subscription_id"].nil?
813
849
  # subscription_id = new_subscription_item["subscription_id"]
814
850
 
815
- # create_subscription_item_price_with_singlefunc(appstore_client:appstore_client, subscription_id:subscription_id, subscription_item:new_subscription_item)
816
- # if new_subscription_item["subscription_free_trial"].nil?
851
+ # create_subscription_item_price_with_singlefunc(appstore_client:appstore_client, subscription_id:subscription_id, subscription_item:new_subscription_item)
852
+ # if new_subscription_item["subscription_free_trial"].nil?
817
853
  # delete_subscription_item_introductory_offer_with_singlefunc(appstore_client:appstore_client, subscription_id:subscription_id)
818
854
  # end
819
855
 
@@ -824,14 +860,14 @@ module Pindo
824
860
  subscription_items.each do |new_subscription_item|
825
861
 
826
862
  if !new_subscription_item["subscription_id"].nil?
827
-
863
+
828
864
  if !new_subscription_item["state"].nil? && new_subscription_item["state"].to_s.eql?("APPROVED")
829
865
 
830
866
  else
831
867
  subscription_id = new_subscription_item["subscription_id"]
832
- create_subscription_item_localization(appstore_client:appstore_client, subscription_id:subscription_id, subscription_item:new_subscription_item)
868
+ create_subscription_item_localization(appstore_client:appstore_client, subscription_id:subscription_id, subscription_item:new_subscription_item)
833
869
  end
834
-
870
+
835
871
  end
836
872
  end
837
873
 
@@ -842,13 +878,12 @@ module Pindo
842
878
 
843
879
 
844
880
 
845
- def create_subscription_item(appstore_client:nil, subscription_group_id:nil, subscription_item:nil)
881
+ def create_subscription_item(appstore_client:nil, subscription_group_id:nil, subscription_item:nil)
846
882
  #创建购买项
847
883
  begin
848
884
  response = appstore_client.create_subscription(
849
885
  name:subscription_item["reference_name"],
850
886
  product_id:subscription_item["product_id"],
851
- available_in_all_territories:true,
852
887
  family_sharable:false,
853
888
  review_note:subscription_item["review_note"],
854
889
  subscription_period:subscription_item["subscription_duration"],
@@ -856,7 +891,7 @@ module Pindo
856
891
  relationships: {
857
892
  group:{
858
893
  data:{
859
- id: subscription_group_id,
894
+ id: subscription_group_id,
860
895
  type: 'subscriptionGroups'
861
896
  }
862
897
  }
@@ -864,16 +899,16 @@ module Pindo
864
899
  )
865
900
 
866
901
  # puts JSON.pretty_generate(response)
867
-
902
+
868
903
  if !response.nil? && !response[:data].nil? && !response[:data][:id].nil?
869
904
 
870
905
  purchase_id = !response[:data][:id]
871
906
  subscription_item["subscription_id"] = response[:data][:id]
872
907
  return purchase_id
873
- else !response.nil? && !response[:errors].nil?
908
+ else !response.nil? && !response[:errors].nil?
874
909
  # puts JSON.pretty_generate(response)
875
910
  response[:errors].each do |error_item|
876
- if error_item[:status].to_s.eql?("409") && error_item[:code].to_s.eql?("ENTITY_ERROR.ATTRIBUTE.INVALID.DUPLICATE") && error_item[:source][:pointer].to_s.eql?("/data/attributes/name")
911
+ if error_item[:status].to_s.eql?("409") && error_item[:code].to_s.eql?("ENTITY_ERROR.ATTRIBUTE.INVALID.DUPLICATE") && error_item[:source][:pointer].to_s.eql?("/data/attributes/name")
877
912
  err_msg = " !!!!!" + subscription_item["product_id"] + " 购买项创建失败!!! Reference Name重复!!!"
878
913
  raise Informative, err_msg
879
914
  end
@@ -888,14 +923,13 @@ module Pindo
888
923
  end
889
924
  end
890
925
 
891
- def update_subscription_item_attributes(appstore_client:nil, subscription_id:nil, subscription_item:nil)
926
+ def update_subscription_item_attributes(appstore_client:nil, subscription_id:nil, subscription_item:nil)
892
927
  puts " 更新Reference Name"
893
928
 
894
929
  begin
895
930
  response = appstore_client.update_subscription(
896
931
  id:subscription_id,
897
932
  name:subscription_item["reference_name"],
898
- available_in_all_territories:true,
899
933
  family_sharable:false,
900
934
  review_note:subscription_item["review_note"],
901
935
  group_level:1
@@ -907,10 +941,10 @@ module Pindo
907
941
  purchase_id = !response[:data][:id]
908
942
  subscription_item["subscription_id"] = response[:data][:id]
909
943
  return purchase_id
910
- else !response.nil? && !response[:errors].nil?
944
+ else !response.nil? && !response[:errors].nil?
911
945
  # puts JSON.pretty_generate(response)
912
946
  response[:errors].each do |error_item|
913
- if error_item[:status].to_s.eql?("409") && error_item[:code].to_s.eql?("ENTITY_ERROR.ATTRIBUTE.INVALID.DUPLICATE") && error_item[:source][:pointer].to_s.eql?("/data/attributes/name")
947
+ if error_item[:status].to_s.eql?("409") && error_item[:code].to_s.eql?("ENTITY_ERROR.ATTRIBUTE.INVALID.DUPLICATE") && error_item[:source][:pointer].to_s.eql?("/data/attributes/name")
914
948
  err_msg = " !!!!!" + subscription_item["product_id"] + " 购买项更新失败!!! Reference Name重复!!!"
915
949
  raise Informative, err_msg
916
950
  end
@@ -918,14 +952,14 @@ module Pindo
918
952
  err_msg = subscription_item["product_id"] + " 购买项更新失败!!!"
919
953
  # puts JSON.pretty_generate(response)
920
954
  end
921
-
955
+
922
956
  rescue => err
923
957
  puts err
924
958
  end
925
959
  end
926
960
 
927
- def update_subscription_item_period(appstore_client:nil, subscription_id:nil, subscription_item:nil)
928
-
961
+ def update_subscription_item_period(appstore_client:nil, subscription_id:nil, subscription_item:nil)
962
+
929
963
  begin
930
964
  puts " 设置订阅的周期: #{subscription_item["subscription_duration"]}"
931
965
  response = appstore_client.update_subscription(
@@ -939,18 +973,54 @@ module Pindo
939
973
  purchase_id = !response[:data][:id]
940
974
  subscription_item["subscription_id"] = response[:data][:id]
941
975
  return purchase_id
942
- else !response.nil? && !response[:errors].nil?
976
+ else !response.nil? && !response[:errors].nil?
943
977
  puts " !!!! 设置订阅的周期失败 !!!!"
944
978
  end
945
-
979
+
946
980
  rescue => err
947
981
  puts err
948
982
  puts " !!!! 设置订阅的周期失败 !!!!"
949
983
  end
950
984
  end
951
985
 
952
- def create_subscription_item_localization(appstore_client:nil, subscription_id:nil, subscription_item:nil)
953
- puts " 更新Display Name"
986
+ def create_subscription_item_territory_availability(appstore_client:nil, subscription_id:nil, subscription_item:nil)
987
+
988
+ puts " 设置订阅的Territory Availability"
989
+ response = appstore_client.list_all_availability(
990
+ limit:200
991
+ )
992
+ # puts JSON.pretty_generate(response)
993
+
994
+ availableTerritories_data = []
995
+ if !response.nil? && !response[:data].nil?
996
+ response[:data].each do |territory_item|
997
+ new_territory_item = {}
998
+ new_territory_item["id"] = territory_item[:id]
999
+ new_territory_item["type"] = territory_item[:type]
1000
+ availableTerritories_data << new_territory_item
1001
+ end
1002
+ end
1003
+ response = appstore_client.modify_subscription_territory_availability(
1004
+ available_in_new_territories:true,
1005
+ relationships: {
1006
+ subscription:{
1007
+ data:{
1008
+ id: subscription_id,
1009
+ type: 'subscriptions'
1010
+ }
1011
+ },
1012
+ availableTerritories:{
1013
+ data:availableTerritories_data
1014
+ }
1015
+ }
1016
+ )
1017
+
1018
+ # puts JSON.pretty_generate(response)
1019
+ end
1020
+
1021
+
1022
+ def create_subscription_item_localization(appstore_client:nil, subscription_id:nil, subscription_item:nil)
1023
+ puts " 更新Display Name"
954
1024
  begin
955
1025
  # 更新购买项描述多语言
956
1026
  response = appstore_client.list_subscription_all_localizations(
@@ -970,7 +1040,7 @@ module Pindo
970
1040
  subscription_item["localization"][locale]["display_name"] = subscription_item["localization"][locale]["display_name"] || display_name
971
1041
  subscription_item["localization"][locale]["description"] = subscription_item["localization"][locale]["description"] || description
972
1042
  end
973
-
1043
+
974
1044
  end
975
1045
 
976
1046
  # puts JSON.pretty_generate(response)
@@ -1004,10 +1074,10 @@ module Pindo
1004
1074
  )
1005
1075
 
1006
1076
  # puts JSON.pretty_generate(response)
1007
-
1077
+
1008
1078
  end
1009
1079
 
1010
-
1080
+
1011
1081
 
1012
1082
  end
1013
1083
 
@@ -1019,7 +1089,7 @@ module Pindo
1019
1089
  end
1020
1090
 
1021
1091
 
1022
- def get_subscription_item_price(appstore_client:nil, subscription_id:nil)
1092
+ def get_subscription_item_price(appstore_client:nil, subscription_id:nil)
1023
1093
 
1024
1094
  itc_usa_latest_price = 0
1025
1095
 
@@ -1032,8 +1102,8 @@ module Pindo
1032
1102
  limit:200
1033
1103
  )
1034
1104
  # puts JSON.pretty_generate(respose_price)
1035
-
1036
- if !respose_price[:included].nil?
1105
+
1106
+ if !respose_price[:included].nil?
1037
1107
  # respose_price[:included].each do |include_item|
1038
1108
  # if include_item[:type].to_s.eql?("subscriptionPricePoints")
1039
1109
  # itc_usa_latest_price = include_item[:attributes][:customer_price]
@@ -1050,7 +1120,7 @@ module Pindo
1050
1120
 
1051
1121
  end
1052
1122
 
1053
- def create_subscription_item_price(appstore_client:nil, subscription_id:nil, subscription_item:nil)
1123
+ def create_subscription_item_price(appstore_client:nil, subscription_id:nil, subscription_item:nil)
1054
1124
 
1055
1125
  puts " 更新价格 "
1056
1126
  begin
@@ -1074,15 +1144,15 @@ module Pindo
1074
1144
  )
1075
1145
  # puts JSON.pretty_generate(respose_price)
1076
1146
 
1077
-
1078
- if !respose_price[:data].nil?
1147
+
1148
+ if !respose_price[:data].nil?
1079
1149
  respose_price[:data].each_with_index do |data_item, data_index|
1080
1150
  if data_item[:type].to_s.eql?("subscriptionPrices")
1081
1151
  temp_id = data_item[:id]
1082
1152
  temp_price_point_id = data_item[:relationships][:subscription_price_point][:data][:id]
1083
1153
  price_point_item = respose_price[:included].find { |e| e[:id].eql?(temp_price_point_id) }
1084
1154
 
1085
- itc_usa_price = price_point_item[:attributes][:customer_price]
1155
+ itc_usa_price = price_point_item[:attributes][:customer_price]
1086
1156
  data_string = data_item[:attributes][:start_date].nil? ? "无" : data_item[:attributes][:start_date]
1087
1157
  puts " 线上价格#{data_index} :" + itc_usa_price +"$" + " 生效日期 : " + data_string
1088
1158
  end
@@ -1096,7 +1166,7 @@ module Pindo
1096
1166
  end
1097
1167
 
1098
1168
 
1099
- if !respose_price[:included].nil?
1169
+ if !respose_price[:included].nil?
1100
1170
  include_item = respose_price[:included].last
1101
1171
  if include_item[:type].to_s.eql?("subscriptionPricePoints")
1102
1172
  itc_usa_latest_price = include_item[:attributes][:customer_price]
@@ -1108,7 +1178,7 @@ module Pindo
1108
1178
  if !itc_usa_latest_price.nil? && itc_usa_latest_price.to_s.eql?(subscription_item["price"].to_s)
1109
1179
  need_modify_price = false
1110
1180
  end
1111
-
1181
+
1112
1182
  end
1113
1183
 
1114
1184
 
@@ -1169,7 +1239,7 @@ module Pindo
1169
1239
  limit:200
1170
1240
  )
1171
1241
  # puts JSON.pretty_generate(respose_equalizations_id)
1172
-
1242
+
1173
1243
  price_change_relationships_data = {
1174
1244
  newSubscriptionPricePoints:{
1175
1245
  data:[]
@@ -1192,14 +1262,14 @@ module Pindo
1192
1262
 
1193
1263
  index_num = 0
1194
1264
 
1195
- relationships_data[:prices][:data] << {
1196
- type: "subscriptionPrices",
1197
- id: "${newprice-#{index_num}}"
1265
+ relationships_data[:prices][:data] << {
1266
+ type: "subscriptionPrices",
1267
+ id: "${newprice-#{index_num}}"
1198
1268
  }
1199
1269
 
1200
1270
 
1201
1271
  included_data << {
1202
- type: "subscriptionPrices",
1272
+ type: "subscriptionPrices",
1203
1273
  id: "${newprice-#{index_num}}",
1204
1274
  attributes: attributes,
1205
1275
  relationships:{
@@ -1222,12 +1292,12 @@ module Pindo
1222
1292
  respose_equalizations_id[:data].each do |price_local_item|
1223
1293
 
1224
1294
  local_price_point_id = price_local_item[:id]
1225
- relationships_data[:prices][:data] << {
1226
- type: "subscriptionPrices",
1227
- id: "${newprice-#{index_num}}"
1295
+ relationships_data[:prices][:data] << {
1296
+ type: "subscriptionPrices",
1297
+ id: "${newprice-#{index_num}}"
1228
1298
  }
1229
1299
  included_data << {
1230
- type: "subscriptionPrices",
1300
+ type: "subscriptionPrices",
1231
1301
  id: "${newprice-#{index_num}}",
1232
1302
  attributes: attributes,
1233
1303
  relationships:{
@@ -1251,25 +1321,25 @@ module Pindo
1251
1321
 
1252
1322
  # puts JSON.pretty_generate(relationships_data)
1253
1323
  # puts JSON.pretty_generate(included_data)
1254
-
1255
1324
 
1256
1325
 
1257
- if subscription_item["state"].to_s.eql?("APPROVED")
1258
1326
 
1259
-
1327
+ if subscription_item["state"].to_s.eql?("APPROVED")
1328
+
1329
+
1260
1330
 
1261
1331
  respose_response = appstore_client.list_subscription_all_price(
1262
1332
  id:subscription_id,
1263
1333
  include:"subscriptionPricePoint",
1264
1334
  limit:200
1265
1335
  )
1266
-
1336
+
1267
1337
  all_price_data = []
1268
-
1338
+
1269
1339
 
1270
1340
  next_respose_response = respose_response
1271
1341
  all_price_data = all_price_data + respose_response[:data]
1272
- while !next_respose_response.nil? && !next_respose_response[:links].nil? && !next_respose_response[:links][:next].nil?
1342
+ while !next_respose_response.nil? && !next_respose_response[:links].nil? && !next_respose_response[:links][:next].nil?
1273
1343
 
1274
1344
  cursor = nil
1275
1345
  # puts next_respose_response[:links][:next]
@@ -1291,20 +1361,20 @@ module Pindo
1291
1361
  # puts "all_price_data.size: #{all_price_data.size}"
1292
1362
 
1293
1363
  # puts "respose_response[:included].size : #{respose_response[:included].size }"
1294
- if !itc_usa_latest_start_date.nil? && !respose_response.nil? && !respose_response[:links].nil? && !respose_response[:links][:next].nil?
1364
+ if !itc_usa_latest_start_date.nil? && !respose_response.nil? && !respose_response[:links].nil? && !respose_response[:links][:next].nil?
1295
1365
  last_data_items = all_price_data.select { |e| e[:attributes][:start_date].eql?(itc_usa_latest_start_date)}
1296
1366
  else
1297
1367
  last_data_items = all_price_data
1298
1368
  end
1299
1369
 
1300
-
1370
+
1301
1371
  if last_data_items.size > 0
1302
1372
  last_data_items.each do |last_data_item|
1303
1373
  if last_data_item[:type].to_s.eql?("subscriptionPrices")
1304
1374
  price_change_relationships_data[:currentSubscriptionPricePoints][:data] << {
1305
1375
  type:"subscriptionPricePoints",
1306
1376
  id: last_data_item[:relationships][:subscription_price_point][:data][:id]
1307
- }
1377
+ }
1308
1378
  end
1309
1379
  end
1310
1380
  end
@@ -1388,22 +1458,22 @@ module Pindo
1388
1458
  end
1389
1459
 
1390
1460
 
1391
- def update_subscription_item_introductory_offer(appstore_client:nil, subscription_id:nil, subscription_item:nil)
1392
- puts " 设置Introductory Offer : "
1461
+ def update_subscription_item_introductory_offer(appstore_client:nil, subscription_id:nil, subscription_item:nil)
1462
+ puts " 设置Introductory Offer : "
1393
1463
  if !subscription_item["subscription_free_trial"].nil? && subscription_item["subscription_free_trial"].to_s.eql?("3d")
1394
- puts " 3天 试用"
1464
+ puts " 3天 试用"
1395
1465
  create_subscription_item_introductory_offer(appstore_client:appstore_client, subscription_id:subscription_id, subscription_item:subscription_item)
1396
1466
  else
1397
- puts " 无试用"
1398
- end
1467
+ puts " 无试用"
1468
+ end
1399
1469
 
1400
1470
  end
1401
1471
 
1402
- def create_subscription_item_introductory_offer(appstore_client:nil, subscription_id:nil, subscription_item:nil)
1472
+ def create_subscription_item_introductory_offer(appstore_client:nil, subscription_id:nil, subscription_item:nil)
1473
+
1403
1474
 
1404
-
1405
1475
  begin
1406
-
1476
+
1407
1477
  territory_response = appstore_client.list_subscription_territory_availability(
1408
1478
  id:subscription_id,
1409
1479
  limit:200
@@ -1423,13 +1493,13 @@ module Pindo
1423
1493
  index_num = 0
1424
1494
  territory_response[:data].each do |territory_item|
1425
1495
  local_territory_id = territory_item[:id]
1426
- relationships_data[:introductoryOffers][:data] << {
1427
- type: "subscriptionIntroductoryOffers",
1428
- id: "${newIntroOffer-#{index_num}}"
1496
+ relationships_data[:introductoryOffers][:data] << {
1497
+ type: "subscriptionIntroductoryOffers",
1498
+ id: "${newIntroOffer-#{index_num}}"
1429
1499
  }
1430
1500
 
1431
1501
  included_data << {
1432
- type: "subscriptionIntroductoryOffers",
1502
+ type: "subscriptionIntroductoryOffers",
1433
1503
  id: "${newIntroOffer-#{index_num}}",
1434
1504
  attributes: {
1435
1505
  duration:"THREE_DAYS",
@@ -1455,12 +1525,12 @@ module Pindo
1455
1525
  relationships: relationships_data,
1456
1526
  included: included_data
1457
1527
  )
1458
- puts " 3天 试用 设置成功!"
1528
+ puts " 3天 试用 设置成功!"
1459
1529
  # puts JSON.pretty_generate(response)
1460
1530
  end
1461
1531
 
1462
1532
  rescue => err
1463
- puts " !!!! 设置Introductory Offer 失败 !!! "
1533
+ puts " !!!! 设置Introductory Offer 失败 !!! "
1464
1534
  puts err
1465
1535
  end
1466
1536
 
@@ -1468,7 +1538,7 @@ module Pindo
1468
1538
  end
1469
1539
 
1470
1540
 
1471
- def delete_subscription_item_introductory_offer(appstore_client:nil, subscription_id:nil, subscription_item:nil)
1541
+ def delete_subscription_item_introductory_offer(appstore_client:nil, subscription_id:nil, subscription_item:nil)
1472
1542
 
1473
1543
  begin
1474
1544
 
@@ -1482,27 +1552,27 @@ module Pindo
1482
1552
  if !introductory_response[:data].nil? && introductory_response[:data].size > 0
1483
1553
 
1484
1554
  # puts JSON.pretty_generate(introductory_response[:data])
1485
- puts " 线上有试用,先删除"
1555
+ puts " 线上有试用,先删除"
1486
1556
  temp_data = [];
1487
1557
 
1488
1558
  introductory_response[:data].each do |introductory_item|
1489
1559
  temp_data << {id: introductory_item[:id]}
1490
1560
  end
1491
1561
 
1492
-
1562
+
1493
1563
  introductory_response = appstore_client.delete_introductory_offers_for_subscription(
1494
1564
  id:subscription_id,
1495
1565
  data:temp_data
1496
1566
  )
1497
1567
 
1498
- puts " 线上试用删除成功!!!"
1568
+ puts " 线上试用删除成功!!!"
1499
1569
  # puts JSON.pretty_generate(introductory_response)
1500
1570
  else
1501
- puts " 线上无试用, 无需删除!!!"
1571
+ puts " 线上无试用, 无需删除!!!"
1502
1572
  end
1503
1573
 
1504
1574
  rescue => err
1505
- puts " !!!! 删除 试用 失败 !!!!"
1575
+ puts " !!!! 删除 试用 失败 !!!!"
1506
1576
  puts err
1507
1577
  end
1508
1578
 
@@ -1510,9 +1580,9 @@ module Pindo
1510
1580
 
1511
1581
 
1512
1582
 
1513
- def delete_subscription_item_introductory_offer_with_singlefunc(appstore_client:nil, subscription_id:nil)
1583
+ def delete_subscription_item_introductory_offer_with_singlefunc(appstore_client:nil, subscription_id:nil)
1584
+
1514
1585
 
1515
-
1516
1586
  begin
1517
1587
 
1518
1588
  response = appstore_client.list_subscription_introductory_offer_resoure_ids(
@@ -1529,11 +1599,11 @@ module Pindo
1529
1599
  index_item = index_item +1
1530
1600
 
1531
1601
 
1532
- puts " 删除" + index_item.to_s+ "地区的Introductory Offer"
1602
+ puts " 删除" + index_item.to_s+ "地区的Introductory Offer"
1533
1603
 
1534
1604
  ret = appstore_client.delete_subscription_introductory_offer(id:price_point_item[:id])
1535
1605
  # puts JSON.pretty_generate(ret)
1536
-
1606
+
1537
1607
  end
1538
1608
 
1539
1609
  end
@@ -1547,9 +1617,9 @@ module Pindo
1547
1617
  end
1548
1618
 
1549
1619
 
1550
- def create_subscription_item_introductory_offer_with_singlefunc(appstore_client:nil, subscription_id:nil, price_point_id:nil, territory:nil)
1620
+ def create_subscription_item_introductory_offer_with_singlefunc(appstore_client:nil, subscription_id:nil, price_point_id:nil, territory:nil)
1551
1621
 
1552
- puts " 设置Introductory Offer"
1622
+ puts " 设置Introductory Offer"
1553
1623
  begin
1554
1624
 
1555
1625
  response = appstore_client.create_subscription_introductory_offer(
@@ -1575,7 +1645,7 @@ module Pindo
1575
1645
  id: territory
1576
1646
  }
1577
1647
  }
1578
-
1648
+
1579
1649
  },
1580
1650
  included:[{
1581
1651
  type: "subscriptionPrices",
@@ -1592,7 +1662,7 @@ module Pindo
1592
1662
 
1593
1663
 
1594
1664
 
1595
- def create_subscription_item_price_with_singlefunc(appstore_client:nil, subscription_id:nil, subscription_item:nil)
1665
+ def create_subscription_item_price_with_singlefunc(appstore_client:nil, subscription_id:nil, subscription_item:nil)
1596
1666
  puts " 更新价格"
1597
1667
  begin
1598
1668
 
@@ -1636,13 +1706,13 @@ module Pindo
1636
1706
  )
1637
1707
 
1638
1708
 
1639
-
1709
+
1640
1710
  if !subscription_item["subscription_free_trial"].nil? && subscription_item["subscription_free_trial"].to_s.eql?("3d")
1641
-
1642
- create_subscription_item_introductory_offer_with_singlefunc(appstore_client:appstore_client, subscription_id:subscription_id, price_point_id:price_point_id, territory:'USA')
1711
+
1712
+ create_subscription_item_introductory_offer_with_singlefunc(appstore_client:appstore_client, subscription_id:subscription_id, price_point_id:price_point_id, territory:'USA')
1643
1713
  end
1644
1714
 
1645
-
1715
+
1646
1716
 
1647
1717
 
1648
1718
  respose_price = appstore_client.list_subscription_price_points_equalizations(
@@ -1654,7 +1724,7 @@ module Pindo
1654
1724
 
1655
1725
  index_item = 1
1656
1726
  if !respose_price[:data].nil?
1657
-
1727
+
1658
1728
  respose_price[:data].each do |price_local_item|
1659
1729
  index_item = index_item +1
1660
1730
 
@@ -1681,26 +1751,26 @@ module Pindo
1681
1751
  )
1682
1752
 
1683
1753
  # puts JSON.pretty_generate(respose_price)
1684
-
1754
+
1685
1755
  if !subscription_item["subscription_free_trial"].nil? && subscription_item["subscription_free_trial"].to_s.eql?("3d")
1686
-
1687
- create_subscription_item_introductory_offer_with_singlefunc(appstore_client:appstore_client, subscription_id:subscription_id, price_point_id:price_point_id, territory:territory_id)
1756
+
1757
+ create_subscription_item_introductory_offer_with_singlefunc(appstore_client:appstore_client, subscription_id:subscription_id, price_point_id:price_point_id, territory:territory_id)
1688
1758
  end
1689
-
1759
+
1690
1760
  end
1691
1761
 
1692
1762
  end
1693
1763
 
1694
1764
 
1695
1765
  end
1696
-
1766
+
1697
1767
  rescue => err
1698
1768
  puts "创建价格失败: " + subscription_item["product_id"]
1699
1769
  puts err
1700
1770
  end
1701
1771
  end
1702
1772
 
1703
- def update_subscription_item_screenshots(appstore_client:nil, subscription_id:nil, subscription_item:nil)
1773
+ def update_subscription_item_screenshots(appstore_client:nil, subscription_id:nil, subscription_item:nil)
1704
1774
  puts " 更新截屏"
1705
1775
  begin
1706
1776
  response_iap_screenshot = appstore_client.read_review_screenshot_for_subscription(id:subscription_id)
@@ -1718,15 +1788,15 @@ module Pindo
1718
1788
  need_upload_screenshot = true
1719
1789
 
1720
1790
  if !response_iap_screenshot[:data].nil? && !response_iap_screenshot[:data][:attributes].nil? && !response_iap_screenshot[:data][:attributes][:asset_delivery_state].nil? && !response_iap_screenshot[:data][:attributes][:asset_delivery_state][:state].nil?
1721
-
1791
+
1722
1792
  if response_iap_screenshot[:data][:attributes][:asset_delivery_state][:state].to_s.eql?("COMPLETE")
1723
-
1793
+
1724
1794
  if !response_iap_screenshot[:data].nil? && !response_iap_screenshot[:data][:attributes].nil? && !response_iap_screenshot[:data][:attributes][:source_file_checksum].nil?
1725
1795
 
1726
1796
  if checksum.to_s.eql?(response_iap_screenshot[:data][:attributes][:source_file_checksum].to_s)
1727
1797
  puts " 有截屏,截屏未修改,无需重新上传"
1728
1798
  need_upload_screenshot = false
1729
-
1799
+
1730
1800
  end
1731
1801
  end
1732
1802
  end
@@ -1749,13 +1819,13 @@ module Pindo
1749
1819
  relationships: {
1750
1820
  subscription:{
1751
1821
  data:{
1752
- id: subscription_id,
1822
+ id: subscription_id,
1753
1823
  type: 'subscriptions'
1754
1824
  }
1755
1825
  }
1756
1826
  }
1757
1827
  )
1758
-
1828
+
1759
1829
  # puts JSON.pretty_generate(response_iap_screenshot)
1760
1830
 
1761
1831
  if !response_iap_screenshot[:data].nil? && !response_iap_screenshot[:data][:id].nil?
@@ -1773,7 +1843,7 @@ module Pindo
1773
1843
  res = conn.put(upload_operation[:url], bytes[offset, length], headers)
1774
1844
  end
1775
1845
 
1776
-
1846
+
1777
1847
 
1778
1848
  in_app_purchase = appstore_client.update_subscription_review_screenshot(
1779
1849
  id:upload_id,
@@ -1788,7 +1858,7 @@ module Pindo
1788
1858
 
1789
1859
  puts " 存在图片,无需上传...."
1790
1860
  end
1791
-
1861
+
1792
1862
 
1793
1863
 
1794
1864