Created
August 9, 2019 09:43
-
-
Save liesislukas/02d834016b84b04cebbaf3bc2abdc192 to your computer and use it in GitHub Desktop.
Working PayPal order capture sample code. JavaScript. createOrder with items
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
paypal.Buttons({ | |
createOrder: function(data, actions) { | |
return actions.order.create({ | |
purchase_units: [ | |
{ | |
reference_id: "PUHF", | |
description: "Some description", | |
custom_id: "Something7364", | |
soft_descriptor: "Great description 1", | |
amount: { | |
currency_code: "EUR", | |
value: "200.00", | |
breakdown: { | |
item_total: { | |
currency_code: "EUR", | |
value: "200.00" | |
} | |
} | |
}, | |
items: [ | |
{ | |
name: "Item 1", | |
description: "The best item ever", | |
sku: "xyz-2654", | |
unit_amount: { | |
currency_code: "EUR", | |
value: "100.00" | |
}, | |
quantity: "1" | |
}, | |
{ | |
name: "Item 2", | |
description: "Not bad too", | |
sku: "zdc-3942", | |
unit_amount: { | |
currency_code: "EUR", | |
value: "50.00" | |
}, | |
quantity: "2" | |
} | |
], | |
} | |
] | |
}); | |
}, | |
onApprove: function(data, actions) { | |
return actions.order.capture().then(function(details) { | |
alert('Transaction completed by ' + details.payer.name.given_name); | |
// Call your server to save the transaction | |
return fetch('/api/paypal-transaction-complete', { | |
method: 'post', | |
headers: { | |
'content-type': 'application/json' | |
}, | |
body: JSON.stringify({ | |
orderID: data.orderID | |
}) | |
}); | |
}); | |
} | |
}).render('#paypal-button-container'); | |
// ------------------------------------------- | |
<script> | |
paypal.Buttons({ | |
createOrder: function(data, actions) { | |
return actions.order.create({ | |
purchase_units: [ | |
{ | |
reference_id: "PUHF", | |
description: "Sporting Goods", | |
custom_id: "CUST-HighFashions", | |
soft_descriptor: "HighFashions", | |
amount: { | |
currency_code: "USD", | |
value: "230.00", | |
breakdown: { | |
item_total: { | |
currency_code: "USD", | |
value: "180.00" | |
}, | |
shipping: { | |
currency_code: "USD", | |
value: "30.00" | |
}, | |
handling: { | |
currency_code: "USD", | |
value: "10.00" | |
}, | |
tax_total: { | |
currency_code: "USD", | |
value: "20.00" | |
}, | |
shipping_discount: { | |
currency_code: "USD", | |
value: "10" | |
} | |
} | |
}, | |
items: [ | |
{ | |
name: "T-Shirt", | |
description: "Green XL", | |
sku: "sku01", | |
unit_amount: { | |
currency_code: "USD", | |
value: "90.00" | |
}, | |
tax: { | |
currency_code: "USD", | |
value: "10.00" | |
}, | |
quantity: "1", | |
category: "PHYSICAL_GOODS" | |
}, | |
{ | |
name: "Shoes", | |
description: "Running, Size 10.5", | |
sku: "sku02", | |
unit_amount: { | |
currency_code: "USD", | |
value: "45.00" | |
}, | |
tax: { | |
currency_code: "USD", | |
value: "5.00" | |
}, | |
quantity: "2", | |
category: "PHYSICAL_GOODS" | |
} | |
], | |
shipping: { | |
method: "United States Postal Service", | |
address: { | |
name: { | |
full_name:"John", | |
surname:"Doe" | |
}, | |
address_line_1: "123 Townsend St", | |
address_line_2: "Floor 6", | |
admin_area_2: "San Francisco", | |
admin_area_1: "CA", | |
postal_code: "94107", | |
country_code: "US" | |
} | |
} | |
} | |
] | |
}); | |
}, | |
onApprove: function(data, actions) { | |
return actions.order.capture().then(function(details) { | |
alert('Transaction completed by ' + details.payer.name.given_name); | |
// Call your server to save the transaction | |
return fetch('/api/paypal-transaction-complete', { | |
method: 'post', | |
headers: { | |
'content-type': 'application/json' | |
}, | |
body: JSON.stringify({ | |
orderID: data.orderID | |
}) | |
}); | |
}); | |
} | |
}).render('#paypal-button-container'); | |
</script> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment