paypal-server-sdk 0.6.1 → 0.7.0

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.
Files changed (291) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +34 -34
  3. data/README.md +19 -30
  4. data/lib/paypal_server_sdk/controllers/base_controller.rb +1 -1
  5. data/lib/paypal_server_sdk/controllers/orders_controller.rb +103 -148
  6. data/lib/paypal_server_sdk/controllers/payments_controller.rb +94 -73
  7. data/lib/paypal_server_sdk/controllers/vault_controller.rb +12 -12
  8. data/lib/paypal_server_sdk/exceptions/api_exception.rb +11 -0
  9. data/lib/paypal_server_sdk/exceptions/error_exception.rb +14 -0
  10. data/lib/paypal_server_sdk/exceptions/o_auth_provider_exception.rb +14 -0
  11. data/lib/paypal_server_sdk/models/activity_timestamps.rb +17 -6
  12. data/lib/paypal_server_sdk/models/address.rb +24 -9
  13. data/lib/paypal_server_sdk/models/amount_breakdown.rb +17 -0
  14. data/lib/paypal_server_sdk/models/amount_with_breakdown.rb +22 -9
  15. data/lib/paypal_server_sdk/models/apple_pay_attributes.rb +12 -0
  16. data/lib/paypal_server_sdk/models/apple_pay_attributes_response.rb +12 -0
  17. data/lib/paypal_server_sdk/models/apple_pay_card.rb +14 -0
  18. data/lib/paypal_server_sdk/models/apple_pay_card_response.rb +48 -6
  19. data/lib/paypal_server_sdk/models/apple_pay_decrypted_token_data.rb +16 -0
  20. data/lib/paypal_server_sdk/models/apple_pay_payment_data.rb +14 -0
  21. data/lib/paypal_server_sdk/models/apple_pay_payment_data_type.rb +6 -2
  22. data/lib/paypal_server_sdk/models/apple_pay_payment_object.rb +43 -7
  23. data/lib/paypal_server_sdk/models/apple_pay_payment_token.rb +12 -0
  24. data/lib/paypal_server_sdk/models/apple_pay_request.rb +27 -13
  25. data/lib/paypal_server_sdk/models/apple_pay_tokenized_card.rb +15 -0
  26. data/lib/paypal_server_sdk/models/assurance_details.rb +14 -0
  27. data/lib/paypal_server_sdk/models/authentication_response.rb +13 -0
  28. data/lib/paypal_server_sdk/models/authorization.rb +28 -9
  29. data/lib/paypal_server_sdk/models/authorization_incomplete_reason.rb +2 -2
  30. data/lib/paypal_server_sdk/models/authorization_status.rb +12 -6
  31. data/lib/paypal_server_sdk/models/authorization_status_details.rb +12 -0
  32. data/lib/paypal_server_sdk/models/authorization_status_with_details.rb +12 -0
  33. data/lib/paypal_server_sdk/models/authorization_with_additional_data.rb +29 -9
  34. data/lib/paypal_server_sdk/models/avs_code.rb +102 -71
  35. data/lib/paypal_server_sdk/models/bancontact_payment_object.rb +19 -5
  36. data/lib/paypal_server_sdk/models/bancontact_payment_request.rb +18 -5
  37. data/lib/paypal_server_sdk/models/base_model.rb +76 -28
  38. data/lib/paypal_server_sdk/models/billing_cycle.rb +129 -0
  39. data/lib/paypal_server_sdk/models/bin_details.rb +18 -5
  40. data/lib/paypal_server_sdk/models/blik_experience_context.rb +17 -0
  41. data/lib/paypal_server_sdk/models/blik_level0_payment_object.rb +12 -0
  42. data/lib/paypal_server_sdk/models/blik_one_click_payment_object.rb +12 -0
  43. data/lib/paypal_server_sdk/models/blik_one_click_payment_request.rb +15 -0
  44. data/lib/paypal_server_sdk/models/blik_payment_object.rb +22 -10
  45. data/lib/paypal_server_sdk/models/blik_payment_request.rb +24 -10
  46. data/lib/paypal_server_sdk/models/callback_configuration.rb +75 -0
  47. data/lib/paypal_server_sdk/models/callback_events.rb +27 -0
  48. data/lib/paypal_server_sdk/models/capture_incomplete_reason.rb +22 -14
  49. data/lib/paypal_server_sdk/models/capture_payment_instruction.rb +15 -0
  50. data/lib/paypal_server_sdk/models/capture_request.rb +17 -0
  51. data/lib/paypal_server_sdk/models/capture_status.rb +10 -6
  52. data/lib/paypal_server_sdk/models/capture_status_details.rb +12 -0
  53. data/lib/paypal_server_sdk/models/capture_status_with_details.rb +12 -0
  54. data/lib/paypal_server_sdk/models/captured_payment.rb +36 -10
  55. data/lib/paypal_server_sdk/models/card_attributes.rb +13 -0
  56. data/lib/paypal_server_sdk/models/card_attributes_response.rb +12 -0
  57. data/lib/paypal_server_sdk/models/card_authentication_response.rb +14 -2
  58. data/lib/paypal_server_sdk/models/card_brand.rb +29 -25
  59. data/lib/paypal_server_sdk/models/card_customer_information.rb +18 -5
  60. data/lib/paypal_server_sdk/models/card_experience_context.rb +12 -0
  61. data/lib/paypal_server_sdk/models/card_from_request.rb +12 -0
  62. data/lib/paypal_server_sdk/models/{card_response_entity.rb → card_payment_token_entity.rb} +37 -15
  63. data/lib/paypal_server_sdk/models/card_request.rb +32 -17
  64. data/lib/paypal_server_sdk/models/card_response.rb +43 -2
  65. data/lib/paypal_server_sdk/models/{portable_postal_address_medium_grained.rb → card_response_address.rb} +43 -23
  66. data/lib/paypal_server_sdk/models/card_stored_credential.rb +23 -7
  67. data/lib/paypal_server_sdk/models/card_supplementary_data.rb +13 -5
  68. data/lib/paypal_server_sdk/models/card_type.rb +5 -5
  69. data/lib/paypal_server_sdk/models/card_vault_response.rb +13 -0
  70. data/lib/paypal_server_sdk/models/card_verification.rb +16 -3
  71. data/lib/paypal_server_sdk/models/card_verification_details.rb +27 -11
  72. data/lib/paypal_server_sdk/models/card_verification_processor_response.rb +12 -0
  73. data/lib/paypal_server_sdk/models/card_verification_status.rb +23 -0
  74. data/lib/paypal_server_sdk/models/checkout_payment_intent.rb +10 -2
  75. data/lib/paypal_server_sdk/models/cobranded_card.rb +13 -0
  76. data/lib/paypal_server_sdk/models/confirm_order_request.rb +15 -12
  77. data/lib/paypal_server_sdk/models/{customer_request.rb → customer.rb} +18 -4
  78. data/lib/paypal_server_sdk/models/customer_information.rb +17 -5
  79. data/lib/paypal_server_sdk/models/customer_response.rb +76 -0
  80. data/lib/paypal_server_sdk/models/customer_vault_payment_tokens_response.rb +21 -4
  81. data/lib/paypal_server_sdk/models/cvv_code.rb +35 -27
  82. data/lib/paypal_server_sdk/models/disbursement_mode.rb +5 -2
  83. data/lib/paypal_server_sdk/models/dispute_category.rb +2 -2
  84. data/lib/paypal_server_sdk/models/eci_flag.rb +6 -8
  85. data/lib/paypal_server_sdk/models/enrollment_status.rb +11 -8
  86. data/lib/paypal_server_sdk/models/eps_payment_object.rb +17 -5
  87. data/lib/paypal_server_sdk/models/eps_payment_request.rb +18 -5
  88. data/lib/paypal_server_sdk/models/error_details.rb +15 -0
  89. data/lib/paypal_server_sdk/models/exchange_rate.rb +14 -0
  90. data/lib/paypal_server_sdk/models/experience_context.rb +15 -0
  91. data/lib/paypal_server_sdk/models/fulfillment_type.rb +9 -4
  92. data/lib/paypal_server_sdk/models/giropay_payment_object.rb +17 -5
  93. data/lib/paypal_server_sdk/models/giropay_payment_request.rb +18 -5
  94. data/lib/paypal_server_sdk/models/google_pay_authentication_method.rb +8 -2
  95. data/lib/paypal_server_sdk/models/google_pay_card.rb +17 -3
  96. data/lib/paypal_server_sdk/models/google_pay_card_response.rb +16 -0
  97. data/lib/paypal_server_sdk/models/google_pay_decrypted_token_data.rb +17 -0
  98. data/lib/paypal_server_sdk/models/google_pay_payment_method.rb +1 -1
  99. data/lib/paypal_server_sdk/models/google_pay_request.rb +22 -17
  100. data/lib/paypal_server_sdk/models/google_pay_request_card.rb +14 -0
  101. data/lib/paypal_server_sdk/models/google_pay_wallet_response.rb +18 -5
  102. data/lib/paypal_server_sdk/models/ideal_payment_object.rb +18 -5
  103. data/lib/paypal_server_sdk/models/ideal_payment_request.rb +18 -5
  104. data/lib/paypal_server_sdk/models/item.rb +17 -0
  105. data/lib/paypal_server_sdk/models/item_category.rb +6 -3
  106. data/lib/paypal_server_sdk/models/level2_card_processing_data.rb +12 -0
  107. data/lib/paypal_server_sdk/models/level3_card_processing_data.rb +17 -0
  108. data/lib/paypal_server_sdk/models/liability_shift_indicator.rb +3 -3
  109. data/lib/paypal_server_sdk/models/line_item.rb +21 -0
  110. data/lib/paypal_server_sdk/models/link_description.rb +12 -0
  111. data/lib/paypal_server_sdk/models/money.rb +16 -4
  112. data/lib/paypal_server_sdk/models/mybank_payment_object.rb +18 -5
  113. data/lib/paypal_server_sdk/models/mybank_payment_request.rb +18 -5
  114. data/lib/paypal_server_sdk/models/name.rb +12 -0
  115. data/lib/paypal_server_sdk/models/net_amount_breakdown_item.rb +14 -0
  116. data/lib/paypal_server_sdk/models/network_token.rb +15 -0
  117. data/lib/paypal_server_sdk/models/network_transaction_reference.rb +14 -0
  118. data/lib/paypal_server_sdk/models/network_transaction_reference_entity.rb +15 -3
  119. data/lib/paypal_server_sdk/models/one_time_charge.rb +118 -0
  120. data/lib/paypal_server_sdk/models/order.rb +22 -19
  121. data/lib/paypal_server_sdk/models/order_application_context.rb +40 -25
  122. data/lib/paypal_server_sdk/models/order_application_context_landing_page.rb +10 -3
  123. data/lib/paypal_server_sdk/models/order_application_context_shipping_preference.rb +14 -10
  124. data/lib/paypal_server_sdk/models/order_application_context_user_action.rb +11 -6
  125. data/lib/paypal_server_sdk/models/order_authorize_request.rb +12 -0
  126. data/lib/paypal_server_sdk/models/order_authorize_request_payment_source.rb +20 -9
  127. data/lib/paypal_server_sdk/models/order_authorize_response.rb +22 -19
  128. data/lib/paypal_server_sdk/models/order_authorize_response_payment_source.rb +14 -0
  129. data/lib/paypal_server_sdk/models/order_capture_request.rb +12 -0
  130. data/lib/paypal_server_sdk/models/order_capture_request_payment_source.rb +20 -9
  131. data/lib/paypal_server_sdk/models/order_confirm_application_context.rb +21 -8
  132. data/lib/paypal_server_sdk/models/order_request.rb +18 -4
  133. data/lib/paypal_server_sdk/models/order_status.rb +19 -6
  134. data/lib/paypal_server_sdk/models/order_tracker_item.rb +15 -0
  135. data/lib/paypal_server_sdk/models/order_tracker_request.rb +22 -5
  136. data/lib/paypal_server_sdk/models/order_tracker_response.rb +19 -6
  137. data/lib/paypal_server_sdk/models/order_tracker_status.rb +5 -2
  138. data/lib/paypal_server_sdk/models/order_update_callback_error_response.rb +89 -0
  139. data/lib/paypal_server_sdk/models/order_update_callback_error_response_details.rb +81 -0
  140. data/lib/paypal_server_sdk/models/order_update_callback_request.rb +111 -0
  141. data/lib/paypal_server_sdk/models/order_update_callback_response.rb +72 -0
  142. data/lib/paypal_server_sdk/models/order_update_callback_shipping_address.rb +107 -0
  143. data/lib/paypal_server_sdk/models/order_update_callback_shipping_option.rb +93 -0
  144. data/lib/paypal_server_sdk/models/{capture.rb → orders_capture.rb} +46 -22
  145. data/lib/paypal_server_sdk/models/orders_card_verification_method.rb +51 -0
  146. data/lib/paypal_server_sdk/models/p24_payment_object.rb +24 -10
  147. data/lib/paypal_server_sdk/models/p24_payment_request.rb +22 -10
  148. data/lib/paypal_server_sdk/models/pa_res_status.rb +16 -16
  149. data/lib/paypal_server_sdk/models/participant_metadata.rb +64 -0
  150. data/lib/paypal_server_sdk/models/patch.rb +20 -10
  151. data/lib/paypal_server_sdk/models/patch_op.rb +43 -6
  152. data/lib/paypal_server_sdk/models/payee_base.rb +17 -5
  153. data/lib/paypal_server_sdk/models/payee_payment_method_preference.rb +4 -2
  154. data/lib/paypal_server_sdk/models/payer.rb +20 -5
  155. data/lib/paypal_server_sdk/models/payer_base.rb +16 -5
  156. data/lib/paypal_server_sdk/models/payment_advice_code.rb +53 -8
  157. data/lib/paypal_server_sdk/models/payment_authorization.rb +32 -11
  158. data/lib/paypal_server_sdk/models/payment_collection.rb +16 -2
  159. data/lib/paypal_server_sdk/models/payment_initiator.rb +5 -2
  160. data/lib/paypal_server_sdk/models/payment_instruction.rb +16 -0
  161. data/lib/paypal_server_sdk/models/payment_method_preference.rb +14 -0
  162. data/lib/paypal_server_sdk/models/payment_source.rb +25 -9
  163. data/lib/paypal_server_sdk/models/payment_source_response.rb +19 -0
  164. data/lib/paypal_server_sdk/models/payment_supplementary_data.rb +12 -0
  165. data/lib/paypal_server_sdk/models/payment_token_request.rb +17 -3
  166. data/lib/paypal_server_sdk/models/payment_token_request_card.rb +17 -22
  167. data/lib/paypal_server_sdk/models/payment_token_request_payment_source.rb +12 -0
  168. data/lib/paypal_server_sdk/models/payment_token_response.rb +18 -3
  169. data/lib/paypal_server_sdk/models/payment_token_response_payment_source.rb +18 -14
  170. data/lib/paypal_server_sdk/models/payment_token_status.rb +36 -0
  171. data/lib/paypal_server_sdk/models/payments_capture.rb +252 -0
  172. data/lib/paypal_server_sdk/models/payments_payment_advice_code.rb +42 -0
  173. data/lib/paypal_server_sdk/models/payments_processor_response.rb +98 -0
  174. data/lib/paypal_server_sdk/models/paypal_experience_landing_page.rb +11 -3
  175. data/lib/paypal_server_sdk/models/paypal_experience_user_action.rb +9 -4
  176. data/lib/paypal_server_sdk/models/paypal_payment_token.rb +38 -8
  177. data/lib/paypal_server_sdk/models/paypal_payment_token_customer_type.rb +7 -3
  178. data/lib/paypal_server_sdk/models/paypal_payment_token_usage_type.rb +7 -3
  179. data/lib/paypal_server_sdk/models/paypal_wallet.rb +41 -11
  180. data/lib/paypal_server_sdk/models/paypal_wallet_account_verification_status.rb +6 -2
  181. data/lib/paypal_server_sdk/models/paypal_wallet_attributes.rb +12 -0
  182. data/lib/paypal_server_sdk/models/paypal_wallet_attributes_response.rb +12 -0
  183. data/lib/paypal_server_sdk/models/paypal_wallet_context_shipping_preference.rb +31 -0
  184. data/lib/paypal_server_sdk/models/paypal_wallet_customer.rb +18 -5
  185. data/lib/paypal_server_sdk/models/paypal_wallet_customer_request.rb +18 -5
  186. data/lib/paypal_server_sdk/models/paypal_wallet_experience_context.rb +45 -12
  187. data/lib/paypal_server_sdk/models/paypal_wallet_response.rb +39 -7
  188. data/lib/paypal_server_sdk/models/paypal_wallet_stored_credential.rb +98 -0
  189. data/lib/paypal_server_sdk/models/paypal_wallet_vault_instruction.rb +18 -1
  190. data/lib/paypal_server_sdk/models/paypal_wallet_vault_response.rb +13 -0
  191. data/lib/paypal_server_sdk/models/paypal_wallet_vault_status.rb +8 -3
  192. data/lib/paypal_server_sdk/models/phone.rb +14 -0
  193. data/lib/paypal_server_sdk/models/phone_number.rb +12 -0
  194. data/lib/paypal_server_sdk/models/phone_number_with_country_code.rb +15 -0
  195. data/lib/paypal_server_sdk/models/phone_with_type.rb +13 -0
  196. data/lib/paypal_server_sdk/models/plan.rb +102 -0
  197. data/lib/paypal_server_sdk/models/platform_fee.rb +12 -0
  198. data/lib/paypal_server_sdk/models/pricing_model.rb +28 -0
  199. data/lib/paypal_server_sdk/models/pricing_scheme.rb +84 -0
  200. data/lib/paypal_server_sdk/models/processor_response.rb +15 -0
  201. data/lib/paypal_server_sdk/models/processor_response_code.rb +312 -308
  202. data/lib/paypal_server_sdk/models/purchase_unit.rb +43 -25
  203. data/lib/paypal_server_sdk/models/purchase_unit_request.rb +36 -20
  204. data/lib/paypal_server_sdk/models/reauthorize_request.rb +19 -8
  205. data/lib/paypal_server_sdk/models/refund.rb +25 -6
  206. data/lib/paypal_server_sdk/models/refund_incomplete_reason.rb +2 -1
  207. data/lib/paypal_server_sdk/models/refund_payment_instruction.rb +12 -0
  208. data/lib/paypal_server_sdk/models/refund_platform_fee.rb +12 -0
  209. data/lib/paypal_server_sdk/models/refund_request.rb +17 -2
  210. data/lib/paypal_server_sdk/models/refund_status.rb +4 -4
  211. data/lib/paypal_server_sdk/models/refund_status_details.rb +12 -0
  212. data/lib/paypal_server_sdk/models/refund_status_with_details.rb +12 -0
  213. data/lib/paypal_server_sdk/models/related_identifiers.rb +14 -0
  214. data/lib/paypal_server_sdk/models/risk_supplementary_data.rb +63 -0
  215. data/lib/paypal_server_sdk/models/seller_payable_breakdown.rb +21 -0
  216. data/lib/paypal_server_sdk/models/seller_protection.rb +13 -0
  217. data/lib/paypal_server_sdk/models/seller_protection_status.rb +6 -3
  218. data/lib/paypal_server_sdk/models/seller_receivable_breakdown.rb +18 -0
  219. data/lib/paypal_server_sdk/models/setup_token_card_experience_context.rb +21 -5
  220. data/lib/paypal_server_sdk/models/setup_token_request.rb +17 -3
  221. data/lib/paypal_server_sdk/models/setup_token_request_card.rb +20 -18
  222. data/lib/paypal_server_sdk/models/setup_token_request_payment_source.rb +13 -0
  223. data/lib/paypal_server_sdk/models/setup_token_response.rb +23 -16
  224. data/lib/paypal_server_sdk/models/setup_token_response_card.rb +25 -3
  225. data/lib/paypal_server_sdk/models/setup_token_response_payment_source.rb +13 -0
  226. data/lib/paypal_server_sdk/models/shipment_carrier.rb +1377 -1402
  227. data/lib/paypal_server_sdk/models/shipping_details.rb +29 -2
  228. data/lib/paypal_server_sdk/models/shipping_name.rb +12 -0
  229. data/lib/paypal_server_sdk/models/shipping_option.rb +14 -0
  230. data/lib/paypal_server_sdk/models/shipping_options_purchase_unit.rb +102 -0
  231. data/lib/paypal_server_sdk/models/shipping_preference.rb +6 -3
  232. data/lib/paypal_server_sdk/models/shipping_type.rb +12 -4
  233. data/lib/paypal_server_sdk/models/shipping_with_tracking_details.rb +30 -2
  234. data/lib/paypal_server_sdk/models/sofort_payment_object.rb +18 -5
  235. data/lib/paypal_server_sdk/models/sofort_payment_request.rb +18 -5
  236. data/lib/paypal_server_sdk/models/standard_entry_class_code.rb +12 -4
  237. data/lib/paypal_server_sdk/models/store_in_vault_instruction.rb +2 -1
  238. data/lib/paypal_server_sdk/models/stored_payment_source.rb +23 -7
  239. data/lib/paypal_server_sdk/models/stored_payment_source_payment_type.rb +6 -3
  240. data/lib/paypal_server_sdk/models/stored_payment_source_usage_type.rb +6 -3
  241. data/lib/paypal_server_sdk/models/supplementary_data.rb +25 -7
  242. data/lib/paypal_server_sdk/models/supplementary_purchase_data.rb +13 -0
  243. data/lib/paypal_server_sdk/models/tax_id_type.rb +2 -2
  244. data/lib/paypal_server_sdk/models/tax_info.rb +12 -0
  245. data/lib/paypal_server_sdk/models/tenure_type.rb +28 -0
  246. data/lib/paypal_server_sdk/models/three_d_secure_authentication_response.rb +14 -0
  247. data/lib/paypal_server_sdk/models/three_d_secure_card_authentication_response.rb +89 -0
  248. data/lib/paypal_server_sdk/models/token.rb +12 -0
  249. data/lib/paypal_server_sdk/models/token_type.rb +2 -1
  250. data/lib/paypal_server_sdk/models/trustly_payment_object.rb +31 -6
  251. data/lib/paypal_server_sdk/models/trustly_payment_request.rb +30 -6
  252. data/lib/paypal_server_sdk/models/universal_product_code.rb +12 -0
  253. data/lib/paypal_server_sdk/models/upc_type.rb +14 -14
  254. data/lib/paypal_server_sdk/models/usage_pattern.rb +72 -0
  255. data/lib/paypal_server_sdk/models/vault_card_verification_method.rb +39 -0
  256. data/lib/paypal_server_sdk/models/vault_customer.rb +12 -0
  257. data/lib/paypal_server_sdk/models/vault_experience_context.rb +26 -7
  258. data/lib/paypal_server_sdk/models/vault_instruction.rb +12 -0
  259. data/lib/paypal_server_sdk/models/vault_instruction_action.rb +26 -0
  260. data/lib/paypal_server_sdk/models/vault_instruction_base.rb +12 -0
  261. data/lib/paypal_server_sdk/models/vault_paypal_wallet_request.rb +43 -4
  262. data/lib/paypal_server_sdk/models/vault_response.rb +13 -0
  263. data/lib/paypal_server_sdk/models/vault_response_customer.rb +86 -0
  264. data/lib/paypal_server_sdk/models/vault_status.rb +8 -3
  265. data/lib/paypal_server_sdk/models/vault_token_request.rb +13 -1
  266. data/lib/paypal_server_sdk/models/vault_token_request_type.rb +20 -0
  267. data/lib/paypal_server_sdk/models/vault_venmo_experience_context.rb +24 -6
  268. data/lib/paypal_server_sdk/models/vault_venmo_request.rb +31 -3
  269. data/lib/paypal_server_sdk/models/vaulted_digital_wallet.rb +29 -3
  270. data/lib/paypal_server_sdk/models/vaulted_digital_wallet_shipping_details.rb +26 -1
  271. data/lib/paypal_server_sdk/models/venmo_payment_token.rb +37 -8
  272. data/lib/paypal_server_sdk/models/venmo_payment_token_customer_type.rb +4 -2
  273. data/lib/paypal_server_sdk/models/venmo_payment_token_usage_pattern.rb +12 -6
  274. data/lib/paypal_server_sdk/models/venmo_payment_token_usage_type.rb +5 -2
  275. data/lib/paypal_server_sdk/models/venmo_wallet_additional_attributes.rb +12 -0
  276. data/lib/paypal_server_sdk/models/venmo_wallet_attributes_response.rb +12 -0
  277. data/lib/paypal_server_sdk/models/venmo_wallet_customer_information.rb +16 -5
  278. data/lib/paypal_server_sdk/models/venmo_wallet_experience_context.rb +34 -5
  279. data/lib/paypal_server_sdk/models/venmo_wallet_request.rb +21 -8
  280. data/lib/paypal_server_sdk/models/venmo_wallet_response.rb +21 -5
  281. data/lib/paypal_server_sdk/models/venmo_wallet_vault_attributes.rb +17 -0
  282. data/lib/paypal_server_sdk/utilities/file_wrapper.rb +14 -2
  283. data/lib/paypal_server_sdk.rb +43 -14
  284. metadata +40 -15
  285. data/lib/paypal_server_sdk/models/address_details.rb +0 -160
  286. data/lib/paypal_server_sdk/models/card_payment_token.rb +0 -166
  287. data/lib/paypal_server_sdk/models/card_verification_method.rb +0 -29
  288. data/lib/paypal_server_sdk/models/google_pay_card_attributes.rb +0 -51
  289. data/lib/paypal_server_sdk/models/payee.rb +0 -65
  290. data/lib/paypal_server_sdk/models/paypal_payment_token_usage_pattern.rb +0 -35
  291. data/lib/paypal_server_sdk/models/token_request_type.rb +0 -23
@@ -4,24 +4,28 @@
4
4
  # ( https://apimatic.io ).
5
5
 
6
6
  module PaypalServerSdk
7
- # DEPRECATED. DEPRECATED. The shipping preference:<ul><li>Displays the
8
- # shipping address to the customer.</li><li>Enables the customer to choose an
9
- # address on the PayPal site.</li><li>Restricts the customer from changing the
10
- # address during the payment-approval process.</li></ul>. The fields in
11
- # `application_context` are now available in the `experience_context` object
12
- # under the `payment_source` which supports them (eg.
7
+ # DEPRECATED. DEPRECATED. The shipping preference: Displays the shipping
8
+ # address to the customer. Enables the customer to choose an address on the
9
+ # PayPal site. Restricts the customer from changing the address during the
10
+ # payment-approval process. . The fields in `application_context` are now
11
+ # available in the `experience_context` object under the `payment_source`
12
+ # which supports them (eg.
13
13
  # `payment_source.paypal.experience_context.shipping_preference`). Please
14
14
  # specify this field in the `experience_context` object instead of the
15
- # `application_context` object.
15
+ # `application_context` object., The shipping preference. This only applies to
16
+ # PayPal payment source., The shipping preference. This only applies to PayPal
17
+ # payment source.
16
18
  class OrderApplicationContextShippingPreference
17
19
  ORDER_APPLICATION_CONTEXT_SHIPPING_PREFERENCE = [
18
- # TODO: Write general description for GET_FROM_FILE
20
+ # Use the customer-provided shipping address on the PayPal site.
19
21
  GET_FROM_FILE = 'GET_FROM_FILE'.freeze,
20
22
 
21
- # TODO: Write general description for NO_SHIPPING
23
+ # Redact the shipping address from the PayPal site. Recommended for
24
+ # digital goods.
22
25
  NO_SHIPPING = 'NO_SHIPPING'.freeze,
23
26
 
24
- # TODO: Write general description for SET_PROVIDED_ADDRESS
27
+ # Use the merchant-provided address. The customer cannot change this
28
+ # address on the PayPal site.
25
29
  SET_PROVIDED_ADDRESS = 'SET_PROVIDED_ADDRESS'.freeze
26
30
  ].freeze
27
31
 
@@ -4,19 +4,24 @@
4
4
  # ( https://apimatic.io ).
5
5
 
6
6
  module PaypalServerSdk
7
- # DEPRECATED. Configures a <strong>Continue</strong> or <strong>Pay
8
- # Now</strong> checkout flow. The fields in `application_context` are now
9
- # available in the `experience_context` object under the `payment_source`
10
- # which supports them (eg.
7
+ # DEPRECATED. Configures a Continue or Pay Now checkout flow. The fields in
8
+ # `application_context` are now available in the `experience_context` object
9
+ # under the `payment_source` which supports them (eg.
11
10
  # `payment_source.paypal.experience_context.user_action`). Please specify this
12
11
  # field in the `experience_context` object instead of the
13
12
  # `application_context` object.
14
13
  class OrderApplicationContextUserAction
15
14
  ORDER_APPLICATION_CONTEXT_USER_ACTION = [
16
- # TODO: Write general description for CONTINUE
15
+ # After you redirect the customer to the PayPal payment page, a Continue
16
+ # button appears. Use this option when the final amount is not known when
17
+ # the checkout flow is initiated and you want to redirect the customer to
18
+ # the merchant page without processing the payment.
17
19
  CONTINUE = 'CONTINUE'.freeze,
18
20
 
19
- # TODO: Write general description for PAY_NOW
21
+ # After you redirect the customer to the PayPal payment page, a Pay Now
22
+ # button appears. Use this option when the final amount is known when the
23
+ # checkout is initiated and you want to process the payment immediately
24
+ # when the customer clicks Pay Now.
20
25
  PAY_NOW = 'PAY_NOW'.freeze
21
26
  ].freeze
22
27
 
@@ -47,5 +47,17 @@ module PaypalServerSdk
47
47
  # Create object from extracted values.
48
48
  OrderAuthorizeRequest.new(payment_source: payment_source)
49
49
  end
50
+
51
+ # Provides a human-readable string representation of the object.
52
+ def to_s
53
+ class_name = self.class.name.split('::').last
54
+ "<#{class_name} payment_source: #{@payment_source}>"
55
+ end
56
+
57
+ # Provides a debugging-friendly string with detailed object information.
58
+ def inspect
59
+ class_name = self.class.name.split('::').last
60
+ "<#{class_name} payment_source: #{@payment_source.inspect}>"
61
+ end
50
62
  end
51
63
  end
@@ -9,15 +9,11 @@ module PaypalServerSdk
9
9
  SKIP = Object.new
10
10
  private_constant :SKIP
11
11
 
12
- # The payment card to use to fund a payment. Can be a credit or debit
13
- # card.<blockquote><strong>Note:</strong> Passing card number, cvv and
14
- # expiry directly via the API requires <a
15
- # href="https://www.pcisecuritystandards.org/pci_security/completing_self_as
16
- # sessment"> PCI SAQ D compliance</a>. <br>*PayPal offers a mechanism by
17
- # which you do not have to take on the <strong>PCI SAQ D</strong> burden by
18
- # using hosted fields - refer to <a
19
- # href="https://developer.paypal.com/docs/checkout/advanced/integrate/">this
20
- # Integration Guide</a>*.</blockquote>
12
+ # The payment card to use to fund a payment. Can be a credit or debit card.
13
+ # Note: Passing card number, cvv and expiry directly via the API requires
14
+ # PCI SAQ D compliance. *PayPal offers a mechanism by which you do not have
15
+ # to take on the PCI SAQ D burden by using hosted fields - refer to this
16
+ # Integration Guide*.
21
17
  # @return [CardRequest]
22
18
  attr_accessor :card
23
19
 
@@ -100,5 +96,20 @@ module PaypalServerSdk
100
96
  google_pay: google_pay,
101
97
  venmo: venmo)
102
98
  end
99
+
100
+ # Provides a human-readable string representation of the object.
101
+ def to_s
102
+ class_name = self.class.name.split('::').last
103
+ "<#{class_name} card: #{@card}, token: #{@token}, paypal: #{@paypal}, apple_pay:"\
104
+ " #{@apple_pay}, google_pay: #{@google_pay}, venmo: #{@venmo}>"
105
+ end
106
+
107
+ # Provides a debugging-friendly string with detailed object information.
108
+ def inspect
109
+ class_name = self.class.name.split('::').last
110
+ "<#{class_name} card: #{@card.inspect}, token: #{@token.inspect}, paypal:"\
111
+ " #{@paypal.inspect}, apple_pay: #{@apple_pay.inspect}, google_pay: #{@google_pay.inspect},"\
112
+ " venmo: #{@venmo.inspect}>"
113
+ end
103
114
  end
104
115
  end
@@ -11,17 +11,15 @@ module PaypalServerSdk
11
11
 
12
12
  # The date and time, in [Internet date and time
13
13
  # format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are
14
- # required while fractional seconds are
15
- # optional.<blockquote><strong>Note:</strong> The regular expression
16
- # provides guidance but does not reject all invalid dates.</blockquote>
14
+ # required while fractional seconds are optional. Note: The regular
15
+ # expression provides guidance but does not reject all invalid dates.
17
16
  # @return [String]
18
17
  attr_accessor :create_time
19
18
 
20
19
  # The date and time, in [Internet date and time
21
20
  # format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are
22
- # required while fractional seconds are
23
- # optional.<blockquote><strong>Note:</strong> The regular expression
24
- # provides guidance but does not reject all invalid dates.</blockquote>
21
+ # required while fractional seconds are optional. Note: The regular
22
+ # expression provides guidance but does not reject all invalid dates.
25
23
  # @return [String]
26
24
  attr_accessor :update_time
27
25
 
@@ -38,11 +36,6 @@ module PaypalServerSdk
38
36
  # @return [CheckoutPaymentIntent]
39
37
  attr_accessor :intent
40
38
 
41
- # The intent to either capture payment immediately or authorize a payment
42
- # for an order after order creation.
43
- # @return [Object]
44
- attr_accessor :processing_instruction
45
-
46
39
  # The intent to either capture payment immediately or authorize a payment
47
40
  # for an order after order creation.
48
41
  # @return [Payer]
@@ -74,7 +67,6 @@ module PaypalServerSdk
74
67
  @_hash['id'] = 'id'
75
68
  @_hash['payment_source'] = 'payment_source'
76
69
  @_hash['intent'] = 'intent'
77
- @_hash['processing_instruction'] = 'processing_instruction'
78
70
  @_hash['payer'] = 'payer'
79
71
  @_hash['purchase_units'] = 'purchase_units'
80
72
  @_hash['status'] = 'status'
@@ -90,7 +82,6 @@ module PaypalServerSdk
90
82
  id
91
83
  payment_source
92
84
  intent
93
- processing_instruction
94
85
  payer
95
86
  purchase_units
96
87
  status
@@ -104,15 +95,13 @@ module PaypalServerSdk
104
95
  end
105
96
 
106
97
  def initialize(create_time: SKIP, update_time: SKIP, id: SKIP,
107
- payment_source: SKIP, intent: SKIP,
108
- processing_instruction: SKIP, payer: SKIP,
98
+ payment_source: SKIP, intent: SKIP, payer: SKIP,
109
99
  purchase_units: SKIP, status: SKIP, links: SKIP)
110
100
  @create_time = create_time unless create_time == SKIP
111
101
  @update_time = update_time unless update_time == SKIP
112
102
  @id = id unless id == SKIP
113
103
  @payment_source = payment_source unless payment_source == SKIP
114
104
  @intent = intent unless intent == SKIP
115
- @processing_instruction = processing_instruction unless processing_instruction == SKIP
116
105
  @payer = payer unless payer == SKIP
117
106
  @purchase_units = purchase_units unless purchase_units == SKIP
118
107
  @status = status unless status == SKIP
@@ -130,8 +119,6 @@ module PaypalServerSdk
130
119
  payment_source = OrderAuthorizeResponsePaymentSource.from_hash(hash['payment_source']) if
131
120
  hash['payment_source']
132
121
  intent = hash.key?('intent') ? hash['intent'] : SKIP
133
- processing_instruction =
134
- hash.key?('processing_instruction') ? hash['processing_instruction'] : SKIP
135
122
  payer = Payer.from_hash(hash['payer']) if hash['payer']
136
123
  # Parameter is an array, so we need to iterate through it
137
124
  purchase_units = nil
@@ -161,11 +148,27 @@ module PaypalServerSdk
161
148
  id: id,
162
149
  payment_source: payment_source,
163
150
  intent: intent,
164
- processing_instruction: processing_instruction,
165
151
  payer: payer,
166
152
  purchase_units: purchase_units,
167
153
  status: status,
168
154
  links: links)
169
155
  end
156
+
157
+ # Provides a human-readable string representation of the object.
158
+ def to_s
159
+ class_name = self.class.name.split('::').last
160
+ "<#{class_name} create_time: #{@create_time}, update_time: #{@update_time}, id: #{@id},"\
161
+ " payment_source: #{@payment_source}, intent: #{@intent}, payer: #{@payer}, purchase_units:"\
162
+ " #{@purchase_units}, status: #{@status}, links: #{@links}>"
163
+ end
164
+
165
+ # Provides a debugging-friendly string with detailed object information.
166
+ def inspect
167
+ class_name = self.class.name.split('::').last
168
+ "<#{class_name} create_time: #{@create_time.inspect}, update_time: #{@update_time.inspect},"\
169
+ " id: #{@id.inspect}, payment_source: #{@payment_source.inspect}, intent:"\
170
+ " #{@intent.inspect}, payer: #{@payer.inspect}, purchase_units: #{@purchase_units.inspect},"\
171
+ " status: #{@status.inspect}, links: #{@links.inspect}>"
172
+ end
170
173
  end
171
174
  end
@@ -84,5 +84,19 @@ module PaypalServerSdk
84
84
  google_pay: google_pay,
85
85
  venmo: venmo)
86
86
  end
87
+
88
+ # Provides a human-readable string representation of the object.
89
+ def to_s
90
+ class_name = self.class.name.split('::').last
91
+ "<#{class_name} card: #{@card}, paypal: #{@paypal}, apple_pay: #{@apple_pay}, google_pay:"\
92
+ " #{@google_pay}, venmo: #{@venmo}>"
93
+ end
94
+
95
+ # Provides a debugging-friendly string with detailed object information.
96
+ def inspect
97
+ class_name = self.class.name.split('::').last
98
+ "<#{class_name} card: #{@card.inspect}, paypal: #{@paypal.inspect}, apple_pay:"\
99
+ " #{@apple_pay.inspect}, google_pay: #{@google_pay.inspect}, venmo: #{@venmo.inspect}>"
100
+ end
87
101
  end
88
102
  end
@@ -47,5 +47,17 @@ module PaypalServerSdk
47
47
  # Create object from extracted values.
48
48
  OrderCaptureRequest.new(payment_source: payment_source)
49
49
  end
50
+
51
+ # Provides a human-readable string representation of the object.
52
+ def to_s
53
+ class_name = self.class.name.split('::').last
54
+ "<#{class_name} payment_source: #{@payment_source}>"
55
+ end
56
+
57
+ # Provides a debugging-friendly string with detailed object information.
58
+ def inspect
59
+ class_name = self.class.name.split('::').last
60
+ "<#{class_name} payment_source: #{@payment_source.inspect}>"
61
+ end
50
62
  end
51
63
  end
@@ -9,15 +9,11 @@ module PaypalServerSdk
9
9
  SKIP = Object.new
10
10
  private_constant :SKIP
11
11
 
12
- # The payment card to use to fund a payment. Can be a credit or debit
13
- # card.<blockquote><strong>Note:</strong> Passing card number, cvv and
14
- # expiry directly via the API requires <a
15
- # href="https://www.pcisecuritystandards.org/pci_security/completing_self_as
16
- # sessment"> PCI SAQ D compliance</a>. <br>*PayPal offers a mechanism by
17
- # which you do not have to take on the <strong>PCI SAQ D</strong> burden by
18
- # using hosted fields - refer to <a
19
- # href="https://developer.paypal.com/docs/checkout/advanced/integrate/">this
20
- # Integration Guide</a>*.</blockquote>
12
+ # The payment card to use to fund a payment. Can be a credit or debit card.
13
+ # Note: Passing card number, cvv and expiry directly via the API requires
14
+ # PCI SAQ D compliance. *PayPal offers a mechanism by which you do not have
15
+ # to take on the PCI SAQ D burden by using hosted fields - refer to this
16
+ # Integration Guide*.
21
17
  # @return [CardRequest]
22
18
  attr_accessor :card
23
19
 
@@ -100,5 +96,20 @@ module PaypalServerSdk
100
96
  google_pay: google_pay,
101
97
  venmo: venmo)
102
98
  end
99
+
100
+ # Provides a human-readable string representation of the object.
101
+ def to_s
102
+ class_name = self.class.name.split('::').last
103
+ "<#{class_name} card: #{@card}, token: #{@token}, paypal: #{@paypal}, apple_pay:"\
104
+ " #{@apple_pay}, google_pay: #{@google_pay}, venmo: #{@venmo}>"
105
+ end
106
+
107
+ # Provides a debugging-friendly string with detailed object information.
108
+ def inspect
109
+ class_name = self.class.name.split('::').last
110
+ "<#{class_name} card: #{@card.inspect}, token: #{@token.inspect}, paypal:"\
111
+ " #{@paypal.inspect}, apple_pay: #{@apple_pay.inspect}, google_pay: #{@google_pay.inspect},"\
112
+ " venmo: #{@venmo.inspect}>"
113
+ end
103
114
  end
104
115
  end
@@ -37,16 +37,14 @@ module PaypalServerSdk
37
37
 
38
38
  # Provides additional details to process a payment using a `payment_source`
39
39
  # that has been stored or is intended to be stored (also referred to as
40
- # stored_credential or card-on-file).<br/>Parameter
41
- # compatibility:<br/><ul><li>`payment_type=ONE_TIME` is compatible only with
42
- # `payment_initiator=CUSTOMER`.</li><li>`usage=FIRST` is compatible only
43
- # with
44
- # `payment_initiator=CUSTOMER`.</li><li>`previous_transaction_reference` or
40
+ # stored_credential or card-on-file). Parameter compatibility:
41
+ # `payment_type=ONE_TIME` is compatible only with
42
+ # `payment_initiator=CUSTOMER`. `usage=FIRST` is compatible only with
43
+ # `payment_initiator=CUSTOMER`. `previous_transaction_reference` or
45
44
  # `previous_network_transaction_reference` is compatible only with
46
- # `payment_initiator=MERCHANT`.</li><li>Only one of the parameters -
45
+ # `payment_initiator=MERCHANT`. Only one of the parameters -
47
46
  # `previous_transaction_reference` and
48
- # `previous_network_transaction_reference` - can be present in the
49
- # request.</li></ul>
47
+ # `previous_network_transaction_reference` - can be present in the request.
50
48
  # @return [StoredPaymentSource]
51
49
  attr_accessor :stored_payment_source
52
50
 
@@ -105,5 +103,20 @@ module PaypalServerSdk
105
103
  cancel_url: cancel_url,
106
104
  stored_payment_source: stored_payment_source)
107
105
  end
106
+
107
+ # Provides a human-readable string representation of the object.
108
+ def to_s
109
+ class_name = self.class.name.split('::').last
110
+ "<#{class_name} brand_name: #{@brand_name}, locale: #{@locale}, return_url: #{@return_url},"\
111
+ " cancel_url: #{@cancel_url}, stored_payment_source: #{@stored_payment_source}>"
112
+ end
113
+
114
+ # Provides a debugging-friendly string with detailed object information.
115
+ def inspect
116
+ class_name = self.class.name.split('::').last
117
+ "<#{class_name} brand_name: #{@brand_name.inspect}, locale: #{@locale.inspect}, return_url:"\
118
+ " #{@return_url.inspect}, cancel_url: #{@cancel_url.inspect}, stored_payment_source:"\
119
+ " #{@stored_payment_source.inspect}>"
120
+ end
108
121
  end
109
122
  end
@@ -30,10 +30,9 @@ module PaypalServerSdk
30
30
  attr_accessor :payment_source
31
31
 
32
32
  # Customizes the payer experience during the approval process for the
33
- # payment with PayPal.<blockquote><strong>Note:</strong> Partners and
34
- # Marketplaces might configure <code>brand_name</code> and
35
- # <code>shipping_preference</code> during partner account setup, which
36
- # overrides the request values.</blockquote>
33
+ # payment with PayPal. Note: Partners and Marketplaces might configure
34
+ # brand_name and shipping_preference during partner account setup, which
35
+ # overrides the request values.
37
36
  # @return [OrderApplicationContext]
38
37
  attr_accessor :application_context
39
38
 
@@ -99,5 +98,20 @@ module PaypalServerSdk
99
98
  payment_source: payment_source,
100
99
  application_context: application_context)
101
100
  end
101
+
102
+ # Provides a human-readable string representation of the object.
103
+ def to_s
104
+ class_name = self.class.name.split('::').last
105
+ "<#{class_name} intent: #{@intent}, payer: #{@payer}, purchase_units: #{@purchase_units},"\
106
+ " payment_source: #{@payment_source}, application_context: #{@application_context}>"
107
+ end
108
+
109
+ # Provides a debugging-friendly string with detailed object information.
110
+ def inspect
111
+ class_name = self.class.name.split('::').last
112
+ "<#{class_name} intent: #{@intent.inspect}, payer: #{@payer.inspect}, purchase_units:"\
113
+ " #{@purchase_units.inspect}, payment_source: #{@payment_source.inspect},"\
114
+ " application_context: #{@application_context.inspect}>"
115
+ end
102
116
  end
103
117
  end
@@ -7,22 +7,35 @@ module PaypalServerSdk
7
7
  # The order status.
8
8
  class OrderStatus
9
9
  ORDER_STATUS = [
10
- # TODO: Write general description for CREATED
10
+ # The order was created with the specified context.
11
11
  CREATED = 'CREATED'.freeze,
12
12
 
13
- # TODO: Write general description for SAVED
13
+ # The order was saved and persisted. The order status continues to be in
14
+ # progress until a capture is made with final_capture = true for all
15
+ # purchase units within the order.
14
16
  SAVED = 'SAVED'.freeze,
15
17
 
16
- # TODO: Write general description for APPROVED
18
+ # The customer approved the payment through the PayPal wallet or another
19
+ # form of guest or unbranded payment. For example, a card, bank account,
20
+ # or so on.
17
21
  APPROVED = 'APPROVED'.freeze,
18
22
 
19
- # TODO: Write general description for VOIDED
23
+ # All purchase units in the order are voided.
20
24
  VOIDED = 'VOIDED'.freeze,
21
25
 
22
- # TODO: Write general description for COMPLETED
26
+ # The intent of the Order was completed and a `payments` resource was
27
+ # created. A completed Order may have authorized a payment, captured an
28
+ # authorized payment, or in some cases, the payment may have been
29
+ # declined. Please verify the payment status under
30
+ # purchase_unitsArray.payments before proceeding with Order fulfillment.
23
31
  COMPLETED = 'COMPLETED'.freeze,
24
32
 
25
- # TODO: Write general description for PAYER_ACTION_REQUIRED
33
+ # The order requires an action from the payer (e.g. 3DS authentication).
34
+ # Redirect the payer to the "rel":"payer-action" HATEOAS link returned as
35
+ # part of the response prior to authorizing or capturing the order. Some
36
+ # payment sources may not return a payer-action HATEOAS link (eg. MB WAY).
37
+ # For these payment sources the payer-action is managed by the scheme
38
+ # itself (eg. through SMS, email, in-app notification, etc).
26
39
  PAYER_ACTION_REQUIRED = 'PAYER_ACTION_REQUIRED'.freeze
27
40
  ].freeze
28
41
 
@@ -95,5 +95,20 @@ module PaypalServerSdk
95
95
  image_url: image_url,
96
96
  upc: upc)
97
97
  end
98
+
99
+ # Provides a human-readable string representation of the object.
100
+ def to_s
101
+ class_name = self.class.name.split('::').last
102
+ "<#{class_name} name: #{@name}, quantity: #{@quantity}, sku: #{@sku}, url: #{@url},"\
103
+ " image_url: #{@image_url}, upc: #{@upc}>"
104
+ end
105
+
106
+ # Provides a debugging-friendly string with detailed object information.
107
+ def inspect
108
+ class_name = self.class.name.split('::').last
109
+ "<#{class_name} name: #{@name.inspect}, quantity: #{@quantity.inspect}, sku:"\
110
+ " #{@sku.inspect}, url: #{@url.inspect}, image_url: #{@image_url.inspect}, upc:"\
111
+ " #{@upc.inspect}>"
112
+ end
98
113
  end
99
114
  end
@@ -19,8 +19,7 @@ module PaypalServerSdk
19
19
  # your country. If the carrier is not available for your country, choose the
20
20
  # global version of the carrier. If your carrier name is not in the list,
21
21
  # set `carrier` to `OTHER` and set carrier name in `carrier_name_other`. For
22
- # allowed values, see <a
23
- # href="/docs/tracking/reference/carriers/">Carriers</a>.
22
+ # allowed values, see Carriers.
24
23
  # @return [ShipmentCarrier]
25
24
  attr_accessor :carrier
26
25
 
@@ -33,9 +32,11 @@ module PaypalServerSdk
33
32
  # @return [String]
34
33
  attr_accessor :capture_id
35
34
 
36
- # If true, sends an email notification to the payer of the PayPal
37
- # transaction. The email contains the tracking information that was uploaded
38
- # through the API.
35
+ # If true, PayPal will send an email notification to the payer of the PayPal
36
+ # transaction. The email contains the tracking details provided through the
37
+ # Orders tracking API request. Independent of any value passed for
38
+ # `notify_payer`, the payer may receive tracking notifications within the
39
+ # PayPal app, based on the user's notification preferences.
39
40
  # @return [TrueClass | FalseClass]
40
41
  attr_accessor :notify_payer
41
42
 
@@ -112,5 +113,21 @@ module PaypalServerSdk
112
113
  notify_payer: notify_payer,
113
114
  items: items)
114
115
  end
116
+
117
+ # Provides a human-readable string representation of the object.
118
+ def to_s
119
+ class_name = self.class.name.split('::').last
120
+ "<#{class_name} tracking_number: #{@tracking_number}, carrier: #{@carrier},"\
121
+ " carrier_name_other: #{@carrier_name_other}, capture_id: #{@capture_id}, notify_payer:"\
122
+ " #{@notify_payer}, items: #{@items}>"
123
+ end
124
+
125
+ # Provides a debugging-friendly string with detailed object information.
126
+ def inspect
127
+ class_name = self.class.name.split('::').last
128
+ "<#{class_name} tracking_number: #{@tracking_number.inspect}, carrier: #{@carrier.inspect},"\
129
+ " carrier_name_other: #{@carrier_name_other.inspect}, capture_id: #{@capture_id.inspect},"\
130
+ " notify_payer: #{@notify_payer.inspect}, items: #{@items.inspect}>"
131
+ end
115
132
  end
116
133
  end
@@ -27,17 +27,15 @@ module PaypalServerSdk
27
27
 
28
28
  # The date and time, in [Internet date and time
29
29
  # format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are
30
- # required while fractional seconds are
31
- # optional.<blockquote><strong>Note:</strong> The regular expression
32
- # provides guidance but does not reject all invalid dates.</blockquote>
30
+ # required while fractional seconds are optional. Note: The regular
31
+ # expression provides guidance but does not reject all invalid dates.
33
32
  # @return [String]
34
33
  attr_accessor :create_time
35
34
 
36
35
  # The date and time, in [Internet date and time
37
36
  # format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are
38
- # required while fractional seconds are
39
- # optional.<blockquote><strong>Note:</strong> The regular expression
40
- # provides guidance but does not reject all invalid dates.</blockquote>
37
+ # required while fractional seconds are optional. Note: The regular
38
+ # expression provides guidance but does not reject all invalid dates.
41
39
  # @return [String]
42
40
  attr_accessor :update_time
43
41
 
@@ -118,5 +116,20 @@ module PaypalServerSdk
118
116
  create_time: create_time,
119
117
  update_time: update_time)
120
118
  end
119
+
120
+ # Provides a human-readable string representation of the object.
121
+ def to_s
122
+ class_name = self.class.name.split('::').last
123
+ "<#{class_name} id: #{@id}, status: #{@status}, items: #{@items}, links: #{@links},"\
124
+ " create_time: #{@create_time}, update_time: #{@update_time}>"
125
+ end
126
+
127
+ # Provides a debugging-friendly string with detailed object information.
128
+ def inspect
129
+ class_name = self.class.name.split('::').last
130
+ "<#{class_name} id: #{@id.inspect}, status: #{@status.inspect}, items: #{@items.inspect},"\
131
+ " links: #{@links.inspect}, create_time: #{@create_time.inspect}, update_time:"\
132
+ " #{@update_time.inspect}>"
133
+ end
121
134
  end
122
135
  end
@@ -7,10 +7,13 @@ module PaypalServerSdk
7
7
  # The status of the item shipment.
8
8
  class OrderTrackerStatus
9
9
  ORDER_TRACKER_STATUS = [
10
- # TODO: Write general description for CANCELLED
10
+ # The shipment was cancelled and the tracking number no longer applies.
11
11
  CANCELLED = 'CANCELLED'.freeze,
12
12
 
13
- # TODO: Write general description for SHIPPED
13
+ # The merchant has assigned a tracking number to the items being shipped
14
+ # from the Order. This does not correspond to the carrier's actual status
15
+ # for the shipment. The latest status of the parcel must be retrieved from
16
+ # the carrier.
14
17
  SHIPPED = 'SHIPPED'.freeze
15
18
  ].freeze
16
19