이 페이지는 express에 대한 설명을 하지 않습니다. 각 REST API에 대한 설명을 표시합니다.

 

[주요 사이트]

페이팔 개발자 사이트 : developer.paypal.com .

 

[공식문서]

연동 페이지 : https://developer.paypal.com/docs/subscriptions/integrate .

 

[참고사이트]

cURL 설명 사이트 : https://www.lesstif.com/pages/viewpage.action?pageId=14745703 .
cURL 을 Nodejs 등으로 변환해 주는 사이트 : https://curl.trillworks.com/#node .

 

 

1. 개요.

. 모든 조작은 Access 토큰을 얻고, 이를 이용해 유저를 확인해, 데이터를 내어 줍니다.

. 실제 판매하는 상품인 Product 를 등록해야 합니다.

. Product를 어떤 식으로 구독할 것인지, 설정하는 Plan을 만들어야 합니다.

. 실제 구독 처리를 하는 Subscript를 만들어야 합니다.

. paypal은 라이브 서버와 센드박스 서버를 운영하고 있는데, 여기서는 실제 구매가 일어나지 않는 sendbox서버에서의 동작만을 테스트 합니다.

. 이 것을 실행하기 위해서는 프로젝트를 생성해, client_id와 이에 대한 secret을 획득해야 합니다.

. 페이팔은 입력값이 하나라도 틀리면, 500 번 오류등을 보낼 뿐 왜, 처리가 되었는지 하나의 값도 반환하지 않습니다. 즉 원인을 반환하지 않으므로, 잘 입력해야 합니다.

 

 

2. 에세스 토큰 얻기.

. access 토큰을 얻기 위한 cURL 예제.

curl -v https://api.sandbox.paypal.com/v1/oauth2/token \
   -H "Accept: application/json" \
   -H "Accept-Language: en_US" \
   -u "client_id:secret" \
   -d "grant_type=client_credentials"

각 옵션 설명.

-H : 헤더.
-d : 포스트 데이터.
-u : 유저 아이디.

유저 아이디에 들어 갈값은 각각 생성한 프로젝트의 client_id와 secret을 넣어 줍니다.

uURL을 한줄로 만든 소스. (시크릿 값을 바꿔 놓아 동작하지 않습니다. 예시일 뿐입니다.)

curl -v https://api.sandbox.paypal.com/v1/oauth2/token -H "Accept: application/json" -H "Accept-Language: en_US" -u "AVPXMdI_2MFO__tJGV71Ve-YCQko8v1iIg4u7XEm24f1N3XAKQBjLzdGrzFEn4-dkpiwzxtdLTCjKKZM:EEv2R_AKdfni2FfPgO2YCt4RhScM7E8tkqbX7PDJB2HaoMno3bK4xvtny3" -d "grant_type=client_credentials"

 

 

3. 상품관련 REST API.

1. 상품 생성하기.

. 상품을 생성하기 위한 cURL 예제.

curl -v -X POST https://api.sandbox.paypal.com/v1/catalogs/products \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer Access-Token" \
  -H "PayPal-Request-Id: merchant-generated-ID \ // Optional and if passed, helps identify idempotent requests
-d '{
  "name": "Video Streaming Service",
  "description": "Video streaming service",
  "type": "SERVICE",
  "category": "SOFTWARE",
  "image_url": "https://example.com/streaming.jpg",
  "home_url": "https://example.com/home"
}'

. cURL 소스를 한줄로 만든 문자열.

curl -v -X POST https://api.sandbox.paypal.com/v1/catalogs/products -H "Content-Type: application/json" -H "Authorization: Bearer A21AAGncecjv_2d8uNxHxtU3LUzi3I7uHUS1Trj7syi9Fzmwx8bkx0KuH1tEFXS7t_nX8AoXtBGxBi5-xwYdUwt63XSYgX9Ew" -d '{  "name": "Video Streaming Service", "description": "Video streaming service", "type": "SERVICE", "category": "SOFTWARE", "image_url": "https://example.com/streaming.jpg", "home_url": "https://example.com/home" }'

.  주의 할점.

결과 코드가 201번이 OK 입니다. 200번 성공으로 검사를 하다가 낭패를 볼 수 있습니다. (저는 한 시간 헤맷음).

 

2. 상품 정보 표시.

cURL에서 products 다음에는 상품의 아이디를 입력해 줍니다.

. 상품 정보를 가지고 오기 위한 cURL 예제.

curl -v -X GET https://api.sandbox.paypal.com/v1/catalogs/products/72255d4849af8ed6e0df1173 \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer Access-Token"

. cURL 소스를 한줄로 만든 문자열.

curl -v -X GET https://api.sandbox.paypal.com/v1/catalogs/products/PROD-2UH90666Y0969991W -H "Content-Type: application/json" -H "Authorization: Bearer A21AAFI0ZSRjDDHfhFYGGgcVgkU9BP1aJ242GlqfWIEcf-aWLrddTJbNJF6lSwNpzH4JDzaLEbQ136ah9SHZ0WwsLGlLBAPdQ"

 

 

3. 상품 업데이트.

. 상품 정보를 업데이트 하기 위한 cURL 예제.

curl -v -X PATCH https://api.sandbox.paypal.com/v1/catalogs/products/72255d4849af8ed6e0df1173 \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer Access-Token" \
-d '[
  {
    "op": "replace",
    "path": "/description",
    "value": "Premium video streaming service"
  }
]'

. cURL 소스를 한줄로 만든 문자열.

curl -v -X PATCH https://api.sandbox.paypal.com/v1/catalogs/products/PROD-9US56197H5602373L -H "Content-Type: application/json" -H "Authorization: Bearer A21AAHuy8FMsUdRiNLznO2FWYCrlykkjrcCDkXYyq9Q-YErZBF4Y4UPD37JLL2ZBMwc0DkibctYFxAMIBkh1KQOvhq5Ki52sA" -d '[{"op": "replace","path": "/description","value": "Premium video streaming service no"}]'

주의 할점.

결과 코드가 204번이 OK 입니다. 200번으로 성공 검사를 하다가 낭패를 볼 수 있습니다.

 

 

4. 상품 리스트.

. 상품 리스트를 가지고 오기 위한 cURL 예제.

curl -v -X GET https://api.sandbox.paypal.com/v1/catalogs/products?page_size=2&page=1&total_required=true \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer Access-Token"

. cURL 소스를 한줄로 만든 문자열.

curl -v -X GET https://api.sandbox.paypal.com/v1/catalogs/products?page_size=2&page=1&total_required=true -H "Content-Type: application/json" -H "Authorization: Bearer A21AAEYDcoQtmrOta05Wj6Au2OmTZz90qqGIvHjUnA-iWAJ0y56XW-7gNgrghvxGcfu1PCqxAwPua6x4ajE47EGuznS0u2JTw"

 

 

4. 플랜 관련 REST API.

1. 플랜 생성.

. 플랜을 생성하기 위한 cURL 예제.

옵션인 플랜 아이디는 따로 주지 않아도 됩니다.

curl -v -k -X POST https://api.sandbox.paypal.com/v1/billing/plans \
  -H "Accept: application/json" \
  -H "Authorization: Bearer Access-Token" \
  -H "PayPal-Request-Id: PLAN-18062019-001" \  // merchant generated ID, optional and needed for idempotent samples
  -H "Prefer: return=representation" \
  -H "Content-Type: application/json" \
  -d '{
      "product_id": "PROD-6XB24663H4094933M",
      "name": "Basic Plan",
      "description": "Basic plan",
      "billing_cycles": [
        {
          "frequency": {
            "interval_unit": "MONTH",
            "interval_count": 1
          },
          "tenure_type": "TRIAL",
          "sequence": 1,
          "total_cycles": 1
        },
        {
          "frequency": {
            "interval_unit": "MONTH",
            "interval_count": 1
          },
          "tenure_type": "REGULAR",
          "sequence": 2,
          "total_cycles": 12,
          "pricing_scheme": {
            "fixed_price": {
              "value": "10",
              "currency_code": "USD"
            }
          }
        }
      ],
      "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
      }
    }'

- 빌링 사이클 : 말 그대도 결제 사이클 입니다. ( 공식페이지 )
   + frequency : 한달에 한번, 혹은 일주일에 한 번, 혹은 1년에 한 번등을 설정하는 값 입니다.
   + tenure_type : TRIAL (테스트), REGULAR (정식), TRIAL은 트라이얼 결제를 통해 무료한달 등을 사용할 수 있게 하기 위함.
   + sequence : 결제 실행 순서 입니다. 위 예제에서는 트라이얼 결제가 먼저 일어 납니다.
   + total_cycles : 결제를 몇번 동안 계속 할 것인가 입니다. 위 예제에서는 1년동안 구독이 됩니다. (최대 99회)
   + pricing_scheme : 1회 결제시 가격 입니다. value 값. currency_code는 ( 코드 표 링크 )를 참조 합니다.

payment_preferences : 결제를 위한 설정입니다. (자동 구독을 위한 설정).
   + auto_bill_outstanding :  자동으로 다음 결제를 할 것인지 설정하는 값, 기본 (true)
   + set-fee : 첫 구독 시 결제 비용 입니다. (왜 따로 두었는지는 모르겠습니다.)
   + setup_fee_failure_action : 초기 결제가 실패한 경우, 동작 CANCEL (기본값) 은 결제 실패, CONTINUE는 재시도.
   + payment_failure_threshold : 실패시 재 시도 횟수.
   + taxes : 세금정보, percentage -> 세금비율, inclusive -> 금액에 세금이 들어 가 있는 지 여부 (default:true).

. cURL 소스를 한줄로 만든 문자열.

curl -v -X POST https://api.sandbox.paypal.com/v1/billing/plans -H "Content-Type: application/json" -H "Authorization: Bearer A21AAG9M3f0j-aS8q4lgK4BPH-JRP0t-je8jL3e5yI8mybt7rgyBvh6F-6EwHBBgoJF5CQf3LEeC-lrCwJAuvy1O1pcm8A7GQ" -d '{"product_id": "PROD-2UH90666Y0969991W","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": 1,"pricing_scheme": {"fixed_price":{"value":"10","currency_code":"USD"}}},{"frequency":{"interval_unit":"MONTH","interval_count":1},"tenure_type": "REGULAR","sequence": 2,"total_cycles":12,"pricing_scheme":{"fixed_price":{"value": "100","currency_code":"USD"}}}],"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}}'

. 주의 할 점.

생성시 201 status 코드를 반환합니다. 200번으로 검사하시면 안됩니다.

 

 

2. 유효한 플랜 리스트.

. 플랜리스트를 가지고 오기 위한 cURL 예제.

curl -v -X GET https://api.sandbox.paypal.com/v1/billing/plans?page_size=2&page=1&total_required=true \
-H "Content-Type: application/json" \
-H "Authorization: Bearer Access-Token"

. cURL 소스를 한줄로 만든 문자열.

curl -v -X GET https://api.sandbox.paypal.com/v1/billing/plans?page_size=2&page=1&total_required=true -H "Content-Type: application/json" -H "Authorization: Bearer A21AAHI_Flrh2uvWHQbILGIksjorab6ePahqPnKrTPNQYsWuS-DL-X5sJoIZe5c4k85vstm3eAdLUcV1BlXHoynwx9HYIt0jg"

 

 

3. 플랜 정보 표시.

. 플랜 정보 표시를 위한 cURL 예제.

curl -v -X GET https://api.sandbox.paypal.com/v1/billing/plans/P-2UF78835G6983425GLSM44MA \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer Access-Token"

. cURL 소스를 한줄로 만든 문자열.

curl -v -X GET https://api.sandbox.paypal.com/v1/billing/plans/P-6CT89946GV786361JLUVLPRQ -H "Content-Type: application/json" -H "Authorization: Bearer A21AAH5qauXi5CvpnecoUuKXMU9zrnJVzwPuxRO5kykkdqkkUZj_QbyuawB3ADMK_f16D3ExfbaBQfrmg51ZA3NwZzxEioYww"

 

 

4. 플랜 활성화.

. 플랜을 활성화 하기 위한 cURL 예제.

curl -v -X POST https://api.sandbox.paypal.com/v1/billing/plans/P-7GL4271244454362WXNWU5NQ/activate \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer Access-Token"

. cURL 소스를 한줄로 만든 문자열.

curl -v -X POST https://api.sandbox.paypal.com/v1/billing/plans/P-2GL72983FH4989143LUVNSWQ/activate -H "Content-Type: application/json" -H "Authorization: Bearer A21AAG3Er__iBWSK-E8eDuhkpiTzqeuZ9Cf3hkCUFKc4vldCBmVOZ4o4DWvONMjV8eHLTy558lzy_346TzVniHKdbPR1HXr5A"

. 주의 할 점.

생성시 204 status 코드를 반환합니다. 200번으로 검사하시면 안됩니다.

 

 

5. 비활성화 플랜.

. 플랜을 비활성화 하기 위한 cURL 예제.

curl -v -X POST https://api.sandbox.paypal.com/v1/billing/plans/P-7GL4271244454362WXNWU5NQ/deactivate \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer Access-Token"

. cURL 소스를 한줄로 만든 문자열.

curl -v -X POST https://api.sandbox.paypal.com/v1/billing/plans/P-2GL72983FH4989143LUVNSWQ/deactivate -H "Content-Type: application/json" -H "Authorization: Bearer A21AAH5qauXi5CvpnecoUuKXMU9zrnJVzwPuxRO5kykkdqkkUZj_QbyuawB3ADMK_f16D3ExfbaBQfrmg51ZA3NwZzxEioYww"

. 주의 할 점.

생성시 204 status 코드를 반환합니다. 200번으로 검사하시면 안됩니다.

 

 

6 플랜 업데이트.

* 플랜중 가격을 제외한 부분을 변경할 수 있으므며 아래와 같습니다.
   -  description, auto_bill_outstanding, texes.percentage, payment_preferences.payment_failure_threshold

. 플랜을 업데이트 하기 위한 cURL 예제.

curl -v -X PATCH https://api.sandbox.paypal.com/v1/billing/plans/P-7GL4271244454362WXNWU5NQ \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer Access-Token" \
  -d '[
    {
      "op": "replace",
      "path": "/payment_preferences/payment_failure_threshold",
      "value": 7
    }
  ]'

. cURL 소스를 한줄로 만든 문자열.

curl -v -X PATCH https://api.sandbox.paypal.com/v1/billing/plans/P-6CT89946GV786361JLUVLPRQ -H "Content-Type: application/json" -H "Authorization: Bearer A21AAG0nNx3tfO_Lm4f3gQh6-hkfUYFLJgkMDJGAG3azztvPQFmkITxtdMiWuS8wypPf4Dclvv78Qpji9CqOrxHWjlapaGBkQ" -d '[{"op": "replace","path": "/payment_preferences/payment_failure_threshold","value": 7}]'

. 주의 할 점.

생성시 204 status 코드를 반환합니다. 200번으로 검사하시면 안됩니다.

세금도 변경하실 분이 계실것 같은데, 기존에 10.0등 소수점 자리가 있으면, "" 로 묶어야 합니다. 아니면 오류 납니다.

 

 

7. 플랜 프라이싱.

* 플랜 중 빌링 사이클 (주로 가격 및 지불 방법)을 변경할 때 사용합니다.

. 플랜의 가격및 일정등을 조절 하기 위한 cURL 예제.

curl -v -X POST https://api.sandbox.paypal.com/v1/billing/plans/P-2UF78835G6983425GLSM44MA/update-pricing-schemes \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer Access-Token" \
-d '{
  "pricing_schemes": [{
    "billing_cycle_sequence": 2,
    "pricing_scheme": {
      "fixed_price": {
        "value": "50",
        "currency_code": "USD"
        }
      }
    }
  ]
}'

. cURL 소스를 한줄로 만든 문자열.

curl -v -X POST https://api.sandbox.paypal.com/v1/billing/plans/P-6CT89946GV786361JLUVLPRQ/update-pricing-schemes -H "Content-Type: application/json" -H "Authorization: Bearer A21AAHPEgYcmHBslHbSE8_8h93mFN892b8VdAmUN1QTkXSOZZKcTBTdJnNJDYBd5uR8OVB4EeNkO8kVtH4ETqF38R1LGE3GXA" -d '{"pricing_schemes": [{"billing_cycle_sequence": 2,"pricing_scheme": {"fixed_price": {"value": "50","currency_code": "USD"}}}]}'

. 주의 할 점.

생성시 204 status 코드를 반환합니다. 200번으로 검사하시면 안됩니다.

원래가격의 20% 이상 변경한다면, 오류가 납니다.

가격 변경은 단 한 번만 할 수 있습니다.

 

 

 

5. 구독을 위한 REST API.

구독은 실제 사용자의 결제로 부터 시작되며, 이 것을 검증하고 활성화, 결제 내역 확인등의 작업을 처리하게 됩니다.

 

1. 구독 생성.

. 사용자 구독 신청을 하기 위한 웹페이지 소스

<body>
  <script
       src="https://www.paypal.com/sdk/js?client-id=SB_CLIENT_ID&vault=true">
  </script>

  <div id="paypal-button-container"></div>

  <script>
  
    paypal.Buttons({

      createSubscription: function(data, actions) {

        return actions.subscription.create({

          'plan_id': 'P-2UF78835G6983425GLSM44MA'

        });

      },


      onApprove: function(data, actions) {

        alert('You have successfully created subscription ' + data.subscriptionID);

      }


    }).render('#paypal-button-container');
    
  </script>
</body>

. 구독을 생성하기 위한 cURL 예제.

curl -v -k -X POST https://api.sandbox.paypal.com/v1/billing/subscriptions \
   -H "Accept: application/json" \
   -H "Authorization: Bearer Access-Token" \
   -H "PayPal-Request-Id: SUBSCRIPTION-21092019-001" \
   -H "Prefer: return=representation" \
   -H "Content-Type: application/json" \
   -d '{
      "plan_id": "P-2UF78835G6983425GLSM44MA",
      "start_time": "2019-03-27T06:00:00Z",
      "subscriber": {
        "name": {
          "given_name": "John",
          "surname": "Doe"
        },
        "email_address": "customer@example.com"
      },
      "auto_renewal": true,
      "application_context": {
        "brand_name": "example",
        "locale": "en-US",
        "shipping_preference": "SET_PROVIDED_ADDRESS",
        "user_action": "SUBSCRIBE_NOW",
        "payment_method": {
          "payer_selected": "PAYPAL",
          "payee_preferred": "IMMEDIATE_PAYMENT_REQUIRED"
        },
        "return_url": "https://example.com/returnUrl",
        "cancel_url": "https://example.com/cancelUrl"
      }
    }'

plan_id : 구독 대상이되는 플랜의 아이디 입니다. (이 것만 입력하면됩니다.)
- start_time : 이 구독이 시작되는 시간. (입력하지않으면 현재시간; 페이팔 서버와 시차등을 계산해야 하므로, 입력하지 않을 것을 권장)
quantity : 구독을 몇개 했는지 여부 입니다. (대체로 1을 놓으면 된다라고 생각합니다.
shipping_amount : 배송비 입니다.
subscriber : 구독자의 정보 입니다.
auto_renewal : 자동으로 구매 처리를 할 것인가 여부.
application_context : 마켓 이라면, 어떤 마켓을 통해 구매 했는지 등을 남기면됩니다. (웹을 통한 경우, 웹이라 입력하면됨.).

. cURL 소스를 한줄로 만든 문자열.

curl -v -k -X POST https://api.sandbox.paypal.com/v1/billing/subscriptions -H "Accept: application/json" -H "Authorization: Bearer A21AAF2sr1xlf9jswwJRqle3ncuX8GaEEPqcxtfW-a-HlkXCDt8ZTYlDrMvRlU0KbhFqFkjS8g5DdTAXa2lqZ-Gp3BvBqVlpA" -H "PayPal-Request-Id: I-5KL7FJ0N1RKW" -H "Prefer: return=representation" -H "Content-Type: application/json" -d '{"plan_id": "P-6CT89946GV786361JLUVLPRQ","start_time": "2019-03-27T06:00:00Z","subscriber": {"name": {"given_name": "John","surname": "Doe"},"email_address": "customer@example.com"},"auto_renewal": true,"application_context": {"brand_name": "example","locale": "en-US","shipping_preference": "SET_PROVIDED_ADDRESS","user_action":"SUBSCRIBE_NOW","payment_method": {"payer_selected": "PAYPAL","payee_preferred": "IMMEDIATE_PAYMENT_REQUIRED"},"return_url": "https://example.com/returnUrl","cancel_url": "https://example.com/cancelUrl"}}'

. 주의 할 점.

시간을 입력할 때는 javascript의 Date객체로 시간을 생성한뒤 toISOString()  라는 멤버 메소드를 이용해 값을 출력하면됩니다.

생성시 201 status 코드를 반환합니다. 200번으로 검사하시면 안됩니다.

웹으로 구독을 신청하면, 구독이 이미 생성된 것 입니다. REST API로 하는 것은 소매점 오프라인을 위한 것으로 보입니다. 일단 저는 이부분만은 REST API로 해 보지 않았습니다. 웹에서 하면 이미 끝이니까요

 

2. 구독 자세히 보기.

. 구독의 상세 정보 확인을 위한 cURL 예제.

curl -v -X GET https://api.sandbox.paypal.com/v1/billing/subscriptions/I-BW452GLLEP1G \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer Access-Token"

. cURL 소스를 한줄로 만든 문자열.

curl -v -X GET https://api.sandbox.paypal.com/v1/billing/subscriptions/I-BY6XKDWF90W7 -H "Content-Type: application/json" -H "Authorization: Bearer A21AAFnNqv1rB6Zj0u6ayyNQtqqb3ZgkJBoIqng_cdUym_4uHHXyou9v9H7_JlhcnuzPDG03zzzs6n6c8r6w1ETBf1lKRr9AQ"

 

3. 구독 정보 업데이트.

. 구독 정보 업데이트를 위한 cURL 예제.

curl -v -X PATCH https://api.sandbox.paypal.com/v1/billing/subscriptions/I-BW452GLLEP1G \
-H "Content-Type: application/json" \
-H "Authorization: Bearer Access-Token" \
-d '[
  {
    "op": "replace",
    "path": "/billing_info/outstanding_balance",
    "value": {
      "currency_code": "USD",
      "value": "50.00"
    }
  }
]'

- 업데이트 하기 위해 할 수 있는 것은 아래 3가지 입니다.
   + subscripber.shipping_address : 배송 주소.
   + shipping_amount : 배송비
   + billing_info.outstanding_balance : 미 결제 잔액.

. cURL 소스를 한줄로 만든 문자열.

curl -v -X PATCH https://api.sandbox.paypal.com/v1/billing/subscriptions/I-BW452GLLEP1G -H "Content-Type: application/json" -H "Authorization: Bearer A21AAG1TgiPs8x7--4lmuFT-gnoUkhvnJs-yMRE3_4eeBY2L0IzI8X12V2cMHL9okRMThBt3p5Gd_9e37pFfMw4B1Wn8cYIcg" -d '[{"op": "replace","path": "/billing_info/outstanding_balance","value": {"currency_code": "USD","value": "50.00"}}]'

. 주의 할 점.

생성시 204 status 코드를 반환합니다. 200번으로 검사하시면 안됩니다.

 

4. 구독 정지.

. 구독을 정지하기 위한 cURL 예제.

curl -v -X POST https://api.sandbox.paypal.com/v1/billing/subscriptions/I-BW452GLLEP1G/suspend \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer Access-Token"

. cURL 소스를 한줄로 만든 문자열.

curl -v -X POST https://api.sandbox.paypal.com/v1/billing/subscriptions/I-LC86V1F6JKFW/suspend -H "Content-Type: application/json" -H "Authorization: Bearer A21AAH3b4Hfn5gOd3SKJK7aUpOWAy2hB_gPEhuq_SeURA4aqopM1m1NwV3-ECZwRLVmdT3ZrME2Qq6sicsO-Dfl3dGHrmGPhg"

. 주의 할 점.

생성시 204 status 코드를 반환합니다. 200번으로 검사하시면 안됩니다.

 

5. 구독 취소.

. 구독 취소를 위한 위한 cURL 예제.

curl -v -X POST https://api.sandbox.paypal.com/v1/billing/subscriptions/I-BW452GLLEP1G/cancel \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer Access-Token"

. cURL 소스를 한줄로 만든 문자열.

curl -v -X POST https://api.sandbox.paypal.com/v1/billing/subscriptions/I-BW452GLLEP1G/cancel -H "Content-Type: application/json" -H "Authorization: Bearer Access-Token"

. 주의 할 점.

생성시 204 status 코드를 반환합니다. 200번으로 검사하시면 안됩니다.

 

6. 구독 활성화

. 구독을 활성화 하기 위한 cURL 예제.

curl -v -X POST https://api.sandbox.paypal.com/v1/billing/subscriptions/I-BW452GLLEP1G/activate \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer Access-Token"

. cURL 소스를 한줄로 만든 문자열.

curl -v -X POST https://api.sandbox.paypal.com/v1/billing/subscriptions/I-BW452GLLEP1G/activate -H "Content-Type: application/json" -H "Authorization: Bearer Access-Token"

 

7. 미 결제 약정 잔액에 대한 지불.

* 이 것은 잔액이 없거나 하는 등의 이유로 지불해야 할 돈을 지불하지 않은 경우, 지불을 시도하는 옵션으로 보입니다.

. 미 결제 약정 잔액을 위한 cURL 예제.

curl -v -X POST https://api.sandbox.paypal.com/v1/billing/subscriptions/I-BW452GLLEP1G/capture \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer Access-Token"
 -d '{
   "note": "Charging as the balance reached the limit",
   "capture_type": "OUTSTANDING_BALANCE",
   "amount": {
     "value": "100",
     "currency_code": "USD"
   }
 }'

. cURL 소스를 한줄로 만든 문자열.

curl -v -X POST https://api.sandbox.paypal.com/v1/billing/subscriptions/I-BW452GLLEP1G/capture -H "Content-Type: application/json" -H "Authorization: Bearer Access-Token" -d '{"note": "Charging as the balance reached the limit","capture_type": "OUTSTANDING_BALANCE","amount": {"value": "100","currency_code": "USD"}}'

 

. 주의 할 점.

생성시 204 status 코드를 반환합니다. 200번으로 검사하시면 안됩니다.

 

8. 구독 결제 나열.

. 구독 결제 나열을하기 위한 cURL 예제.

curl -v -X GET https://api.sandbox.paypal.com/v1/billing/subscriptions/I-BW452GLLEP1G/transactions?start_time=2018-01-21T07:50:20.940Z&end_time=2018-08-21T07:50:20.940Z \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer Access-Token"

- 시간을 입력할 때는 javascript의 Date객체로 시간을 생성한뒤 toISOString()  라는 멤버 메소드를 이용해 값을 출력하면됩니다.

. cURL 소스를 한줄로 만든 문자열.

curl -v -X GET https://api.sandbox.paypal.com/v1/billing/subscriptions/I-BW452GLLEP1G/transactions?start_time=2018-01-21T07:50:20.940Z&end_time=2018-08-21T07:50:20.940Z -H "Content-Type: application/json" -H "Authorization: Bearer Access-Token"

 

9. 구독 업그레이드 / 다운 그레이드.

. 구독 업그레이드 / 다운 그레이드는 시간 관계상 하지 않았습니다. 저도 사용하지 않기도 해서요.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Posted by 창업닉군
,