이 페이지는 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. 구독 업그레이드 / 다운 그레이드.
. 구독 업그레이드 / 다운 그레이드는 시간 관계상 하지 않았습니다. 저도 사용하지 않기도 해서요.
'Node.js' 카테고리의 다른 글
Node.js 페이팔 결제 연동 (Checkout, REST API) (0) | 2019.07.29 |
---|---|
NodeJS 페이팔 결제 연동 (Checkout, SDK) (0) | 2019.07.29 |
node.js socket.io 를 이용한 소켓 구현 (0) | 2019.06.03 |
node.js ws 를 이용한 웹소켓 구현. (6) | 2019.06.02 |
Express-generator로 express 간단히 셋팅하기. (0) | 2019.06.02 |