paypal-sdk-rest 1.7.6 → 2.0.0.rc1
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 +4 -14
- data/README.md +45 -255
- data/lib/lib.rb +88 -0
- data/lib/paypal/core/access_token.rb +20 -0
- data/lib/paypal/core/paypal_environment.rb +38 -0
- data/lib/paypal/core/paypal_http_client.rb +51 -0
- data/lib/paypal/core/token_requests.rb +40 -0
- data/lib/paypal/core/version.rb +3 -0
- data/lib/v1/billing_agreements/agreement_bill_balance_request.rb +35 -0
- data/lib/v1/billing_agreements/agreement_cancel_request.rb +35 -0
- data/lib/v1/billing_agreements/agreement_create_request.rb +33 -0
- data/lib/v1/billing_agreements/agreement_execute_request.rb +31 -0
- data/lib/v1/billing_agreements/agreement_get_request.rb +31 -0
- data/lib/v1/billing_agreements/agreement_re_activate_request.rb +35 -0
- data/lib/v1/billing_agreements/agreement_set_balance_request.rb +35 -0
- data/lib/v1/billing_agreements/agreement_suspend_request.rb +35 -0
- data/lib/v1/billing_agreements/agreement_transactions_request.rb +41 -0
- data/lib/v1/billing_agreements/agreement_update_request.rb +35 -0
- data/lib/v1/billing_plans/plan_create_request.rb +33 -0
- data/lib/v1/billing_plans/plan_get_request.rb +31 -0
- data/lib/v1/billing_plans/plan_list_request.rb +49 -0
- data/lib/v1/billing_plans/plan_update_request.rb +35 -0
- data/lib/v1/identity/user_consent.rb +45 -0
- data/lib/v1/identity/userinfo_get_request.rb +33 -0
- data/lib/v1/invoices/invoice_cancel_request.rb +35 -0
- data/lib/v1/invoices/invoice_create_request.rb +33 -0
- data/lib/v1/invoices/invoice_delete_external_payment_request.rb +33 -0
- data/lib/v1/invoices/invoice_delete_external_refund_request.rb +33 -0
- data/lib/v1/invoices/invoice_delete_request.rb +31 -0
- data/lib/v1/invoices/invoice_get_request.rb +31 -0
- data/lib/v1/invoices/invoice_list_request.rb +44 -0
- data/lib/v1/invoices/invoice_next_invoice_number_request.rb +29 -0
- data/lib/v1/invoices/invoice_qr_code_request.rb +46 -0
- data/lib/v1/invoices/invoice_record_payment_request.rb +35 -0
- data/lib/v1/invoices/invoice_record_refund_request.rb +35 -0
- data/lib/v1/invoices/invoice_remind_request.rb +35 -0
- data/lib/v1/invoices/invoice_search_request.rb +33 -0
- data/lib/v1/invoices/invoice_send_request.rb +36 -0
- data/lib/v1/invoices/invoice_update_request.rb +40 -0
- data/lib/v1/invoices/template_create_request.rb +33 -0
- data/lib/v1/invoices/template_delete_request.rb +31 -0
- data/lib/v1/invoices/template_get_request.rb +31 -0
- data/lib/v1/invoices/template_list_request.rb +34 -0
- data/lib/v1/invoices/template_update_request.rb +35 -0
- data/lib/v1/orders/orders_cancel_request.rb +31 -0
- data/lib/v1/orders/orders_create_request.rb +33 -0
- data/lib/v1/orders/orders_get_request.rb +31 -0
- data/lib/v1/orders/orders_pay_request.rb +35 -0
- data/lib/v1/payment_experience/web_profile_create_request.rb +33 -0
- data/lib/v1/payment_experience/web_profile_delete_request.rb +31 -0
- data/lib/v1/payment_experience/web_profile_get_request.rb +31 -0
- data/lib/v1/payment_experience/web_profile_list_request.rb +29 -0
- data/lib/v1/payment_experience/web_profile_partial_update_request.rb +35 -0
- data/lib/v1/payment_experience/web_profile_update_request.rb +35 -0
- data/lib/v1/payments/authorization_capture_request.rb +35 -0
- data/lib/v1/payments/authorization_get_request.rb +31 -0
- data/lib/v1/payments/authorization_reauthorize_request.rb +35 -0
- data/lib/v1/payments/authorization_void_request.rb +31 -0
- data/lib/v1/payments/capture_get_request.rb +31 -0
- data/lib/v1/payments/capture_refund_request.rb +35 -0
- data/lib/v1/payments/order_authorize_request.rb +35 -0
- data/lib/v1/payments/order_capture_request.rb +35 -0
- data/lib/v1/payments/order_get_request.rb +31 -0
- data/lib/v1/payments/order_void_request.rb +31 -0
- data/lib/v1/payments/payment_create_request.rb +33 -0
- data/lib/v1/payments/payment_execute_request.rb +35 -0
- data/lib/v1/payments/payment_get_request.rb +31 -0
- data/lib/v1/payments/payment_list_request.rb +69 -0
- data/lib/v1/payments/payment_update_request.rb +35 -0
- data/lib/v1/payments/refund_get_request.rb +31 -0
- data/lib/v1/payments/sale_get_request.rb +31 -0
- data/lib/v1/payments/sale_refund_request.rb +35 -0
- data/lib/v1/sync/search_get_request.rb +99 -0
- data/lib/v1/vault/credit_card_create_request.rb +33 -0
- data/lib/v1/vault/credit_card_delete_request.rb +31 -0
- data/lib/v1/vault/credit_card_get_request.rb +31 -0
- data/lib/v1/vault/credit_card_list_request.rb +79 -0
- data/lib/v1/vault/credit_card_update_request.rb +35 -0
- data/lib/v1/webhooks/available_event_type_list_request.rb +29 -0
- data/lib/v1/webhooks/event_get_request.rb +31 -0
- data/lib/v1/webhooks/event_list_request.rb +54 -0
- data/lib/v1/webhooks/event_resend_request.rb +35 -0
- data/lib/v1/webhooks/simulate_event_request.rb +33 -0
- data/lib/v1/webhooks/webhook_create_request.rb +33 -0
- data/lib/v1/webhooks/webhook_delete_request.rb +31 -0
- data/lib/v1/webhooks/webhook_get_request.rb +31 -0
- data/lib/v1/webhooks/webhook_list_event_subscriptions_request.rb +31 -0
- data/lib/v1/webhooks/webhook_list_request.rb +34 -0
- data/lib/v1/webhooks/webhook_update_request.rb +35 -0
- data/lib/v1/webhooks/webhook_verify_signature_request.rb +33 -0
- data/spec/integration/test_harness.rb +25 -0
- data/spec/integration/v1/billing_agreements/agreement_create_spec.rb +63 -0
- data/spec/integration/v1/billing_plans/plan_create_spec.rb +12 -0
- data/spec/integration/v1/billing_plans/plan_get_spec.rb +16 -0
- data/spec/integration/v1/billing_plans/plan_helper.rb +71 -0
- data/spec/integration/v1/billing_plans/plan_list_spec.rb +16 -0
- data/spec/integration/v1/billing_plans/plan_update_spec.rb +19 -0
- data/spec/integration/v1/identity/userinfo_get_spec.rb +65 -0
- data/spec/integration/v1/invoices/invoice_cancel_spec.rb +23 -0
- data/spec/integration/v1/invoices/invoice_create_spec.rb +15 -0
- data/spec/integration/v1/invoices/invoice_delete_external_payment_spec.rb +23 -0
- data/spec/integration/v1/invoices/invoice_delete_external_refund_spec.rb +21 -0
- data/spec/integration/v1/invoices/invoice_delete_spec.rb +16 -0
- data/spec/integration/v1/invoices/invoice_get_spec.rb +18 -0
- data/spec/integration/v1/invoices/invoice_helper.rb +171 -0
- data/spec/integration/v1/invoices/invoice_list_spec.rb +20 -0
- data/spec/integration/v1/invoices/invoice_next_invoice_number_spec.rb +14 -0
- data/spec/integration/v1/invoices/invoice_qr_code_spec.rb +18 -0
- data/spec/integration/v1/invoices/invoice_record_payment_spec.rb +14 -0
- data/spec/integration/v1/invoices/invoice_record_refund_spec.rb +14 -0
- data/spec/integration/v1/invoices/invoice_remind_spec.rb +22 -0
- data/spec/integration/v1/invoices/invoice_search_spec.rb +20 -0
- data/spec/integration/v1/invoices/invoice_send_spec.rb +15 -0
- data/spec/integration/v1/invoices/invoice_update_spec.rb +26 -0
- data/spec/integration/v1/invoices/template_create_spec.rb +14 -0
- data/spec/integration/v1/invoices/template_delete_spec.rb +15 -0
- data/spec/integration/v1/invoices/template_get_spec.rb +18 -0
- data/spec/integration/v1/invoices/template_list_spec.rb +15 -0
- data/spec/integration/v1/invoices/template_update_spec.rb +62 -0
- data/spec/integration/v1/orders/orders_cancel_spec.rb +15 -0
- data/spec/integration/v1/orders/orders_create_spec.rb +17 -0
- data/spec/integration/v1/orders/orders_get_spec.rb +18 -0
- data/spec/integration/v1/orders/orders_helper.rb +36 -0
- data/spec/integration/v1/orders/orders_pay_spec.rb +19 -0
- data/spec/integration/v1/payment_experience/pe_helper.rb +35 -0
- data/spec/integration/v1/payment_experience/web_profile_create_spec.rb +20 -0
- data/spec/integration/v1/payment_experience/web_profile_delete_spec.rb +15 -0
- data/spec/integration/v1/payment_experience/web_profile_get_spec.rb +17 -0
- data/spec/integration/v1/payment_experience/web_profile_list_spec.rb +18 -0
- data/spec/integration/v1/payment_experience/web_profile_partial_update_spec.rb +32 -0
- data/spec/integration/v1/payment_experience/web_profile_update_spec.rb +44 -0
- data/spec/integration/v1/payments/authorization_capture_spec.rb +17 -0
- data/spec/integration/v1/payments/authorization_get_spec.rb +18 -0
- data/spec/integration/v1/payments/authorization_reauthorize_spec.rb +26 -0
- data/spec/integration/v1/payments/authorization_void_spec.rb +19 -0
- data/spec/integration/v1/payments/capture_get_spec.rb +20 -0
- data/spec/integration/v1/payments/capture_refund_spec.rb +27 -0
- data/spec/integration/v1/payments/order_authorize_spec.rb +20 -0
- data/spec/integration/v1/payments/order_capture_spec.rb +21 -0
- data/spec/integration/v1/payments/order_get_spec.rb +14 -0
- data/spec/integration/v1/payments/order_void_spec.rb +14 -0
- data/spec/integration/v1/payments/payment_create_spec.rb +13 -0
- data/spec/integration/v1/payments/payment_execute_spec.rb +19 -0
- data/spec/integration/v1/payments/payment_get_spec.rb +17 -0
- data/spec/integration/v1/payments/payment_list_spec.rb +16 -0
- data/spec/integration/v1/payments/payment_update_spec.rb +28 -0
- data/spec/integration/v1/payments/payments_helper.rb +72 -0
- data/spec/integration/v1/payments/refund_get_spec.rb +19 -0
- data/spec/integration/v1/payments/sale_get_spec.rb +18 -0
- data/spec/integration/v1/payments/sale_refund_spec.rb +18 -0
- data/spec/integration/v1/sync/search_get_spec.rb +34 -0
- data/spec/integration/v1/vault/credit_card_create_spec.rb +16 -0
- data/spec/integration/v1/vault/credit_card_delete_spec.rb +16 -0
- data/spec/integration/v1/vault/credit_card_get_spec.rb +17 -0
- data/spec/integration/v1/vault/credit_card_list_spec.rb +18 -0
- data/spec/integration/v1/vault/credit_card_update_spec.rb +26 -0
- data/spec/integration/v1/vault/vault_helper.rb +28 -0
- data/spec/integration/v1/webhooks/available_event_type_list_spec.rb +16 -0
- data/spec/integration/v1/webhooks/webhook_create_spec.rb +12 -0
- data/spec/integration/v1/webhooks/webhook_delete_spec.rb +13 -0
- data/spec/integration/v1/webhooks/webhook_get_spec.rb +16 -0
- data/spec/integration/v1/webhooks/webhook_helper.rb +43 -0
- data/spec/integration/v1/webhooks/webhook_list_event_subscriptions_spec.rb +16 -0
- data/spec/integration/v1/webhooks/webhook_list_spec.rb +15 -0
- data/spec/integration/v1/webhooks/webhook_update_spec.rb +29 -0
- data/spec/integration/v1/webhooks/webhook_verify_signature_spec.rb +20 -0
- data/spec/spec_helper.rb +97 -28
- data/spec/unit/paypal_http_client_spec.rb +264 -0
- metadata +257 -127
- data/Rakefile +0 -15
- data/data/DigiCertHighAssuranceEVRootCA.pem +0 -23
- data/data/DigiCertSHA2ExtendedValidationServerCA.pem +0 -28
- data/data/paypal.crt +0 -171
- data/lib/generators/paypal/sdk/USAGE +0 -3
- data/lib/generators/paypal/sdk/install_generator.rb +0 -17
- data/lib/generators/paypal/sdk/templates/paypal.rb +0 -2
- data/lib/generators/paypal/sdk/templates/paypal.yml +0 -29
- data/lib/paypal-sdk/core/api/base.rb +0 -169
- data/lib/paypal-sdk/core/api/data_types/array_with_block.rb +0 -44
- data/lib/paypal-sdk/core/api/data_types/base.rb +0 -225
- data/lib/paypal-sdk/core/api/data_types/enum.rb +0 -26
- data/lib/paypal-sdk/core/api/data_types/simple_types.rb +0 -52
- data/lib/paypal-sdk/core/api/ipn.rb +0 -66
- data/lib/paypal-sdk/core/api/rest.rb +0 -177
- data/lib/paypal-sdk/core/api.rb +0 -20
- data/lib/paypal-sdk/core/authentication.rb +0 -66
- data/lib/paypal-sdk/core/config.rb +0 -253
- data/lib/paypal-sdk/core/credential/base.rb +0 -27
- data/lib/paypal-sdk/core/credential/certificate.rb +0 -32
- data/lib/paypal-sdk/core/credential/signature.rb +0 -22
- data/lib/paypal-sdk/core/credential/third_party/subject.rb +0 -25
- data/lib/paypal-sdk/core/credential/third_party/token.rb +0 -39
- data/lib/paypal-sdk/core/credential.rb +0 -16
- data/lib/paypal-sdk/core/exceptions.rb +0 -112
- data/lib/paypal-sdk/core/logging.rb +0 -50
- data/lib/paypal-sdk/core/openid_connect/api.rb +0 -50
- data/lib/paypal-sdk/core/openid_connect/data_types.rb +0 -73
- data/lib/paypal-sdk/core/openid_connect/get_api.rb +0 -28
- data/lib/paypal-sdk/core/openid_connect/request_data_type.rb +0 -52
- data/lib/paypal-sdk/core/openid_connect/set_api.rb +0 -36
- data/lib/paypal-sdk/core/openid_connect.rb +0 -140
- data/lib/paypal-sdk/core/util/http_helper.rb +0 -171
- data/lib/paypal-sdk/core/util/oauth_signature.rb +0 -64
- data/lib/paypal-sdk/core/util/ordered_hash.rb +0 -165
- data/lib/paypal-sdk/core/util.rb +0 -11
- data/lib/paypal-sdk/rest/api.rb +0 -23
- data/lib/paypal-sdk/rest/data_types.rb +0 -2597
- data/lib/paypal-sdk/rest/error_hash.rb +0 -39
- data/lib/paypal-sdk/rest/get_api.rb +0 -20
- data/lib/paypal-sdk/rest/request_data_type.rb +0 -53
- data/lib/paypal-sdk/rest/set_api.rb +0 -42
- data/lib/paypal-sdk/rest/version.rb +0 -7
- data/lib/paypal-sdk/rest.rb +0 -39
- data/lib/paypal-sdk-core.rb +0 -38
- data/lib/paypal-sdk-rest.rb +0 -2
- data/spec/README.md +0 -22
- data/spec/config/cacert.pem +0 -171
- data/spec/config/cert_key.pem +0 -33
- data/spec/config/paypal.yml +0 -35
- data/spec/config/sample_data.yml +0 -3
- data/spec/core/api/data_type_spec.rb +0 -289
- data/spec/core/api/rest_spec.rb +0 -211
- data/spec/core/config_spec.rb +0 -192
- data/spec/core/logging_spec.rb +0 -28
- data/spec/core/openid_connect_spec.rb +0 -153
- data/spec/invoice_examples_spec.rb +0 -38
- data/spec/payments_examples_spec.rb +0 -437
- data/spec/payouts_examples_spec.rb +0 -74
- data/spec/rest/data_types_spec.rb +0 -62
- data/spec/rest/error_hash_spec.rb +0 -83
- data/spec/subscription_examples_spec.rb +0 -227
- data/spec/support/sample_data.rb +0 -5
- data/spec/web_profile_examples_spec.rb +0 -106
- data/spec/webhooks_examples_spec.rb +0 -93
data/data/paypal.crt
DELETED
@@ -1,171 +0,0 @@
|
|
1
|
-
Verisign Class 3 Public Primary Certification Authority
|
2
|
-
=======================================================
|
3
|
-
-----BEGIN CERTIFICATE-----
|
4
|
-
MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx
|
5
|
-
FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5
|
6
|
-
IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVow
|
7
|
-
XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz
|
8
|
-
IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
|
9
|
-
A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94
|
10
|
-
f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol
|
11
|
-
hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBALtMEivPLCYA
|
12
|
-
TxQT3ab7/AoRhIzzKBxnki98tsX63/Dolbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59Ah
|
13
|
-
WM1pF+NEHJwZRDmJXNycAA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2Omuf
|
14
|
-
Tqj/ZA1k
|
15
|
-
-----END CERTIFICATE-----
|
16
|
-
|
17
|
-
Verisign Class 3 Public Primary Certification Authority - G2
|
18
|
-
============================================================
|
19
|
-
-----BEGIN CERTIFICATE-----
|
20
|
-
MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT
|
21
|
-
MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy
|
22
|
-
eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
|
23
|
-
biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
|
24
|
-
dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT
|
25
|
-
MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy
|
26
|
-
eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
|
27
|
-
biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
|
28
|
-
dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCO
|
29
|
-
FoUgRm1HP9SFIIThbbP4pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71
|
30
|
-
lSk8UOg013gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwIDAQAB
|
31
|
-
MA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSkU01UbSuvDV1Ai2TT
|
32
|
-
1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7iF6YM40AIOw7n60RzKprxaZLvcRTD
|
33
|
-
Oaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpYoJ2daZH9
|
34
|
-
-----END CERTIFICATE-----
|
35
|
-
|
36
|
-
|
37
|
-
Verisign Class 3 Public Primary Certification Authority - G3
|
38
|
-
============================================================
|
39
|
-
-----BEGIN CERTIFICATE-----
|
40
|
-
MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
|
41
|
-
UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
|
42
|
-
cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
|
43
|
-
IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
|
44
|
-
dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
|
45
|
-
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
|
46
|
-
dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
|
47
|
-
cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg
|
48
|
-
Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
49
|
-
ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1
|
50
|
-
EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc
|
51
|
-
cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw
|
52
|
-
EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj
|
53
|
-
055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
|
54
|
-
ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f
|
55
|
-
j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
|
56
|
-
/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0
|
57
|
-
xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa
|
58
|
-
t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
|
59
|
-
-----END CERTIFICATE-----
|
60
|
-
|
61
|
-
Verisign Class 4 Public Primary Certification Authority - G3
|
62
|
-
============================================================
|
63
|
-
-----BEGIN CERTIFICATE-----
|
64
|
-
MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
|
65
|
-
UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
|
66
|
-
cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
|
67
|
-
IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
|
68
|
-
dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
|
69
|
-
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
|
70
|
-
dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
|
71
|
-
cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg
|
72
|
-
Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
73
|
-
ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS
|
74
|
-
tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM
|
75
|
-
8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW
|
76
|
-
Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX
|
77
|
-
Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
|
78
|
-
j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt
|
79
|
-
mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
|
80
|
-
fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd
|
81
|
-
RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG
|
82
|
-
UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
|
83
|
-
-----END CERTIFICATE-----
|
84
|
-
VeriSign Class 3 Public Primary Certification Authority - G5
|
85
|
-
============================================================
|
86
|
-
-----BEGIN CERTIFICATE-----
|
87
|
-
MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE
|
88
|
-
BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
|
89
|
-
ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
|
90
|
-
IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp
|
91
|
-
ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB
|
92
|
-
yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln
|
93
|
-
biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh
|
94
|
-
dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt
|
95
|
-
YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
|
96
|
-
ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz
|
97
|
-
j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD
|
98
|
-
Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
|
99
|
-
Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r
|
100
|
-
fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/
|
101
|
-
BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv
|
102
|
-
Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
|
103
|
-
aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG
|
104
|
-
SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+
|
105
|
-
X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE
|
106
|
-
KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC
|
107
|
-
Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE
|
108
|
-
ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
|
109
|
-
-----END CERTIFICATE-----
|
110
|
-
VeriSign Universal Root Certification Authority
|
111
|
-
===============================================
|
112
|
-
-----BEGIN CERTIFICATE-----
|
113
|
-
MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE
|
114
|
-
BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
|
115
|
-
ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
|
116
|
-
IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u
|
117
|
-
IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV
|
118
|
-
UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
|
119
|
-
cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
|
120
|
-
IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0
|
121
|
-
aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj
|
122
|
-
1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP
|
123
|
-
MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72
|
124
|
-
9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I
|
125
|
-
AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR
|
126
|
-
tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G
|
127
|
-
CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O
|
128
|
-
a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
|
129
|
-
DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3
|
130
|
-
Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx
|
131
|
-
Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx
|
132
|
-
P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P
|
133
|
-
wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4
|
134
|
-
mJO37M2CYfE45k+XmCpajQ==
|
135
|
-
-----END CERTIFICATE-----
|
136
|
-
|
137
|
-
VeriSign Class 3 Public Primary Certification Authority - G4
|
138
|
-
============================================================
|
139
|
-
-----BEGIN CERTIFICATE-----
|
140
|
-
MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC
|
141
|
-
VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3
|
142
|
-
b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz
|
143
|
-
ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj
|
144
|
-
YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL
|
145
|
-
MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU
|
146
|
-
cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo
|
147
|
-
b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5
|
148
|
-
IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8
|
149
|
-
Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz
|
150
|
-
rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB
|
151
|
-
/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw
|
152
|
-
HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u
|
153
|
-
Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD
|
154
|
-
A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx
|
155
|
-
AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
|
156
|
-
-----END CERTIFICATE-----
|
157
|
-
Verisign Class 3 Public Primary Certification Authority
|
158
|
-
=======================================================
|
159
|
-
-----BEGIN CERTIFICATE-----
|
160
|
-
MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkGA1UEBhMCVVMx
|
161
|
-
FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5
|
162
|
-
IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVow
|
163
|
-
XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz
|
164
|
-
IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
|
165
|
-
A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94
|
166
|
-
f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol
|
167
|
-
hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBABByUqkFFBky
|
168
|
-
CEHwxWsKzH4PIRnN5GfcX6kb5sroc50i2JhucwNhkcV8sEVAbkSdjbCxlnRhLQ2pRdKkkirWmnWX
|
169
|
-
bj9T/UWZYB2oK0z5XqcJ2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/
|
170
|
-
D/xwzoiQ
|
171
|
-
-----END CERTIFICATE-----
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module Paypal
|
2
|
-
module Sdk
|
3
|
-
module Generators
|
4
|
-
class InstallGenerator < Rails::Generators::Base
|
5
|
-
source_root File.expand_path('../templates', __FILE__)
|
6
|
-
|
7
|
-
def copy_config_file
|
8
|
-
copy_file "paypal.yml", "config/paypal.yml"
|
9
|
-
end
|
10
|
-
|
11
|
-
def copy_initializer_file
|
12
|
-
copy_file "paypal.rb", "config/initializers/paypal.rb"
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
test: &default
|
2
|
-
|
3
|
-
# Credentials for REST APIs
|
4
|
-
client_id: EBWKjlELKMYqRNQ6sYvFo64FtaRLRR5BdHEESmha49TM
|
5
|
-
client_secret: EO422dn3gQLgDbuwqTjzrFgFtaRLRR5BdHEESmha49TM
|
6
|
-
|
7
|
-
# Mode can be 'live' or 'sandbox'
|
8
|
-
mode: sandbox
|
9
|
-
|
10
|
-
# Credentials for Classic APIs
|
11
|
-
app_id: APP-80W284485P519543T
|
12
|
-
username: jb-us-seller_api1.paypal.com
|
13
|
-
password: WX4WTU3S8MY44S7F
|
14
|
-
signature: AFcWxV21C7fd0v3bYYYRCpSSRl31A7yDhhsPUU2XhtMoZXsWHFxu-RWy
|
15
|
-
# # With Certificate
|
16
|
-
# cert_path: "config/cert_key.pem"
|
17
|
-
sandbox_email_address: Platform.sdk.seller@gmail.com
|
18
|
-
|
19
|
-
# # IP Address
|
20
|
-
# ip_address: 127.0.0.1
|
21
|
-
# # HTTP Proxy
|
22
|
-
# http_proxy: http://proxy-ipaddress:3129/
|
23
|
-
|
24
|
-
development:
|
25
|
-
<<: *default
|
26
|
-
|
27
|
-
production:
|
28
|
-
<<: *default
|
29
|
-
mode: live
|
@@ -1,169 +0,0 @@
|
|
1
|
-
require 'paypal-sdk/rest/version'
|
2
|
-
|
3
|
-
module PayPal::SDK::Core
|
4
|
-
|
5
|
-
module API
|
6
|
-
# API class provide default functionality for accessing the API web services.
|
7
|
-
# == Example
|
8
|
-
# api = API::Base.new("AdaptivePayments")
|
9
|
-
# response = api.request("GetPaymentOptions", "")
|
10
|
-
class Base
|
11
|
-
|
12
|
-
include Util::HTTPHelper
|
13
|
-
|
14
|
-
attr_accessor :http, :uri, :service_name
|
15
|
-
|
16
|
-
DEFAULT_API_MODE = :sandbox
|
17
|
-
API_MODES = [ :live, :sandbox ]
|
18
|
-
|
19
|
-
# Initialize API object
|
20
|
-
# === Argument
|
21
|
-
# * <tt>service_name</tt> -- (Optional) Service name
|
22
|
-
# * <tt>environment</tt> -- (Optional) Configuration environment to load
|
23
|
-
# * <tt>options</tt> -- (Optional) Override configuration.
|
24
|
-
# === Example
|
25
|
-
# new("AdaptivePayments")
|
26
|
-
# new("AdaptivePayments", :development)
|
27
|
-
# new(:wsdl_service) # It load wsdl_service configuration
|
28
|
-
def initialize(service_name = "", environment = nil, options = {})
|
29
|
-
unless service_name.is_a? String
|
30
|
-
environment, options, service_name = service_name, environment || {}, ""
|
31
|
-
end
|
32
|
-
@service_name = service_name
|
33
|
-
set_config(environment, options)
|
34
|
-
end
|
35
|
-
|
36
|
-
def uri
|
37
|
-
@uri ||=
|
38
|
-
begin
|
39
|
-
uri = URI.parse("#{service_endpoint}/#{service_name}")
|
40
|
-
uri.path = uri.path.gsub(/\/+/, "/")
|
41
|
-
uri
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
def http
|
46
|
-
@http ||= create_http_connection(uri)
|
47
|
-
end
|
48
|
-
|
49
|
-
# Override set_config method to create http connection on changing the configuration.
|
50
|
-
def set_config(*args)
|
51
|
-
@http = @uri = nil
|
52
|
-
super
|
53
|
-
end
|
54
|
-
|
55
|
-
# Get configured API mode( sandbox or live)
|
56
|
-
def api_mode
|
57
|
-
if config.mode and API_MODES.include? config.mode.to_sym
|
58
|
-
config.mode.to_sym
|
59
|
-
else
|
60
|
-
DEFAULT_API_MODE
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
# Get service end point
|
65
|
-
def service_endpoint
|
66
|
-
config.endpoint
|
67
|
-
end
|
68
|
-
|
69
|
-
# Default Http header
|
70
|
-
def default_http_header
|
71
|
-
{ "User-Agent" => self.class.user_agent }
|
72
|
-
end
|
73
|
-
|
74
|
-
# Generate HTTP request for given action and parameters
|
75
|
-
# === Arguments
|
76
|
-
# * <tt>http_method</tt> -- HTTP method(get/put/post/delete/patch)
|
77
|
-
# * <tt>action</tt> -- Action to perform
|
78
|
-
# * <tt>params</tt> -- (Optional) Parameters for the action
|
79
|
-
# * <tt>initheader</tt> -- (Optional) HTTP header
|
80
|
-
def api_call(payload)
|
81
|
-
payload[:header] = default_http_header.merge(payload[:header])
|
82
|
-
payload[:uri] ||= uri.dup
|
83
|
-
payload[:http] ||= http.dup
|
84
|
-
payload[:uri].query = encode_www_form(payload[:query]) if payload[:query] and payload[:query].any?
|
85
|
-
format_request(payload)
|
86
|
-
payload[:response] = http_call(payload)
|
87
|
-
format_response(payload)
|
88
|
-
payload[:data]
|
89
|
-
end
|
90
|
-
|
91
|
-
# Generate HTTP request for given action and parameters
|
92
|
-
# === Arguments
|
93
|
-
# * <tt>action</tt> -- Action to perform
|
94
|
-
# * <tt>params</tt> -- (Optional) Parameters for the action
|
95
|
-
# * <tt>initheader</tt> -- (Optional) HTTP header
|
96
|
-
def post(action, params = {}, header = {}, query = {})
|
97
|
-
action, params, header = "", action, params if action.is_a? Hash
|
98
|
-
api_call(:method => :post, :action => action, :query => query, :params => params, :header => header)
|
99
|
-
end
|
100
|
-
alias_method :request, :post
|
101
|
-
|
102
|
-
def get(action, params = {}, header = {})
|
103
|
-
action, params, header = "", action, params if action.is_a? Hash
|
104
|
-
api_call(:method => :get, :action => action, :query => params, :params => nil, :header => header)
|
105
|
-
end
|
106
|
-
|
107
|
-
def patch(action, params = {}, header = {})
|
108
|
-
action, params, header = "", action, params if action.is_a? Hash
|
109
|
-
api_call(:method => :patch, :action => action, :params => params, :header => header)
|
110
|
-
end
|
111
|
-
|
112
|
-
def put(action, params = {}, header = {})
|
113
|
-
action, params, header = "", action, params if action.is_a? Hash
|
114
|
-
api_call(:method => :put, :action => action, :params => params, :header => header)
|
115
|
-
end
|
116
|
-
|
117
|
-
def delete(action, params = {}, header = {})
|
118
|
-
action, params, header = "", action, params if action.is_a? Hash
|
119
|
-
api_call(:method => :delete, :action => action, :params => params, :header => header)
|
120
|
-
end
|
121
|
-
|
122
|
-
# Format Request data. It will be override by child class
|
123
|
-
# == Arguments
|
124
|
-
# * <tt>action</tt> -- Request action
|
125
|
-
# * <tt>params</tt> -- Request parameters
|
126
|
-
# == Return
|
127
|
-
# * <tt>path</tt> -- Formated request uri object
|
128
|
-
# * <tt>params</tt> -- Formated request Parameters
|
129
|
-
# * <tt>header</tt> -- HTTP Header
|
130
|
-
def format_request(payload)
|
131
|
-
payload[:uri].path = url_join(payload[:uri].path, payload[:action])
|
132
|
-
payload[:body] = payload[:params].to_s
|
133
|
-
payload
|
134
|
-
end
|
135
|
-
|
136
|
-
# Format Response object. It will be override by child class
|
137
|
-
# == Argument
|
138
|
-
# * <tt>action</tt> -- Request action
|
139
|
-
# * <tt>response</tt> -- HTTP response object
|
140
|
-
def format_response(payload)
|
141
|
-
payload[:data] = payload[:response].body
|
142
|
-
payload
|
143
|
-
end
|
144
|
-
|
145
|
-
# Format Error object. It will be override by child class.
|
146
|
-
# == Arguments
|
147
|
-
# * <tt>exception</tt> -- Exception object.
|
148
|
-
# * <tt>message</tt> -- Readable error message.
|
149
|
-
def format_error(exception, message)
|
150
|
-
raise exception
|
151
|
-
end
|
152
|
-
|
153
|
-
class << self
|
154
|
-
def sdk_library_details
|
155
|
-
@library_details ||= "paypal-sdk-core #{PayPal::SDK::REST::VERSION}; ruby #{RUBY_VERSION}p#{RUBY_PATCHLEVEL}-#{RUBY_PLATFORM}"
|
156
|
-
begin
|
157
|
-
@library_details << ";#{OpenSSL::OPENSSL_LIBRARY_VERSION}"
|
158
|
-
rescue NameError
|
159
|
-
@library_details << ";OpenSSL #{OpenSSL::OPENSSL_VERSION}"
|
160
|
-
end
|
161
|
-
end
|
162
|
-
|
163
|
-
def user_agent
|
164
|
-
@user_agent ||= "PayPalSDK/rest-sdk-ruby #{PayPal::SDK::REST::VERSION} (#{sdk_library_details})"
|
165
|
-
end
|
166
|
-
end
|
167
|
-
end
|
168
|
-
end
|
169
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
module PayPal::SDK::Core
|
2
|
-
module API
|
3
|
-
module DataTypes
|
4
|
-
# Create Array with block.
|
5
|
-
# === Example
|
6
|
-
# ary = ArrayWithBlock.new{|val| val.to_i }
|
7
|
-
# ary.push("123") # [ 123 ]
|
8
|
-
# ary.merge!(["1", "3"]) # [ 123, 1, 3 ]
|
9
|
-
class ArrayWithBlock < ::Array
|
10
|
-
def initialize(&block)
|
11
|
-
@block = block
|
12
|
-
super()
|
13
|
-
end
|
14
|
-
|
15
|
-
def [](key)
|
16
|
-
super(key) || send(:"[]=", key, nil)
|
17
|
-
end
|
18
|
-
|
19
|
-
def []=(key, value)
|
20
|
-
super(key, @block ? @block.call(value) : value)
|
21
|
-
end
|
22
|
-
|
23
|
-
def push(value)
|
24
|
-
super(@block ? @block.call(value) : value)
|
25
|
-
end
|
26
|
-
|
27
|
-
def merge!(array)
|
28
|
-
if array.is_a? Array
|
29
|
-
array.each do |object|
|
30
|
-
push(object)
|
31
|
-
end
|
32
|
-
elsif array.is_a? Hash and array.keys.first.to_s =~ /^\d+$/
|
33
|
-
array.each do |key, object|
|
34
|
-
self[key.to_i] = object
|
35
|
-
end
|
36
|
-
else
|
37
|
-
push(array)
|
38
|
-
end
|
39
|
-
self
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
@@ -1,225 +0,0 @@
|
|
1
|
-
require 'date'
|
2
|
-
|
3
|
-
module PayPal::SDK::Core
|
4
|
-
module API
|
5
|
-
|
6
|
-
module DataTypes
|
7
|
-
|
8
|
-
# Create attributes and restrict the object type.
|
9
|
-
# == Example
|
10
|
-
# class ConvertCurrencyRequest < Core::API::DataTypes::Base
|
11
|
-
# object_of :baseAmountList, CurrencyList
|
12
|
-
# object_of :convertToCurrencyList, CurrencyCodeList
|
13
|
-
# object_of :countryCode, String
|
14
|
-
# object_of :conversionType, String
|
15
|
-
# end
|
16
|
-
class Base
|
17
|
-
|
18
|
-
HashOptions = { :attribute => true, :namespace => true, :symbol => false }
|
19
|
-
ContentKey = :value
|
20
|
-
|
21
|
-
include SimpleTypes
|
22
|
-
include Logging
|
23
|
-
|
24
|
-
class << self
|
25
|
-
|
26
|
-
# Add attribute
|
27
|
-
# === Arguments
|
28
|
-
# * <tt>name</tt> -- attribute name
|
29
|
-
# * <tt>options</tt> -- options
|
30
|
-
def add_attribute(name, options = {})
|
31
|
-
add_member(name, SimpleTypes::String, options.merge( :attribute => true ))
|
32
|
-
end
|
33
|
-
|
34
|
-
# Fields list for the DataTye
|
35
|
-
def members
|
36
|
-
@members ||=
|
37
|
-
begin
|
38
|
-
superclass.load_members if defined? superclass.load_members
|
39
|
-
parent_members = superclass.instance_variable_get("@members")
|
40
|
-
parent_members ? parent_members.dup : Util::OrderedHash.new
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
# Add Field to class variable hash and generate methods
|
45
|
-
# === Example
|
46
|
-
# add_member(:errorMessage, String) # Generate Code
|
47
|
-
# # attr_reader :errorMessage
|
48
|
-
# # alias_method :error_message, :errorMessage
|
49
|
-
# # alias_method :error_message=, :errorMessage=
|
50
|
-
def add_member(member_name, klass, options = {})
|
51
|
-
member_name = member_name.to_sym
|
52
|
-
return if members[member_name]
|
53
|
-
members[member_name] = options.merge( :type => klass )
|
54
|
-
member_variable_name = "@#{member_name}"
|
55
|
-
define_method "#{member_name}=" do |value|
|
56
|
-
object = options[:array] ? convert_array(value, klass) : convert_object(value, klass)
|
57
|
-
instance_variable_set(member_variable_name, object)
|
58
|
-
end
|
59
|
-
default_value = ( options[:array] ? [] : ( klass < Base ? Util::OrderedHash.new : nil ) )
|
60
|
-
define_method member_name do |&block|
|
61
|
-
value = instance_variable_get(member_variable_name) || ( default_value && send("#{member_name}=", default_value) )
|
62
|
-
value.instance_eval(&block) if block
|
63
|
-
value
|
64
|
-
end
|
65
|
-
define_alias_methods(member_name, options)
|
66
|
-
end
|
67
|
-
|
68
|
-
# Define alias methods for getter and setter
|
69
|
-
def define_alias_methods(member_name, options)
|
70
|
-
snakecase_name = snakecase(member_name)
|
71
|
-
alias_method snakecase_name, member_name
|
72
|
-
alias_method "#{snakecase_name}=", "#{member_name}="
|
73
|
-
alias_method "#{options[:namespace]}:#{member_name}=", "#{member_name}=" if options[:namespace]
|
74
|
-
if options[:attribute]
|
75
|
-
alias_method "@#{member_name}=", "#{member_name}="
|
76
|
-
alias_method "@#{options[:namespace]}:#{member_name}=", "#{member_name}=" if options[:namespace]
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
# define method for given member and the class name
|
81
|
-
# === Example
|
82
|
-
# object_of(:errorMessage, ErrorMessage) # Generate Code
|
83
|
-
# # def errorMessage=(options)
|
84
|
-
# # @errorMessage = ErrorMessage.new(options)
|
85
|
-
# # end
|
86
|
-
# # add_member :errorMessage, ErrorMessage
|
87
|
-
def object_of(key, klass, options = {})
|
88
|
-
add_member(key, klass, options)
|
89
|
-
end
|
90
|
-
|
91
|
-
# define method for given member and the class name
|
92
|
-
# === Example
|
93
|
-
# array_of(:errorMessage, ErrorMessage) # It Generate below code
|
94
|
-
# # def errorMessage=(array)
|
95
|
-
# # @errorMessage = array.map{|options| ErrorMessage.new(options) }
|
96
|
-
# # end
|
97
|
-
# # add_member :errorMessage, ErrorMessage
|
98
|
-
def array_of(key, klass, options = {})
|
99
|
-
add_member(key, klass, options.merge(:array => true))
|
100
|
-
end
|
101
|
-
|
102
|
-
# Generate snakecase string.
|
103
|
-
# === Example
|
104
|
-
# snakecase("errorMessage")
|
105
|
-
# # error_message
|
106
|
-
def snakecase(string)
|
107
|
-
string.to_s.gsub(/([a-z])([A-Z])/, '\1_\2').gsub(/([A-Z])([A-Z][a-z])/, '\1_\2').downcase
|
108
|
-
end
|
109
|
-
|
110
|
-
end
|
111
|
-
|
112
|
-
# Initialize options.
|
113
|
-
def initialize(options = {}, &block)
|
114
|
-
merge!(options, &block)
|
115
|
-
end
|
116
|
-
|
117
|
-
# Merge values
|
118
|
-
def merge!(options, &block)
|
119
|
-
if options.is_a? Hash
|
120
|
-
options.each do |key, value|
|
121
|
-
set(key, value)
|
122
|
-
end
|
123
|
-
elsif members[ContentKey]
|
124
|
-
set(ContentKey, options)
|
125
|
-
else
|
126
|
-
raise ArgumentError, "invalid data(#{options.inspect}) for #{self.class.name} class"
|
127
|
-
end
|
128
|
-
self.instance_eval(&block) if block
|
129
|
-
self
|
130
|
-
end
|
131
|
-
|
132
|
-
# Set value for given member
|
133
|
-
# === Arguments
|
134
|
-
# * <tt>key</tt> -- member name
|
135
|
-
# * <tt>value</tt> -- value for member
|
136
|
-
def set(key, value)
|
137
|
-
send("#{key}=", value)
|
138
|
-
rescue NoMethodError => error
|
139
|
-
# Uncomment to see missing fields
|
140
|
-
# logger.debug error.message
|
141
|
-
rescue TypeError, ArgumentError => error
|
142
|
-
raise TypeError, "#{error.message}(#{value.inspect}) for #{self.class.name}.#{key} member"
|
143
|
-
end
|
144
|
-
|
145
|
-
# Create array of objects.
|
146
|
-
# === Example
|
147
|
-
# covert_array([{ :amount => "55", :code => "USD"}], CurrencyType)
|
148
|
-
# covert_array({ "0" => { :amount => "55", :code => "USD"} }, CurrencyType)
|
149
|
-
# covert_array({ :amount => "55", :code => "USD"}, CurrencyType)
|
150
|
-
# # @return
|
151
|
-
# # [ <CurrencyType#object @amount="55" @code="USD" > ]
|
152
|
-
def convert_array(array, klass)
|
153
|
-
default_value = ( klass < Base ? Util::OrderedHash.new : nil )
|
154
|
-
data_type_array = ArrayWithBlock.new{|object| convert_object(object || default_value, klass) }
|
155
|
-
data_type_array.merge!(array)
|
156
|
-
end
|
157
|
-
|
158
|
-
# Create object based on given data.
|
159
|
-
# === Example
|
160
|
-
# covert_object({ :amount => "55", :code => "USD"}, CurrencyType )
|
161
|
-
# # @return
|
162
|
-
# # <CurrencyType#object @amount="55" @code="USD" >
|
163
|
-
def convert_object(object, klass)
|
164
|
-
object.is_a?(klass) ? object : ( ( object.nil? or object == "" ) ? nil : klass.new(object) )
|
165
|
-
end
|
166
|
-
|
167
|
-
# Alias instance method for the class method.
|
168
|
-
def members
|
169
|
-
self.class.members
|
170
|
-
end
|
171
|
-
|
172
|
-
# Get configured member names
|
173
|
-
def member_names
|
174
|
-
members.keys
|
175
|
-
end
|
176
|
-
|
177
|
-
# Create Hash based configured members
|
178
|
-
def to_hash(options = {})
|
179
|
-
options = HashOptions.merge(options)
|
180
|
-
hash = Util::OrderedHash.new
|
181
|
-
member_names.each do |member|
|
182
|
-
value = value_to_hash(instance_variable_get("@#{member}"), options)
|
183
|
-
hash[hash_key(member, options)] = value unless skip_value?(value)
|
184
|
-
end
|
185
|
-
hash
|
186
|
-
end
|
187
|
-
|
188
|
-
# Skip nil, empty array and empty hash.
|
189
|
-
def skip_value?(value)
|
190
|
-
value.nil? || ( ( value.is_a?(Array) || value.is_a?(Hash) ) && value.empty? )
|
191
|
-
end
|
192
|
-
|
193
|
-
# Generate Hash key for given member name based on configuration
|
194
|
-
# === Example
|
195
|
-
# hash_key(:amount) # @return :"ebl:amount"
|
196
|
-
# hash_key(:type) # @return :"@type"
|
197
|
-
def hash_key(key, options = {})
|
198
|
-
unless key == ContentKey
|
199
|
-
member_option = members[key]
|
200
|
-
key = member_option[:name] if member_option.include? :name
|
201
|
-
if !member_option[:attribute] and member_option[:namespace] and options[:namespace]
|
202
|
-
key = "#{member_option[:namespace]}:#{key}"
|
203
|
-
end
|
204
|
-
key = "@#{key}" if member_option[:attribute] and options[:attribute]
|
205
|
-
end
|
206
|
-
options[:symbol] ? key.to_sym : key.to_s
|
207
|
-
end
|
208
|
-
|
209
|
-
# Covert the object to hash based on class.
|
210
|
-
def value_to_hash(value, options = {})
|
211
|
-
case value
|
212
|
-
when Array
|
213
|
-
value = value.map{|object| value_to_hash(object, options) }
|
214
|
-
value.delete_if{|v| skip_value?(v) }
|
215
|
-
value
|
216
|
-
when Base
|
217
|
-
value.to_hash(options)
|
218
|
-
else
|
219
|
-
value
|
220
|
-
end
|
221
|
-
end
|
222
|
-
end
|
223
|
-
end
|
224
|
-
end
|
225
|
-
end
|