pindo 4.7.2 → 4.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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