paymaya-node-sdk
Version:
Node.js Client for Paymaya API
144 lines (120 loc) • 3.6 kB
JavaScript
const sdk = require("./index.js");
const PaymayaSDK = sdk.PaymayaSDK;
// const Checkout = sdk.Checkout;
// console.log({PayMayaSDK});
// const window = { location: {} };
const request = {
totalAmount: {
"value": 1,
"currency": "PHP"
},
buyer: {
"firstName": "Anya",
"lastName": "Forger",
"birthday": "2010-01-01",
"customerSince": "2010-01-01",
"sex": "F"
},
requestReferenceNumber: "a14cfaac-653a-43d0-af72-1d1ac1b11618"
};
PaymayaSDK.initCheckout('pk-BCQ5PlTrpaVeA2kYWeBg0ZaOozwLeZ7CNTElnJa27JC', '', 'SANDBOX');
// const co = new Checkout();
var Checkout = sdk.Checkout;
var Contact = sdk.Contact;
var Address = sdk.Address;
var Buyer = sdk.Buyer;
var ItemAmountDetails = sdk.ItemAmountDetails;
var ItemAmount = sdk.ItemAmount;
var Item = sdk.Item;
var addressOptions = {
line1 : "9F Robinsons Cybergate 3",
line2 : "Pioneer Street",
city : "Mandaluyong City",
state : "Metro Manila",
zipCode : "12345",
countryCode : "PH"
};
var contactOptions = {
phone : "+63(2)1234567890",
email : "paymayabuyer1@gmail.com"
};
var buyerOptions = {
firstName : "John",
middleName : "Michaels",
lastName : "Doe"
};
var contact = new Contact();
contact.phone = contactOptions.phone;
contact.email = contactOptions.email;
buyerOptions.contact = contact;
var address = new Address();
address.line1 = addressOptions.line1;
address.line2 = addressOptions.line2;
address.city = addressOptions.city;
address.state = addressOptions.state;
address.zipCode = addressOptions.zipCode;
address.countryCode = addressOptions.countryCode;
buyerOptions.shippingAddress = address;
buyerOptions.billingAddress = address;
/**
* Construct buyer here
*/
var buyer = new Buyer();
buyer.firstName = buyerOptions.firstName;
buyer.middleName = buyerOptions.middleName;
buyer.lastName = buyerOptions.lastName;
buyer.contact = buyerOptions.contact;
buyer.shippingAddress = buyerOptions.shippingAddress;
buyer.billingAddress = buyerOptions.billingAddress;
var itemAmountDetailsOptions = {
shippingFee: "14.00",
tax: "5.00",
subTotal: "50.00"
};
var itemAmountOptions = {
currency: "PHP",
value: "69.00"
};
var itemOptions = {
name: "Leather Belt",
code: "pm_belt",
description: "Medium-sv"
};
var itemAmountDetails = new ItemAmountDetails();
itemAmountDetails.shippingFee = itemAmountDetailsOptions.shippingFee;
itemAmountDetails.tax = itemAmountDetailsOptions.tax;
itemAmountDetails.subTotal = itemAmountDetailsOptions.subTotal;
itemAmountOptions.details = itemAmountDetails;
var itemAmount = new ItemAmount();
itemAmount.currency = itemAmountOptions.currency;
itemAmount.value = itemAmountOptions.value;
itemAmount.details = itemAmountOptions.details;
itemOptions.amount = itemAmount;
itemOptions.totalAmount = itemAmount;
/**
* Contruct item here
*/
var item = new Item();
item.name = itemOptions.name;
item.code = itemOptions.code;
item.description = itemOptions.description;
item.amount = itemOptions.amount;
item.totalAmount = itemOptions.totalAmount;
// Add all items here
var items = [];
items.push(item);
var checkout = new Checkout();
checkout.buyer = buyer;
checkout.totalAmount = itemOptions.totalAmount;
checkout.requestReferenceNumber = "c9dea858-5116-43e1-bbe0-e5b8bffe55c9";
checkout.items = items;
checkout.execute(function (error, response) {
console.info({error, response});
// if (error) {
// // handle error
// } else {
// // track response.checkoutId
// // redirect to response.redirectUrl
// }
});
// console.log({href: window.location.href});