80 lines
2.0 KiB
JavaScript
80 lines
2.0 KiB
JavaScript
const axios = require('axios')
|
|
const requestUrl = 'https://api.zarinpal.com/pg/v4/payment/request.json'
|
|
const verifyUrl = 'https://api.zarinpal.com/pg/v4/payment/verify.json'
|
|
const merchant_id = '37d54b62-faf7-40c9-b831-768abe5b48db'
|
|
// const merchant_id = 'c84c4594-a306-werd-asdd-d5d6eb042081'
|
|
// const callback_url = 'http://localhost:9964/payresult'
|
|
// const callback_url = 'https://app.bargrestaurant.com/payresult'
|
|
const callback_url = 'https://bargrestaurant.com/payresult'
|
|
|
|
|
|
module.exports = {
|
|
request: async (amount , description , user) => {
|
|
try {
|
|
const data = {
|
|
merchant_id,
|
|
callback_url,
|
|
amount,
|
|
description,
|
|
metadata : {mobile : user.mobile_number}
|
|
}
|
|
const request = await axios.post(requestUrl , data)
|
|
|
|
if (request?.data?.data?.code === 100){
|
|
return {
|
|
status : true,
|
|
response : request.data.data
|
|
}
|
|
}else {
|
|
return {
|
|
status : false,
|
|
response : request.data.errors
|
|
}
|
|
}
|
|
}catch (error){
|
|
return {
|
|
status : false,
|
|
response : error.message
|
|
}
|
|
}
|
|
},
|
|
verify : async (amount , transactionId) => {
|
|
try {
|
|
const data = {
|
|
merchant_id,
|
|
amount,
|
|
authority : transactionId
|
|
}
|
|
const request = await axios.post(verifyUrl , data)
|
|
|
|
console.log('request',request)
|
|
|
|
if (request?.data?.data?.code === 100){
|
|
return {
|
|
status : true,
|
|
code : 100,
|
|
response : request.data.data
|
|
}
|
|
}else if (request?.data?.data?.code === 101){
|
|
return {
|
|
status : true,
|
|
code : 101,
|
|
response : 'این پرداخت یک بار قبلا تایید شده است'
|
|
}
|
|
} else {
|
|
return {
|
|
status : false,
|
|
code : -1,
|
|
response : request.data.errors
|
|
}
|
|
}
|
|
}catch (error){
|
|
return {
|
|
status : false,
|
|
code : -1,
|
|
response : error.message
|
|
}
|
|
}
|
|
}
|
|
}
|