paypal-sdk-rest 1.4.9 → 1.7.5
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.
- checksums.yaml +5 -5
- data/Gemfile +1 -0
- data/README.md +29 -27
- data/lib/paypal-sdk/core/api/data_types/base.rb +2 -1
- data/lib/paypal-sdk/core/api/rest.rb +16 -3
- data/lib/paypal-sdk/core/exceptions.rb +4 -0
- data/lib/paypal-sdk/core/openid_connect.rb +1 -1
- data/lib/paypal-sdk/rest/data_types.rb +465 -86
- data/lib/paypal-sdk/rest/error_hash.rb +1 -1
- data/lib/paypal-sdk/rest/version.rb +1 -1
- data/spec/core/api/data_type_spec.rb +100 -0
- data/spec/core/api/rest_spec.rb +66 -2
- data/spec/payments_examples_spec.rb +48 -1
- data/spec/payouts_examples_spec.rb +25 -0
- data/spec/rest/error_hash_spec.rb +83 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/webhooks_examples_spec.rb +8 -0
- metadata +11 -28
- data/spec/log/http.log +0 -0
- data/spec/log/rest_http.log +0 -0
@@ -1,9 +1,9 @@
|
|
1
1
|
require 'paypal-sdk-core'
|
2
|
-
require '
|
2
|
+
require 'securerandom'
|
3
3
|
require 'multi_json'
|
4
|
-
require 'open-uri'
|
5
4
|
require 'zlib'
|
6
5
|
require "base64"
|
6
|
+
require 'net/http'
|
7
7
|
|
8
8
|
module PayPal::SDK
|
9
9
|
module REST
|
@@ -17,7 +17,7 @@ module PayPal::SDK
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def request_id
|
20
|
-
@request_id ||=
|
20
|
+
@request_id ||= SecureRandom.uuid
|
21
21
|
end
|
22
22
|
|
23
23
|
def http_header
|
@@ -64,7 +64,9 @@ module PayPal::SDK
|
|
64
64
|
object_of :payment_instruction, PaymentInstruction
|
65
65
|
object_of :state, String
|
66
66
|
object_of :experience_profile_id, String
|
67
|
+
object_of :note_to_payer, String
|
67
68
|
object_of :redirect_urls, RedirectUrls
|
69
|
+
object_of :failure_reason, String
|
68
70
|
object_of :create_time, String
|
69
71
|
object_of :update_time, String
|
70
72
|
array_of :links, Links
|
@@ -168,6 +170,7 @@ module PayPal::SDK
|
|
168
170
|
class Billing < Base
|
169
171
|
def self.load_members
|
170
172
|
object_of :billing_agreement_id, String
|
173
|
+
object_of :selected_installment_option, InstallmentOption
|
171
174
|
end
|
172
175
|
|
173
176
|
include RequestDataType
|
@@ -180,13 +183,6 @@ module PayPal::SDK
|
|
180
183
|
include RequestDataType
|
181
184
|
end
|
182
185
|
|
183
|
-
class CarrierAccountToken < Base
|
184
|
-
def self.load_members
|
185
|
-
object_of :carrier_account_id, String
|
186
|
-
object_of :external_customer_id, String
|
187
|
-
end
|
188
|
-
end
|
189
|
-
|
190
186
|
class CountryCode < Base
|
191
187
|
def self.load_members
|
192
188
|
object_of :country_code, String
|
@@ -214,6 +210,8 @@ module PayPal::SDK
|
|
214
210
|
object_of :code, String
|
215
211
|
object_of :funding_account_id, String
|
216
212
|
object_of :display_text, String
|
213
|
+
object_of :amount, Currency
|
214
|
+
object_of :funding_instruction, String
|
217
215
|
end
|
218
216
|
|
219
217
|
include RequestDataType
|
@@ -295,6 +293,7 @@ module PayPal::SDK
|
|
295
293
|
array_of :funding_instruments, FundingInstrument
|
296
294
|
object_of :funding_option_id, String
|
297
295
|
object_of :funding_option, FundingOption
|
296
|
+
object_of :external_selected_funding_instrument_type, String
|
298
297
|
object_of :related_funding_option, FundingOption
|
299
298
|
object_of :payer_info, PayerInfo
|
300
299
|
object_of :billing, Billing
|
@@ -366,7 +365,7 @@ module PayPal::SDK
|
|
366
365
|
raise_on_api_error :create, :update, :delete
|
367
366
|
end
|
368
367
|
|
369
|
-
class
|
368
|
+
class BaseAddress < Base
|
370
369
|
def self.load_members
|
371
370
|
object_of :line1, String
|
372
371
|
object_of :line2, String
|
@@ -374,9 +373,21 @@ module PayPal::SDK
|
|
374
373
|
object_of :country_code, String
|
375
374
|
object_of :postal_code, String
|
376
375
|
object_of :state, String
|
377
|
-
object_of :phone, String
|
378
376
|
object_of :normalization_status, String
|
379
377
|
object_of :status, String
|
378
|
+
object_of :type, String
|
379
|
+
end
|
380
|
+
end
|
381
|
+
|
382
|
+
class Address < BaseAddress
|
383
|
+
def self.load_members
|
384
|
+
object_of :phone, String
|
385
|
+
end
|
386
|
+
end
|
387
|
+
|
388
|
+
class InvoiceAddress < BaseAddress
|
389
|
+
def self.load_members
|
390
|
+
object_of :phone, Phone
|
380
391
|
end
|
381
392
|
end
|
382
393
|
|
@@ -413,6 +424,7 @@ module PayPal::SDK
|
|
413
424
|
object_of :billing_address, Address
|
414
425
|
object_of :external_customer_id, String
|
415
426
|
object_of :status, String
|
427
|
+
object_of :card_product_class, String
|
416
428
|
object_of :valid_until, String
|
417
429
|
object_of :issue_number, String
|
418
430
|
end
|
@@ -545,7 +557,9 @@ module PayPal::SDK
|
|
545
557
|
object_of :funding_instrument_type, String
|
546
558
|
object_of :soft_descriptor, String
|
547
559
|
object_of :amount, Currency
|
560
|
+
object_of :negative_balance_amount, Currency
|
548
561
|
object_of :legal_text, String
|
562
|
+
object_of :terms, String
|
549
563
|
object_of :funding_detail, FundingDetail
|
550
564
|
object_of :additional_text, String
|
551
565
|
object_of :extends, FundingInstrument
|
@@ -721,13 +735,13 @@ module PayPal::SDK
|
|
721
735
|
|
722
736
|
class Item < Base
|
723
737
|
def self.load_members
|
724
|
-
object_of :
|
738
|
+
object_of :sku, String
|
725
739
|
object_of :name, String
|
726
740
|
object_of :description, String
|
741
|
+
object_of :quantity, String
|
727
742
|
object_of :price, String
|
728
|
-
object_of :tax, String
|
729
743
|
object_of :currency, String
|
730
|
-
object_of :
|
744
|
+
object_of :tax, String
|
731
745
|
object_of :url, String
|
732
746
|
object_of :category, String
|
733
747
|
object_of :weight, Measurement
|
@@ -764,9 +778,9 @@ module PayPal::SDK
|
|
764
778
|
|
765
779
|
class RelatedResources < Base
|
766
780
|
def self.load_members
|
767
|
-
object_of :order, Order
|
768
781
|
object_of :sale, Sale
|
769
782
|
object_of :authorization, Authorization
|
783
|
+
object_of :order, Order
|
770
784
|
object_of :capture, Capture
|
771
785
|
object_of :refund, Refund
|
772
786
|
end
|
@@ -784,6 +798,7 @@ module PayPal::SDK
|
|
784
798
|
object_of :protection_eligibility_type, String
|
785
799
|
object_of :clearing_time, String
|
786
800
|
object_of :recipient_fund_status, String
|
801
|
+
object_of :payment_hold_status, String
|
787
802
|
object_of :hold_reason, String
|
788
803
|
object_of :transaction_fee, Currency
|
789
804
|
object_of :receivable_amount, Currency
|
@@ -794,7 +809,6 @@ module PayPal::SDK
|
|
794
809
|
object_of :create_time, String
|
795
810
|
object_of :update_time, String
|
796
811
|
array_of :links, Links
|
797
|
-
object_of :processor_response, ProcessorResponse
|
798
812
|
object_of :billing_agreement_id, String
|
799
813
|
object_of :payment_hold_reasons, String
|
800
814
|
object_of :processor_response, ProcessorResponse
|
@@ -816,6 +830,14 @@ module PayPal::SDK
|
|
816
830
|
response = api.post(path, refund.to_hash, http_header)
|
817
831
|
Refund.new(response)
|
818
832
|
end
|
833
|
+
|
834
|
+
def refund_request(refund_request)
|
835
|
+
refund_request = RefundRequest.new(refund_request) unless refund_request.is_a? RefundRequest
|
836
|
+
path = "v1/payments/sale/#{self.id}/refund"
|
837
|
+
response = api.post(path, refund_request.to_hash, http_header)
|
838
|
+
DetailedRefund.new(response)
|
839
|
+
end
|
840
|
+
|
819
841
|
end
|
820
842
|
|
821
843
|
class AnyOf < Base
|
@@ -838,6 +860,8 @@ module PayPal::SDK
|
|
838
860
|
object_of :valid_until, String
|
839
861
|
object_of :create_time, String
|
840
862
|
object_of :update_time, String
|
863
|
+
object_of :reference_id, String
|
864
|
+
object_of :receipt_id, String
|
841
865
|
array_of :links, Links
|
842
866
|
end
|
843
867
|
|
@@ -878,7 +902,8 @@ module PayPal::SDK
|
|
878
902
|
class Order < Base
|
879
903
|
def self.load_members
|
880
904
|
object_of :id, String
|
881
|
-
object_of :purchase_unit_reference_id, String
|
905
|
+
object_of :purchase_unit_reference_id, String # Deprecated - use :reference_id instead
|
906
|
+
object_of :reference_id, String
|
882
907
|
object_of :amount, Amount
|
883
908
|
object_of :payment_mode, String
|
884
909
|
object_of :state, String
|
@@ -932,11 +957,12 @@ module PayPal::SDK
|
|
932
957
|
object_of :amount, Amount
|
933
958
|
object_of :is_final_capture, Boolean
|
934
959
|
object_of :state, String
|
960
|
+
object_of :reason_code, String
|
935
961
|
object_of :parent_payment, String
|
962
|
+
object_of :invoice_number, String
|
936
963
|
object_of :transaction_fee, Currency
|
937
964
|
object_of :create_time, String
|
938
965
|
object_of :update_time, String
|
939
|
-
object_of :invoice_number, String
|
940
966
|
array_of :links, Links
|
941
967
|
end
|
942
968
|
|
@@ -950,12 +976,20 @@ module PayPal::SDK
|
|
950
976
|
end
|
951
977
|
end
|
952
978
|
|
979
|
+
# Deprecated - please use refund_request
|
953
980
|
def refund(refund)
|
954
981
|
refund = Refund.new(refund) unless refund.is_a? Refund
|
955
982
|
path = "v1/payments/capture/#{self.id}/refund"
|
956
983
|
response = api.post(path, refund.to_hash, http_header)
|
957
984
|
Refund.new(response)
|
958
985
|
end
|
986
|
+
|
987
|
+
def refund_request(refund_request)
|
988
|
+
refund_request = RefundRequest.new(refund_request) unless refund_request.is_a? RefundRequest
|
989
|
+
path = "v1/payments/capture/#{self.id}/refund"
|
990
|
+
response = api.post(path, refund_request.to_hash, http_header)
|
991
|
+
DetailedRefund.new(response)
|
992
|
+
end
|
959
993
|
end
|
960
994
|
|
961
995
|
class Refund < Base
|
@@ -964,12 +998,14 @@ module PayPal::SDK
|
|
964
998
|
object_of :amount, Amount
|
965
999
|
object_of :state, String
|
966
1000
|
object_of :reason, String
|
1001
|
+
object_of :invoice_number, String
|
967
1002
|
object_of :sale_id, String
|
968
1003
|
object_of :capture_id, String
|
969
1004
|
object_of :parent_payment, String
|
970
1005
|
object_of :description, String
|
971
1006
|
object_of :create_time, String
|
972
1007
|
object_of :update_time, String
|
1008
|
+
object_of :reason_code, String
|
973
1009
|
array_of :links, Links
|
974
1010
|
end
|
975
1011
|
|
@@ -984,6 +1020,31 @@ module PayPal::SDK
|
|
984
1020
|
end
|
985
1021
|
end
|
986
1022
|
|
1023
|
+
class RefundRequest < Base
|
1024
|
+
def self.load_members
|
1025
|
+
object_of :amount, Amount
|
1026
|
+
object_of :description, String
|
1027
|
+
object_of :refund_type, String
|
1028
|
+
object_of :refund_source, String
|
1029
|
+
object_of :reason, String
|
1030
|
+
object_of :invoice_number, String
|
1031
|
+
object_of :refund_advice, Boolean
|
1032
|
+
object_of :is_non_platform_transaction, String
|
1033
|
+
end
|
1034
|
+
end
|
1035
|
+
|
1036
|
+
class DetailedRefund < Refund
|
1037
|
+
def self.load_members
|
1038
|
+
object_of :custom, String
|
1039
|
+
object_of :invoice_number, String
|
1040
|
+
object_of :refund_to_payer, Currency
|
1041
|
+
array_of :refund_to_external_funding, ExternalFunding
|
1042
|
+
object_of :refund_from_transaction_fee, Currency
|
1043
|
+
object_of :refund_from_received_amount, Currency
|
1044
|
+
object_of :total_refunded_amount, Currency
|
1045
|
+
end
|
1046
|
+
end
|
1047
|
+
|
987
1048
|
class Error < Base
|
988
1049
|
def self.load_members
|
989
1050
|
object_of :name, String
|
@@ -1055,14 +1116,14 @@ module PayPal::SDK
|
|
1055
1116
|
|
1056
1117
|
class Patch < Base
|
1057
1118
|
def self.load_members
|
1058
|
-
|
1059
|
-
|
1060
|
-
|
1061
|
-
|
1119
|
+
object_of :op, String
|
1120
|
+
object_of :path, String
|
1121
|
+
object_of :value, Object
|
1122
|
+
object_of :from, String
|
1062
1123
|
end
|
1063
1124
|
end
|
1064
|
-
class PatchRequest < Base
|
1065
1125
|
|
1126
|
+
class PatchRequest < Base
|
1066
1127
|
def self.load_members
|
1067
1128
|
object_of :op, String
|
1068
1129
|
object_of :path, String
|
@@ -1074,8 +1135,8 @@ module PayPal::SDK
|
|
1074
1135
|
class PaymentExecution < Base
|
1075
1136
|
def self.load_members
|
1076
1137
|
object_of :payer_id, String
|
1077
|
-
array_of :transactions, CartBase
|
1078
1138
|
object_of :carrier_account_id, String
|
1139
|
+
array_of :transactions, CartBase
|
1079
1140
|
end
|
1080
1141
|
end
|
1081
1142
|
|
@@ -1122,30 +1183,39 @@ module PayPal::SDK
|
|
1122
1183
|
class Invoice < Base
|
1123
1184
|
def self.load_members
|
1124
1185
|
object_of :id, String
|
1125
|
-
|
1126
|
-
|
1127
|
-
|
1128
|
-
|
1129
|
-
|
1130
|
-
|
1131
|
-
|
1132
|
-
|
1133
|
-
|
1134
|
-
|
1135
|
-
|
1136
|
-
|
1137
|
-
|
1138
|
-
|
1139
|
-
|
1140
|
-
|
1141
|
-
|
1142
|
-
|
1143
|
-
|
1144
|
-
|
1145
|
-
|
1186
|
+
object_of :number, String
|
1187
|
+
object_of :template_id, String
|
1188
|
+
object_of :uri, String
|
1189
|
+
object_of :status, String
|
1190
|
+
object_of :merchant_info, MerchantInfo
|
1191
|
+
array_of :billing_info, BillingInfo
|
1192
|
+
array_of :cc_info, Participant
|
1193
|
+
object_of :shipping_info, ShippingInfo
|
1194
|
+
array_of :items, InvoiceItem
|
1195
|
+
object_of :invoice_date, String
|
1196
|
+
object_of :payment_term, PaymentTerm
|
1197
|
+
object_of :reference, String
|
1198
|
+
object_of :discount, Cost
|
1199
|
+
object_of :shipping_cost, ShippingCost
|
1200
|
+
object_of :custom, CustomAmount
|
1201
|
+
object_of :allow_partial_payment, Boolean
|
1202
|
+
object_of :minimum_amount_due, Currency
|
1203
|
+
object_of :tax_calculated_after_discount, Boolean
|
1204
|
+
object_of :tax_inclusive, Boolean
|
1205
|
+
object_of :terms, String
|
1206
|
+
object_of :note, String
|
1207
|
+
object_of :merchant_memo, String
|
1208
|
+
object_of :logo_url, String
|
1209
|
+
object_of :total_amount, Currency
|
1146
1210
|
array_of :payments, PaymentDetail
|
1147
|
-
array_of :
|
1148
|
-
|
1211
|
+
array_of :refunds, RefundDetail
|
1212
|
+
object_of :metadata, Metadata
|
1213
|
+
object_of :additional_data, String
|
1214
|
+
object_of :gratuity, Currency
|
1215
|
+
object_of :paid_amount, PaymentSummary
|
1216
|
+
object_of :refunded_amount, PaymentSummary
|
1217
|
+
array_of :attachments, FileAttachment
|
1218
|
+
array_of :links, Links
|
1149
1219
|
end
|
1150
1220
|
|
1151
1221
|
include RequestDataType
|
@@ -1213,7 +1283,6 @@ module PayPal::SDK
|
|
1213
1283
|
raise_on_api_error :create, :send_invoice, :remind, :cancel,
|
1214
1284
|
:record_payment, :record_refund, :update, :delete
|
1215
1285
|
|
1216
|
-
|
1217
1286
|
#
|
1218
1287
|
class << self
|
1219
1288
|
def search(options, access_token = nil)
|
@@ -1235,11 +1304,157 @@ module PayPal::SDK
|
|
1235
1304
|
api.token = access_token unless access_token.nil?
|
1236
1305
|
Invoices.new(api.get(path, options))
|
1237
1306
|
end
|
1307
|
+
|
1308
|
+
def qr_code(options = {})
|
1309
|
+
path = "v1/invoicing/invoices/{invoice_id}/qr-code"
|
1310
|
+
object.new(api.get(path, options))
|
1311
|
+
end
|
1312
|
+
|
1313
|
+
def self.generate_number(options)
|
1314
|
+
path = "v1/invoicing/invoices/next-invoice-number"
|
1315
|
+
response = api.post(path, options)
|
1316
|
+
object.new(response)
|
1317
|
+
end
|
1238
1318
|
end
|
1239
1319
|
end
|
1240
1320
|
|
1241
|
-
class
|
1321
|
+
class Participant < Base
|
1322
|
+
def self.load_members
|
1323
|
+
object_of :email, String
|
1324
|
+
object_of :first_name, String
|
1325
|
+
object_of :last_name, String
|
1326
|
+
object_of :business_name, String
|
1327
|
+
object_of :phone, Phone
|
1328
|
+
object_of :fax, Phone
|
1329
|
+
object_of :website, String
|
1330
|
+
object_of :additional_info, String
|
1331
|
+
object_of :address, Address
|
1332
|
+
end
|
1333
|
+
end
|
1334
|
+
|
1335
|
+
class Template < Base
|
1336
|
+
|
1337
|
+
def self.load_members
|
1338
|
+
object_of :template_id, String
|
1339
|
+
object_of :name, String
|
1340
|
+
object_of :default, Boolean
|
1341
|
+
object_of :template_data, TemplateData
|
1342
|
+
array_of :settings, TemplateSettings
|
1343
|
+
object_of :unit_of_measure, String
|
1344
|
+
object_of :custom, Boolean
|
1345
|
+
array_of :links, Links
|
1346
|
+
end
|
1347
|
+
|
1348
|
+
include RequestDataType
|
1349
|
+
|
1350
|
+
def delete()
|
1351
|
+
path = "v1/invoicing/templates/#{self.template_id}"
|
1352
|
+
response = api.delete(path, {})
|
1353
|
+
self.merge!(response)
|
1354
|
+
success?
|
1355
|
+
end
|
1356
|
+
|
1357
|
+
def update()
|
1358
|
+
path = "v1/invoicing/templates/#{self.template_id}"
|
1359
|
+
response = api.put(path, self.to_hash, http_header)
|
1360
|
+
self.merge!(response)
|
1361
|
+
Template.new(response)
|
1362
|
+
end
|
1363
|
+
|
1364
|
+
def create()
|
1365
|
+
path = "v1/invoicing/templates"
|
1366
|
+
response = api.post(path, self.to_hash, http_header)
|
1367
|
+
self.merge!(response)
|
1368
|
+
Template.new(response)
|
1369
|
+
end
|
1370
|
+
|
1371
|
+
class << self
|
1372
|
+
def get(template_id, options = {})
|
1373
|
+
raise ArgumentError.new("template_id required") if template_id.to_s.strip.empty?
|
1374
|
+
path = "v1/invoicing/templates/#{template_id}"
|
1375
|
+
self.new(api.get(path, options))
|
1376
|
+
end
|
1377
|
+
end
|
1378
|
+
end
|
1379
|
+
|
1380
|
+
class TemplateData < Base
|
1381
|
+
|
1382
|
+
def self.load_members
|
1383
|
+
object_of :merchant_info, MerchantInfo
|
1384
|
+
array_of :billing_info, BillingInfo
|
1385
|
+
array_of :cc_info, String
|
1386
|
+
object_of :shipping_info, ShippingInfo
|
1387
|
+
array_of :items, InvoiceItem
|
1388
|
+
object_of :payment_term, PaymentTerm
|
1389
|
+
object_of :reference, String
|
1390
|
+
object_of :discount, Cost
|
1391
|
+
object_of :shipping_cost, ShippingCost
|
1392
|
+
object_of :custom, CustomAmount
|
1393
|
+
object_of :allow_partial_payment, Boolean
|
1394
|
+
object_of :minimum_amount_due, Currency
|
1395
|
+
object_of :tax_calculated_after_discount, Boolean
|
1396
|
+
object_of :tax_inclusive, Boolean
|
1397
|
+
object_of :terms, String
|
1398
|
+
object_of :note, String
|
1399
|
+
object_of :merchant_memo, String
|
1400
|
+
object_of :logo_url, String
|
1401
|
+
object_of :total_amount, Currency
|
1402
|
+
array_of :attachments, FileAttachment
|
1403
|
+
end
|
1404
|
+
|
1405
|
+
end
|
1406
|
+
|
1407
|
+
class TemplateSettings < Base
|
1408
|
+
|
1409
|
+
def self.load_members
|
1410
|
+
object_of :field_name, String
|
1411
|
+
object_of :display_preference, TemplateSettingsMetadata
|
1412
|
+
end
|
1413
|
+
end
|
1414
|
+
|
1415
|
+
class TemplateSettingsMetadata < Base
|
1416
|
+
|
1417
|
+
def self.load_members
|
1418
|
+
object_of :hidden, Boolean
|
1419
|
+
end
|
1420
|
+
|
1421
|
+
end
|
1422
|
+
|
1423
|
+
class PaymentSummary < Base
|
1424
|
+
def self.load_members
|
1425
|
+
object_of :paypal, Currency
|
1426
|
+
object_of :other, Currency
|
1427
|
+
end
|
1428
|
+
end
|
1429
|
+
class FileAttachment < Base
|
1242
1430
|
|
1431
|
+
def self.load_members
|
1432
|
+
object_of :name, String
|
1433
|
+
object_of :url, String
|
1434
|
+
end
|
1435
|
+
|
1436
|
+
end
|
1437
|
+
class Templates < Base
|
1438
|
+
|
1439
|
+
def self.load_members
|
1440
|
+
array_of :addresses, Address
|
1441
|
+
array_of :emails, String
|
1442
|
+
array_of :phones, Phone
|
1443
|
+
array_of :templates, Template
|
1444
|
+
array_of :links, Links
|
1445
|
+
end
|
1446
|
+
|
1447
|
+
include RequestDataType
|
1448
|
+
|
1449
|
+
class << self
|
1450
|
+
def get_all(options = {})
|
1451
|
+
path = "v1/invoicing/templates/"
|
1452
|
+
Templates.new(api.get(path, options))
|
1453
|
+
end
|
1454
|
+
end
|
1455
|
+
end
|
1456
|
+
|
1457
|
+
class WebhooksEventType < Base
|
1243
1458
|
def self.load_members
|
1244
1459
|
array_of :event_types, EventType
|
1245
1460
|
end
|
@@ -1270,6 +1485,7 @@ module PayPal::SDK
|
|
1270
1485
|
def self.load_members
|
1271
1486
|
object_of :name, String
|
1272
1487
|
object_of :description, String
|
1488
|
+
object_of :status, String
|
1273
1489
|
end
|
1274
1490
|
end
|
1275
1491
|
|
@@ -1286,10 +1502,12 @@ module PayPal::SDK
|
|
1286
1502
|
object_of :id, String
|
1287
1503
|
object_of :create_time, String
|
1288
1504
|
object_of :resource_type, String
|
1505
|
+
object_of :event_version, String
|
1289
1506
|
object_of :event_type, String
|
1290
1507
|
object_of :summary, String
|
1508
|
+
object_of :status, String
|
1291
1509
|
object_of :resource, Hash
|
1292
|
-
array_of
|
1510
|
+
array_of :links, Links
|
1293
1511
|
end
|
1294
1512
|
|
1295
1513
|
def resend()
|
@@ -1312,8 +1530,8 @@ module PayPal::SDK
|
|
1312
1530
|
class << self
|
1313
1531
|
|
1314
1532
|
def get_cert(cert_url)
|
1315
|
-
data =
|
1316
|
-
cert = OpenSSL::X509::Certificate.new data
|
1533
|
+
data = Net::HTTP.get_response(URI.parse(cert_url))
|
1534
|
+
cert = OpenSSL::X509::Certificate.new data.body
|
1317
1535
|
end
|
1318
1536
|
|
1319
1537
|
def get_cert_chain()
|
@@ -1384,9 +1602,18 @@ module PayPal::SDK
|
|
1384
1602
|
end
|
1385
1603
|
|
1386
1604
|
def get(webhook_event_id)
|
1387
|
-
|
1388
|
-
|
1389
|
-
|
1605
|
+
WebhookEvent.find(webhook_event_id)
|
1606
|
+
end
|
1607
|
+
|
1608
|
+
def find(resource_id)
|
1609
|
+
raise ArgumentError.new("webhook_event_id required") if resource_id.to_s.strip.empty?
|
1610
|
+
path = "v1/notifications/webhooks-events/#{resource_id}"
|
1611
|
+
self.new(api.get(path))
|
1612
|
+
end
|
1613
|
+
|
1614
|
+
def all(options = {})
|
1615
|
+
path = "v1/notifications/webhooks-events"
|
1616
|
+
WebhookEventList.new(api.get(path, options))
|
1390
1617
|
end
|
1391
1618
|
end
|
1392
1619
|
end
|
@@ -1396,8 +1623,8 @@ module PayPal::SDK
|
|
1396
1623
|
def self.load_members
|
1397
1624
|
object_of :id, String
|
1398
1625
|
object_of :url, String
|
1399
|
-
array_of
|
1400
|
-
array_of
|
1626
|
+
array_of :event_types, EventType
|
1627
|
+
array_of :links, Links
|
1401
1628
|
end
|
1402
1629
|
|
1403
1630
|
include RequestDataType
|
@@ -1433,11 +1660,13 @@ module PayPal::SDK
|
|
1433
1660
|
path = "v1/notifications/webhooks/#{webhook_id}"
|
1434
1661
|
Webhook.new(api.get(path))
|
1435
1662
|
end
|
1663
|
+
|
1436
1664
|
def get_event_types(webhook_id)
|
1437
1665
|
raise ArgumentError.new("webhook_id required") if webhook_id.to_s.strip.empty?
|
1438
1666
|
path = "v1/notifications/webhooks/#{webhook_id}/event-types"
|
1439
1667
|
EventTypeList.new(api.get(path))
|
1440
1668
|
end
|
1669
|
+
|
1441
1670
|
def all(options={})
|
1442
1671
|
path = "v1/notifications/webhooks"
|
1443
1672
|
WebhookList.new(api.get(path))
|
@@ -1484,6 +1713,7 @@ module PayPal::SDK
|
|
1484
1713
|
object_of :note, String
|
1485
1714
|
object_of :receiver, String
|
1486
1715
|
object_of :sender_item_id, String
|
1716
|
+
object_of :recipient_wallet, String
|
1487
1717
|
end
|
1488
1718
|
|
1489
1719
|
include RequestDataType
|
@@ -1559,28 +1789,31 @@ module PayPal::SDK
|
|
1559
1789
|
|
1560
1790
|
class InvoiceItem < Base
|
1561
1791
|
def self.load_members
|
1562
|
-
|
1563
|
-
|
1564
|
-
|
1565
|
-
|
1566
|
-
|
1567
|
-
|
1568
|
-
|
1792
|
+
object_of :name, String
|
1793
|
+
object_of :description, String
|
1794
|
+
object_of :quantity, Number
|
1795
|
+
object_of :unit_price, Currency
|
1796
|
+
object_of :tax, Tax
|
1797
|
+
object_of :date, String
|
1798
|
+
object_of :discount, Cost
|
1799
|
+
object_of :image_url, String
|
1800
|
+
object_of :unit_of_measure, String
|
1569
1801
|
end
|
1570
1802
|
end
|
1571
1803
|
|
1572
1804
|
class MerchantInfo < Base
|
1573
1805
|
def self.load_members
|
1574
|
-
|
1575
|
-
|
1576
|
-
|
1577
|
-
|
1578
|
-
|
1579
|
-
|
1580
|
-
|
1581
|
-
|
1582
|
-
|
1583
|
-
|
1806
|
+
object_of :email, String
|
1807
|
+
object_of :first_name, String
|
1808
|
+
object_of :last_name, String
|
1809
|
+
object_of :address, Address
|
1810
|
+
object_of :business_name, String
|
1811
|
+
object_of :phone, Phone
|
1812
|
+
object_of :fax, Phone
|
1813
|
+
object_of :website, String
|
1814
|
+
object_of :tax_id, String
|
1815
|
+
object_of :additional_info_label, String
|
1816
|
+
object_of :additional_info, String
|
1584
1817
|
end
|
1585
1818
|
end
|
1586
1819
|
|
@@ -1590,9 +1823,37 @@ module PayPal::SDK
|
|
1590
1823
|
object_of :first_name, String
|
1591
1824
|
object_of :last_name, String
|
1592
1825
|
object_of :business_name, String
|
1593
|
-
object_of :address,
|
1826
|
+
object_of :address, InvoiceAddress
|
1594
1827
|
object_of :language, String
|
1595
1828
|
object_of :additional_info, String
|
1829
|
+
object_of :notification_channel, String
|
1830
|
+
object_of :phone, Phone
|
1831
|
+
|
1832
|
+
define_method "address=" do |value|
|
1833
|
+
if value.is_a?(Address)
|
1834
|
+
value = value.to_hash
|
1835
|
+
end
|
1836
|
+
object = convert_object(value, InvoiceAddress)
|
1837
|
+
instance_variable_set("@address", object)
|
1838
|
+
end
|
1839
|
+
|
1840
|
+
define_method "address" do |&block|
|
1841
|
+
default_value = PayPal::SDK::Core::Util::OrderedHash.new
|
1842
|
+
value = instance_variable_get("@address") || ( default_value && (send("address=", default_value)))
|
1843
|
+
value = convert_object(value.to_hash, Address)
|
1844
|
+
value
|
1845
|
+
end
|
1846
|
+
|
1847
|
+
define_method "invoice_address=" do |value|
|
1848
|
+
object = convert_object(value, InvoiceAddress)
|
1849
|
+
instance_variable_set("@address", object)
|
1850
|
+
end
|
1851
|
+
|
1852
|
+
define_method "invoice_address" do |&block|
|
1853
|
+
default_value = PayPal::SDK::Core::Util::OrderedHash.new
|
1854
|
+
value = instance_variable_get("@address") || ( default_value && (send("address=", default_value)))
|
1855
|
+
value
|
1856
|
+
end
|
1596
1857
|
end
|
1597
1858
|
end
|
1598
1859
|
|
@@ -1601,8 +1862,34 @@ module PayPal::SDK
|
|
1601
1862
|
object_of :first_name, String
|
1602
1863
|
object_of :last_name, String
|
1603
1864
|
object_of :business_name, String
|
1604
|
-
object_of :address,
|
1865
|
+
object_of :address, InvoiceAddress
|
1605
1866
|
object_of :email, String
|
1867
|
+
|
1868
|
+
define_method "address=" do |value|
|
1869
|
+
if value.is_a?(Address)
|
1870
|
+
value = value.to_hash
|
1871
|
+
end
|
1872
|
+
object = convert_object(value, InvoiceAddress)
|
1873
|
+
instance_variable_set("@address", object)
|
1874
|
+
end
|
1875
|
+
|
1876
|
+
define_method "address" do |&block|
|
1877
|
+
default_value = PayPal::SDK::Core::Util::OrderedHash.new
|
1878
|
+
value = instance_variable_get("@address") || ( default_value && (send("address=", default_value)))
|
1879
|
+
value = convert_object(value.to_hash, Address)
|
1880
|
+
value
|
1881
|
+
end
|
1882
|
+
|
1883
|
+
define_method "invoice_address=" do |value|
|
1884
|
+
object = convert_object(value, InvoiceAddress)
|
1885
|
+
instance_variable_set("@address", object)
|
1886
|
+
end
|
1887
|
+
|
1888
|
+
define_method "invoice_address" do |&block|
|
1889
|
+
default_value = PayPal::SDK::Core::Util::OrderedHash.new
|
1890
|
+
value = instance_variable_get("@address") || ( default_value && (send("address=", default_value)))
|
1891
|
+
value
|
1892
|
+
end
|
1606
1893
|
end
|
1607
1894
|
end
|
1608
1895
|
|
@@ -1611,6 +1898,7 @@ module PayPal::SDK
|
|
1611
1898
|
object_of :subject, String
|
1612
1899
|
object_of :note, String
|
1613
1900
|
object_of :send_to_merchant, Boolean
|
1901
|
+
array_of :cc_emails, String
|
1614
1902
|
end
|
1615
1903
|
end
|
1616
1904
|
|
@@ -1668,6 +1956,7 @@ module PayPal::SDK
|
|
1668
1956
|
object_of :page, Number
|
1669
1957
|
object_of :page_size, Number
|
1670
1958
|
object_of :total_count_required, Boolean
|
1959
|
+
object_of :archived, Boolean
|
1671
1960
|
end
|
1672
1961
|
end
|
1673
1962
|
|
@@ -1885,7 +2174,7 @@ module PayPal::SDK
|
|
1885
2174
|
object_of :rel, String
|
1886
2175
|
object_of :targetSchema, HyperSchema
|
1887
2176
|
object_of :method, String
|
1888
|
-
object_of :
|
2177
|
+
object_of :encType, String
|
1889
2178
|
object_of :schema, HyperSchema
|
1890
2179
|
end
|
1891
2180
|
end
|
@@ -2109,10 +2398,10 @@ module PayPal::SDK
|
|
2109
2398
|
def self.load_members
|
2110
2399
|
object_of :id, String
|
2111
2400
|
object_of :name, String
|
2401
|
+
object_of :temporary, Boolean
|
2112
2402
|
object_of :flow_config, FlowConfig
|
2113
2403
|
object_of :input_fields, InputFields
|
2114
2404
|
object_of :presentation, Presentation
|
2115
|
-
object_of :temporary, Boolean
|
2116
2405
|
end
|
2117
2406
|
|
2118
2407
|
include RequestDataType
|
@@ -2132,8 +2421,9 @@ module PayPal::SDK
|
|
2132
2421
|
end
|
2133
2422
|
|
2134
2423
|
def partial_update(patch_request)
|
2424
|
+
patch_request = PatchRequest.new(patch_request) unless patch_request.is_a? PatchRequest
|
2135
2425
|
path = "v1/payment-experience/web-profiles/#{self.id}"
|
2136
|
-
response = api.patch(path, patch_request, http_header)
|
2426
|
+
response = api.patch(path, patch_request.to_hash, http_header)
|
2137
2427
|
self.merge!(response)
|
2138
2428
|
success?
|
2139
2429
|
end
|
@@ -2173,6 +2463,8 @@ module PayPal::SDK
|
|
2173
2463
|
def self.load_members
|
2174
2464
|
object_of :landing_page_type, String
|
2175
2465
|
object_of :bank_txn_pending_url, String
|
2466
|
+
object_of :user_action, String
|
2467
|
+
object_of :return_uri_http_method, String
|
2176
2468
|
end
|
2177
2469
|
end
|
2178
2470
|
|
@@ -2189,12 +2481,8 @@ module PayPal::SDK
|
|
2189
2481
|
object_of :brand_name, String
|
2190
2482
|
object_of :logo_image, String
|
2191
2483
|
object_of :locale_code, String
|
2192
|
-
|
2193
|
-
|
2194
|
-
|
2195
|
-
class CreateProfileResponse < Base
|
2196
|
-
def self.load_members
|
2197
|
-
object_of :id, String
|
2484
|
+
object_of :return_url_label, String
|
2485
|
+
object_of :note_to_seller_label, String
|
2198
2486
|
end
|
2199
2487
|
end
|
2200
2488
|
|
@@ -2209,6 +2497,97 @@ module PayPal::SDK
|
|
2209
2497
|
end
|
2210
2498
|
end
|
2211
2499
|
|
2500
|
+
class Dispute < Base
|
2501
|
+
def self.load_members
|
2502
|
+
object_of :dispute_id, String
|
2503
|
+
object_of :create_time, String
|
2504
|
+
object_of :update_time, String
|
2505
|
+
array_of :disputed_transactions, TransactionInfo
|
2506
|
+
object_of :reason, String
|
2507
|
+
object_of :status, String
|
2508
|
+
object_of :dispute_amount, Money
|
2509
|
+
object_of :external_reason_code, String
|
2510
|
+
object_of :dispute_outcome, DisputeOutcome
|
2511
|
+
object_of :dispute_life_cycle_stage, String
|
2512
|
+
object_of :dispute_channel, String
|
2513
|
+
array_of :messages, Messages
|
2514
|
+
object_of :buyer_response_due_date, String
|
2515
|
+
object_of :seller_response_due_date, String
|
2516
|
+
object_of :offer, Offer
|
2517
|
+
array_of :links, Links
|
2518
|
+
end
|
2519
|
+
end
|
2520
|
+
|
2521
|
+
class TransactionInfo < Base
|
2522
|
+
def self.load_members
|
2523
|
+
object_of :buyer_transaction_id, String
|
2524
|
+
object_of :seller_transaction_id, String
|
2525
|
+
object_of :create_time, String
|
2526
|
+
object_of :transaction_status, String
|
2527
|
+
object_of :gross_amount, Money
|
2528
|
+
object_of :invoice_number, String
|
2529
|
+
object_of :custom, String
|
2530
|
+
object_of :buyer, Buyer
|
2531
|
+
object_of :seller, Seller
|
2532
|
+
array_of :items, ItemInfo
|
2533
|
+
end
|
2534
|
+
end
|
2535
|
+
|
2536
|
+
class Buyer < Base
|
2537
|
+
def self.load_members
|
2538
|
+
object_of :email, String
|
2539
|
+
object_of :name, String
|
2540
|
+
end
|
2541
|
+
end
|
2542
|
+
|
2543
|
+
class Seller < Base
|
2544
|
+
def self.load_members
|
2545
|
+
object_of :email, String
|
2546
|
+
object_of :merchant_id, String
|
2547
|
+
object_of :name, String
|
2548
|
+
end
|
2549
|
+
end
|
2550
|
+
|
2551
|
+
class ItemInfo < Base
|
2552
|
+
def self.load_members
|
2553
|
+
object_of :item_id, String
|
2554
|
+
object_of :partner_transaction_id, String
|
2555
|
+
object_of :reason, String
|
2556
|
+
object_of :dispute_amount, Money
|
2557
|
+
object_of :notes, String
|
2558
|
+
end
|
2559
|
+
end
|
2560
|
+
|
2561
|
+
class Money < Base
|
2562
|
+
def self.load_members
|
2563
|
+
object_of :currency_code, String
|
2564
|
+
object_of :value, String
|
2565
|
+
end
|
2566
|
+
end
|
2567
|
+
|
2568
|
+
class DisputeOutcome < Base
|
2569
|
+
def self.load_members
|
2570
|
+
object_of :outcome_code, String
|
2571
|
+
object_of :amount_refunded, Money
|
2572
|
+
end
|
2573
|
+
end
|
2574
|
+
|
2575
|
+
class Messages < Base
|
2576
|
+
def self.load_members
|
2577
|
+
object_of :posted_by, String
|
2578
|
+
object_of :time_posted, String
|
2579
|
+
object_of :content, String
|
2580
|
+
end
|
2581
|
+
end
|
2582
|
+
|
2583
|
+
class Offer < Base
|
2584
|
+
def self.load_members
|
2585
|
+
object_of :buyer_requested_amount, Money
|
2586
|
+
object_of :seller_offered_amount, Money
|
2587
|
+
object_of :offer_type, String
|
2588
|
+
end
|
2589
|
+
end
|
2590
|
+
|
2212
2591
|
constants.each do |data_type_klass|
|
2213
2592
|
data_type_klass = const_get(data_type_klass)
|
2214
2593
|
data_type_klass.load_members if defined? data_type_klass.load_members
|