티스토리 뷰
Paypal 결제를 연동할 때 복수의 상품(장바구니)을 구매하는 경우에는 다음과 같이 item_list를 사용하면 된다. 아래 소스코드는 페이팔에서 제공하는 샘플 예제이다.
curl -v -X POST https://api.sandbox.paypal.com/v1/payments/payment \
-H "Content-Type: application/json" \
-H "Authorization: Bearer Access-Token" \
-d '{
"intent": "sale",
"payer": {
"payment_method": "paypal"
},
"transactions": [
{
"amount": {
"total": "30.11",
"currency": "USD",
"details": {
"subtotal": "30.00",
"tax": "0.07",
"shipping": "0.03",
"handling_fee": "1.00",
"shipping_discount": "-1.00",
"insurance": "0.01"
}
},
"description": "The payment transaction description.",
"custom": "EBAY_EMS_90048630024435",
"invoice_number": "48787589673",
"payment_options": {
"allowed_payment_method": "INSTANT_FUNDING_SOURCE"
},
"soft_descriptor": "ECHI5786786",
"item_list": {
"items": [
{
"name": "hat",
"description": "Brown hat.",
"quantity": "5",
"price": "3",
"tax": "0.01",
"sku": "1",
"currency": "USD"
},
{
"name": "handbag",
"description": "Black handbag.",
"quantity": "1",
"price": "15",
"tax": "0.02",
"sku": "product34",
"currency": "USD"
}
],
"shipping_address": {
"recipient_name": "Brian Robinson",
"line1": "4th Floor",
"line2": "Unit #34",
"city": "San Jose",
"country_code": "US",
"postal_code": "95131",
"phone": "011862212345678",
"state": "CA"
}
}
}
],
"note_to_payer": "Contact us for any questions on your order.",
"redirect_urls": {
"return_url": "https://example.com/return",
"cancel_url": "https://example.com/cancel"
}
}'
여기 items안에 상품에는 소비자가 구매하는 상품 이외에 할인 정보를 넣어도 된다. 할인 정보를 넣을 때는 price를 음수로 지정하면 되겠다.
이런식으로 할인 가격을 표시해줄 때 유의할 점은 item_list 안에 있는 모든 price의 합이 amount.details.subtotal 과 같아야 한다는 것이다. 가격 합이 같지 않으면 아래와 같은 에러를 만나게 된다.
{"name":"VALIDATION_ERROR","details":[
{
"field":"transactions[0]",
"issue":"Item amount must add up to specified amount subtotal (or total if amount details not specified)"}],"message":"Invalid request - see details","information_link":"https://developer.paypal.com/docs/api/payments/#errors","debug_id":"9aedaff306f00”}
Paypal API는 문서가 상세하게 잘 정리되어 있어서 연동에 어렵지 않지만 역시 흩어져 있는 정보를 모아보는게 익숙하지 않은 사람에게는 모든 단계가 챌린지가 될 수 있다.
'개발 > 길 잃은 게시물' 카테고리의 다른 글
크롬 탭 별 음소거(mute) 처리 (0) | 2022.04.28 |
---|---|
gem install error (2) | 2021.02.20 |
매직마우스 가속도 설정 끄기 (3) | 2019.07.05 |
링크드인에 코세라 자격증 추가하기 (0) | 2019.04.23 |
Hello web assembly (0) | 2019.04.01 |
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
- Total
- Today
- Yesterday