lms/vendor/srmklive/paypal/tests/Mocks/Responses/BillingPlans.php
2025-12-15 12:26:23 +01:00

307 lines
7.6 KiB
PHP

<?php
namespace Srmklive\PayPal\Tests\Mocks\Responses;
use GuzzleHttp\Utils;
trait BillingPlans
{
/**
* @return array
*/
private function mockCreatePlansResponse(): array
{
return Utils::jsonDecode('{
"id": "P-5ML4271244454362WXNWU5NQ",
"product_id": "PROD-XXCD1234QWER65782",
"name": "Video Streaming Service Plan",
"description": "Video Streaming Service basic plan",
"status": "ACTIVE",
"billing_cycles": [
{
"frequency": {
"interval_unit": "MONTH",
"interval_count": 1
},
"tenure_type": "TRIAL",
"sequence": 1,
"total_cycles": 2,
"pricing_scheme": {
"fixed_price": {
"value": "3",
"currency_code": "USD"
},
"version": 1,
"create_time": "2020-05-27T12:13:51Z",
"update_time": "2020-05-27T12:13:51Z"
}
},
{
"frequency": {
"interval_unit": "MONTH",
"interval_count": 1
},
"tenure_type": "TRIAL",
"sequence": 2,
"total_cycles": 3,
"pricing_scheme": {
"fixed_price": {
"currency_code": "USD",
"value": "6"
},
"version": 1,
"create_time": "2020-05-27T12:13:51Z",
"update_time": "2020-05-27T12:13:51Z"
}
},
{
"frequency": {
"interval_unit": "MONTH",
"interval_count": 1
},
"tenure_type": "REGULAR",
"sequence": 3,
"total_cycles": 12,
"pricing_scheme": {
"fixed_price": {
"currency_code": "USD",
"value": "10"
},
"version": 1,
"create_time": "2020-05-27T12:13:51Z",
"update_time": "2020-05-27T12:13:51Z"
}
}
],
"payment_preferences": {
"auto_bill_outstanding": true,
"setup_fee": {
"value": "10",
"currency_code": "USD"
},
"setup_fee_failure_action": "CONTINUE",
"payment_failure_threshold": 3
},
"taxes": {
"percentage": "10",
"inclusive": false
},
"create_time": "2020-05-27T12:13:51Z",
"update_time": "2020-05-27T12:13:51Z",
"links": [
{
"href": "https://api.paypal.com/v1/billing/plans/P-5ML4271244454362WXNWU5NQ",
"rel": "self",
"method": "GET"
},
{
"href": "https://api.paypal.com/v1/billing/plans/P-5ML4271244454362WXNWU5NQ",
"rel": "edit",
"method": "PATCH"
},
{
"href": "https://api.paypal.com/v1/billing/plans/P-5ML4271244454362WXNWU5NQ/deactivate",
"rel": "deactivate",
"method": "POST"
},
{
"href": "https://api.paypal.com/v1/billing/plans/P-5ML4271244454362WXNWU5NQ/update-pricing-schemes",
"rel": "edit",
"method": "POST"
}
]
}', true);
}
/**
* @return array
*/
private function mockListPlansResponse(): array
{
return Utils::jsonDecode('{
"total_items": 12,
"total_pages": 6,
"plans": [
{
"id": "P-5ML4271244454362WXNWU5NQ",
"product_id": "PROD-XXCD1234QWER65782",
"status": "ACTIVE",
"name": "Zoho Marketing Campaign Plan",
"description": "Zoho Marketing Campaign Plan",
"create_time": "2018-12-10T21:20:49Z",
"links": [
{
"href": "https://api.paypal.com/v1/billing/plans/P-5ML4271244454362WXNWU5NQ",
"rel": "self",
"method": "GET"
}
]
},
{
"id": "P-6LL4271454454362WXNWU5NQ",
"product_id": "PROD-XXCD1234QWER65782",
"status": "ACTIVE",
"name": "Zoho Marketing Campaign Basic Plan",
"description": "Zoho Marketing Campaign Plan",
"create_time": "2019-01-10T21:20:49Z",
"links": [
{
"href": "https://api.paypal.com/v1/billing/plans/P-6LL4271454454362WXNWU5NQ",
"rel": "self",
"method": "GET"
}
]
}
],
"links": [
{
"href": "https://api.paypal.com/v1/billing/plans?product_id=PROD-XXCD1234QWER65782&page_size=2&page=1",
"rel": "self",
"method": "GET"
},
{
"href": "https://api.paypal.com/v1/billing/plans?product_id=PROD-XXCD1234QWER65782&page_size=2&page=1",
"rel": "first",
"method": "GET"
},
{
"href": "https://api.paypal.com/v1/billing/plans?product_id=PROD-XXCD1234QWER65782&page_size=2&page=2",
"rel": "next",
"method": "GET"
},
{
"href": "https://api.paypal.com/v1/billing/plans?product_id=PROD-XXCD1234QWER65782&page_size=2&page=6",
"rel": "last",
"method": "GET"
}
]
}', true);
}
/**
* @return array
*/
private function mockGetPlansResponse(): array
{
return Utils::jsonDecode('{
"id": "P-5ML4271244454362WXNWU5NQ",
"product_id": "PROD-XXCD1234QWER65782",
"name": "Basic Plan",
"description": "Basic Plan",
"status": "ACTIVE",
"billing_cycles": [
{
"frequency": {
"interval_unit": "MONTH",
"interval_count": 1
},
"tenure_type": "TRIAL",
"sequence": 1,
"total_cycles": 2,
"pricing_scheme": {
"fixed_price": {
"currency_code": "USD",
"value": "3"
},
"version": 1,
"create_time": "2020-05-27T12:13:51Z",
"update_time": "2020-05-27T12:13:51Z"
}
},
{
"frequency": {
"interval_unit": "MONTH",
"interval_count": 1
},
"tenure_type": "TRIAL",
"sequence": 2,
"total_cycles": 3,
"pricing_scheme": {
"fixed_price": {
"currency_code": "USD",
"value": "6"
},
"version": 1,
"create_time": "2020-05-27T12:13:51Z",
"update_time": "2020-05-27T12:13:51Z"
}
},
{
"frequency": {
"interval_unit": "MONTH",
"interval_count": 1
},
"tenure_type": "REGULAR",
"sequence": 3,
"total_cycles": 12,
"pricing_scheme": {
"fixed_price": {
"value": "10",
"currency_code": "USD"
},
"status": "ACTIVE",
"version": 1,
"create_time": "2020-05-27T12:13:51Z",
"update_time": "2020-05-27T12:13:51Z"
}
}
],
"taxes": {
"percentage": "10",
"inclusive": false
},
"create_time": "2020-05-27T12:13:51Z",
"update_time": "2020-05-27T12:13:51Z",
"links": [
{
"href": "https://api.paypal.com/v1/billing/plans/P-5ML4271244454362WXNWU5NQ",
"rel": "self",
"method": "GET"
},
{
"href": "https://api.paypal.com/v1/billing/plans/P-5ML4271244454362WXNWU5NQ",
"rel": "edit",
"method": "PATCH"
},
{
"href": "https://api.paypal.com/v1/billing/plans/P-5ML4271244454362WXNWU5NQ/deactivate",
"rel": "deactivate",
"method": "POST"
},
{
"href": "https://api.paypal.com/v1/billing/plans/P-5ML4271244454362WXNWU5NQ/update-pricing-schemes",
"rel": "edit",
"method": "POST"
}
]
}', true);
}
/**
* @return array
*/
private function mockCreatePlansErrorResponse(): array
{
return Utils::jsonDecode('{
"error": {
"name" : "UNPROCESSABLE_ENTITY",
"message" : "The requested action could not be performed, semantically incorrect, or failed business validation.",
"debug_id" : "7a944631e76bf",
"details" : [
{
"issue" : "CURRENCY_NOT_SUPPORTED_FOR_RECEIVER",
"description" : "This currency cannot be accepted for this recipient\'s account."
}
],
"links" : [
{
"href" : "https://developer.paypal.com/docs/api/v1/billing/subscriptions#UNPROCESSABLE_ENTITY",
"rel" : "information_link",
"method" : "GET"
}
]
}
}', true);
}
}