npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

safecharge-psp

v1.5.1

Published

Safecharge Node JS Payment SDK

Downloads

15

Readme

SafeCharge-psp

Module for integration safeCharge as a payment service provider (PSP)

Constructor call

// create object and pass configuration detail
var SafeChargePayment = new SafeCharge({
    "merchantId": 'YOUR_MERCHANTID',
    "merchantSiteId": 'YOUR_MERCHANT_SITEID',
    "merchantSecretKey": 'YOUR_MERCHANT_SECRET_KEY',
    "merchantHostURL": 'ppp-test.safecharge.com'
});

config option arguments

Argument | Type | Default | Description
------------- | ------ | ---------- | ----------- merchantSiteId | String | Required |SafeCharge payment identifier MERCHANT_SITE_ID merchantId | String | Required | SafeCharge payment identifier MERCHANT_ID merchantSecretKey | String | Required | SafeCharge payment identifier SECRET_KEY merchantHostURL | String | Required | SafeCharge payment base url eg (ppp-test.safecharge.com)

Exposed medthods defination

Payments

dynamic3d: dynamic 3D

options arguments

Argument | Type | Default | Description ------------- | ------ | ---------- | ----------- clientUniqueId | String | Required | Client Unique Id for request identification sessionToken | String | Required | Session Token recievied by safecharge transaction | Object | Required | Payment detail amount | String | Required | Amount which you want to process currency | String | Required | Currency in which you are sending amount reference | String | Required | About payment detail deviceDetails | Object | Required | Object with information about the client initiating the payment. Only the ip field is required. deviceType | String | Required |Client Device Type deviceName | String | Required | Client device Name deviceOS | String | Required | Client user agent browser | String | Required | browser of client ipAddress | String | Required | IP address of client cardData | Object | Required | Object with information about Card holder. CVV | String | string | Required | CVV of Card ccTempToken | String | Required | ccTempToken generated by payment handler userPaymentOption | Object | Required | Object with information about Card holder. userPaymentOptionId | String | Required | UserPaymentOptionId is given by safecharge CVV | String | Required | Card CVV number billingAddress | Object | Required | Object with information about the client initiating the payment. firstName | String | Required | First name of card owner lastName | String | Required | Last name of card owner email | String | Required | Email address of card owner country | String | Required | ISO country code of Card owner's Billing Address notificationUrl | String | Required | URL where you get response of dynamic response detail

For payment with CCTEMPTOKEN then you will add cardData () object if UPO then userPaymentOptionId object

The async method returns a response object.

Example

var response ={ paRequest: 'eJxVUuakrtBXWzVsM5L7085vzVBpr0+t2o98Pm/xHHrZ',
acsUrl: 'https://pit.3dsecure.net/VbVTestSuiteService/pit1/acsService/',
threeDFlow: '1',
orderId: '224036843',
transactionStatus: 'APPROVED',
gwErrorCode: 0,
gwExtendedErrorCode: 0,
userPaymentOptionId: '',
externalTransactionId: '',
transactionId: '101509990458',
authCode: '',
merchantDetails: { customField1: '1', customField2: '2', customField3: '3' },
sessionToken: 'a5935660-df8c-48ce-b119-e861ec5cf990',
clientUniqueId: '100000000007',
internalRequestId: 40810103,
status: 'SUCCESS',
errCode: 0,
reason: '',
merchantId: '7583429810138495724',
merchantSiteId: '140263',
version: '1.0',
clientRequestId: '2017112034020202' };

Read dynamic 3D Response

Read dynamic3D response and get paRequest post the Pares to acsUrl with additional param of term URL

Post data to acsUrl with PaReq and TermUrl value for bank page

If there is no acsUrl in response thats mean card is not 3D secure enrolled and you need to make Payment3D request without it

payment3D: Payment 3D

options arguments

Argument | Type | Default | Description ------------- | ------ | ---------- | ----------- clientUniqueId | String | Required | client Unique Id Received by dynamic3D Response clientRequestId | String | Required | clientRequestId Received by dynamic3D Response sessionToken | String | Required | Session Token recievied by safecharge transaction | Object | Required | payment detail orderId | String | Required | order ID Received by dynamic3D Response transactionType | String | Required | it will be Auth or Sale paResponse | String | Required | it received on URL by ACSURL form submition response amount | String | Required | Amount which you want to process currency | String | Required | currency in which you are sending amount reference | String | Required | About payment detail deviceDetails | Object | Required | Object with information about the client initiating the payment. Only the ip field is required. deviceType | String | Required |Client Device Type deviceName | String | Required | Client device Name deviceOS | String | Required | Client user agent browser | String | Required | browser of client ipAddress | String | Required | IP address of client cardData | Object | Required | Object with information about Card holder. cardHolderName | String | Required | Card holder name of Card CVV | String | string | Required | CVV of Card ccTempToken | String | Required | ccTempToken generated by payment handler userPaymentOption | Object | Required | Object with information about Card holder. userPaymentOptionId | String | Required | UserPaymentOptionId is given by safecharge CVV | String | Required | Card CVV number billingAddress | Object | Required | Object with information about the client initiating the payment. firstName | String | Required | First name of card owner lastName | String | Required | Last name of card owner email | String | Required | Email address of card owner country | String | Required | ISO country code of Card owner's Billing Address notificationUrl | String | Required | URL where you get response of dynamic response detail

For payment with CCTEMPTOKEN then you will add cardData () object if UPO then userPaymentOptionId object

The async method returns a response object.

Response Example

var response= { eci: '5',
orderId: '224036843',
transactionStatus: 'APPROVED',
gwErrorCode: 0,
gwExtendedErrorCode: 0,
userPaymentOptionId: '',
externalTransactionId: '',
transactionId: '101509990493',
authCode: '111800',
merchantDetails: { customField1: '1', customField2: '2', customField3: '3' },
sessionToken: 'a5935660-df8c-48ce-b119-e861ec5cf990',
clientUniqueId: '100000000006',
internalRequestId: 40811553,
status: 'SUCCESS',
errCode: 0,
reason: '',
merchantId: '7583429810138495724',
merchantSiteId: '140263',
version: '1.0',
clientRequestId: '2017112034020202' };

refundTransaction: Refund Transaction

options arguments

Argument | Type | Default | Description ------------- | ------ | ---------- | --------------------------------------------------------- clientUniqueId | String | Required | client Unique Id Received by payment3D Response clientRequestId | String | Required | client Request Id Received by payment3D Response transaction | Object | Required | transaction detail relatedTransactionId | String | Required | related Transaction Id by payment3D Response authCode | String | Required | authCode provided by payment3D Response amount | String | Required | Amount which you want to process currency | String | Required | currency in which you are sending amount comment | String | Required | detail about refund notificationUrl | String | Required | URL where you get response of refund detail

The async method returns a response object.

Response Example

var response ={ transactionId: '101509994389',
externalTransactionId: '',
gwErrorCode: 0,
gwExtendedErrorCode: 0,
transactionStatus: 'APPROVED',
authCode: '111812',
clientUniqueId: '100000000006',
internalRequestId: 40968073,
status: 'SUCCESS',
errCode: 0,
reason: '',
merchantId: '7583429810138495724',
merchantSiteId: '140263',
version: '1.0',
clientRequestId: '2017112034020202' };

voidTransaction: Void Transaction

options arguments

Argument | Type | Default | Description ------------- | ------ | ---------- | --------------------------------------------- internalPaymentId | String | Required | Internal Payment ID in merchant System externalId | String | Required | External ID of SafeCharge System authCode | String | Required | AuthCode for that particular transaction amount | Integer | Required | Subunit of amount which you want to process currency | String | Required | Currency in which you are sending amount

The async method returns a response object.

Response Example

var response ={
"merchantId": 8263015379487437770,
"merchantSiteId": "39",
"internalRequestId": 45,
"clientRequestId": "100",
"transactionId": "8498764859",
"externalTransactionId": "",
"status": "SUCCESS",
"transactionStatus": "APPROVED",
"authCode": "8378749",
"errCode": "0",
"errReason": "",
"paymentMethodErrorCode": "0",
"paymentMethodErrorReason": "",
"gwErrorCode": "0",
"gwErrorReason": "",
"gwExtendedErrorCode": "0",
"version": "1"
};

createUser: Create User

options arguments

Argument | Type | Default | Description ------------- | ------ | ---------- | ------------------------------------------------- clientRequestId | String | Required | client Request for requestion identification userDetail | Object | Required | Transaction detail userTokenId | String | Required | ID of the user in the merchant’s system. firstName | String | Required | The first name of the user being registered. lastName | String | Required | The last name of the user being registered. address | String | Required | The street address of the user being registered. state | String | Required | The two-letter ISO state code of the user being registered. city | String | Required | The city of the user being registered. zip | String | Required | The zip code of the user being registered. countryCode | Required | Required | The two-letter ISO country code of the user being registered. locale | String | Required | The user’s locale and default language, for example en_UK. email | String | Required | The email address of the user being registered.

The async method returns a response object.

Response Example

var response ={
"merchantId": "8263015379487437770",
"merchantSiteId": "39",
"internalRequestId": "45",
"clientRequestId": "100",
"status": "SUCCESS",
"errCode": "0",
"reason": "",
"version": "1",
"userId": "259"
};

updateUser: Update User

options arguments

Argument | Type | Default | Description ------------- | ------ | ---------- | ---------------------------------------------------- clientRequestId | String | Required | ID of the API request in the merchant system userDetail | Object | Required | Transaction detail userTokenId | String | Required | ID of the user in the merchant’s system firstName | String | Required | The first name of the user being registered lastName | String | Required | The last name of the user being registered address | String | Required | The street address of the user being registered state | String | Required | The two-letter ISO state code of the user being registered city | String | Required | The city of the user being registered zip | String | Required | The zip code of the user being registered countryCode | String | Required | The two-letter ISO country code of the user being registered locale | String | Required | The user’s locale and default language, for example en_UK email | String | Required | The email address of the user being registered.

The async method returns a response object.

Response Example

var response ={
"merchantId": "8263015379487437770",
"merchantSiteId": "39",
"internalRequestId": "47",
"clientRequestId": "101",
"status": "SUCCESS",
"errCode": "0",
"reason": "",
"version": "1",
"userId": "259"
};

getUserDetails: get User Details

options arguments

Argument | Type | Default | Description ------------- | ------ | ---------- | ----------------------------------------------------- clientRequestId | String | Required | ID of the API request in the merchant system userDetail | Object | Required | Transaction detail userTokenId | String | Required | ID of the user in the merchant’s system.

The async method returns a response object.

Response Example

var response ={
"merchantId": "8263015379487437770",
"merchantSiteId": "39",
"internalRequestId": "47",
"clientRequestId": "101",
"status": "SUCCESS",
"errCode": "0",
"reason": "",
"version": "1",
"userId": "259"
};

addUPOCreditCardByTempToken: add UPO CreditCard By TempToken

options arguments

Argument | Type | Default | Description ------------- | ------ | ---------- | ----------------------------------------------------- clientRequestId | String | Required | ID of the API request in the merchant system userTokenId | String | Required | ID of the user in the merchant’s system. sessionToken | String | Required | Session identifier returned by the getSessionToken. ccTempToken | String | Required | A hashed value of the credit card number.

The async method returns a response object.

Response Example

var response ={
"SessionToken":"9610a8f6-44cf-4c4f-976a-005da69a2a3b",
"merchantId": "8263015379487437770",
"merchantSiteId": "39",
"internalRequestId": "69",
"useTokenId":"",
"clientRequestId": "110",
"userPaymentOptionId": "741",
"status": " SUCCESS ",
"errCode": "0",
"reason": "",
"version": "1"
};

editUPOCC: edit UPO CC

options arguments

Argument | Type | Default | Description ------------- | ------ | ---------- | ----------------------------------------------------- clientRequestId | String | Required | ID of the API request in the merchant system userTokenId | String | Required | ID of the user in the merchant’s system. userPaymentOptionId | String | Required | userPaymentOptionId by merchant system. ccExpMonth | String | Required | Expiry Month of credit card. ccExpYear | String | Required | Expiry Year of credit card. ccNameOnCard | String | Required | Name of credit card holder.

The async method returns a response object.

Response Example

var response ={
"merchantId": "8263015379487437770",
"merchantSiteId": "39",
"internalRequestId": "62",
"clientRequestId": "4556",
"status": "SUCCESS",
"errCode": "0",
"reason":"",
"version": "1"
};

deleteUPO: delete UPO

options arguments

Argument | Type | Default | Description ------------- | ------ | ---------- | ----------------------------------------------------- clientRequestId | String | Required | ID of the API request in the merchant system userTokenId | String | Required | ID of the user in the merchant’s system. userPaymentOptionId | String | Required | userPaymentOptionId by merchant system.

The async method returns a response object.

Response Example

var response ={
"merchantId": "8263015379487437770",
"merchantSiteId": "39",
"internalRequestId": "60",
"clientRequestId": "108",
"status": "SUCCESS",
"errCode": "0",
"reason" : "",
"version": "1"
};

getUserUPOs: getUser UPOs

options arguments

Argument | Type | Default | Description ------------- | ------ | ---------- | ----------------------------------------------------- clientRequestId | String | Required | ID of the API request in the merchant system userTokenId | String | Required | ID of the user in the merchant’s system.

The async method returns a response object.

Response Example

var response ={
"merchantId": "8263015379487437770",
"merchantSiteId": "39",
"internalRequestId": "58",
"clientRequestId": "107",
"status":"SUCCESS",
"errCode": "0",
"reason" : "",
"version": "1",
"paymentMethods": [ {
"userPaymentOptionId": "741",
"paymentMethodName":"cc_card",
"upoName":"Credit Card",
"upoRegistrationDate":"",
"upoStatus": "enabled",
"expiryDate": "",
"billingAddress":{
"firstName": "some first name",
"lastName": "some last name",
"phone": "972502457558",
"address": "some street",
"zip": "",
"city": "some city",
"countryCode": "GB",
"state": "",
"email": "[email protected]",
"county":""
},
"upoData": {
"cardType": "",
"ccCardNumber": "4****1111",
"ccCardNumberHash":"68bfb396f35af3876fc509665b3dc23a0930aab1",
"ccExpMonth": "12",
"ccExpYear": "24",
"ccNameOnCard": "John Smith",
"ccToken" :"",
"brand": "visa",
"uniqueCC": "aL+zlvNa84dvxQlmWz3COgkwqrE=",
"bin": "411111",
"last4Digits": ""
}
},
{
"userPaymentOptionId": "742",
"paymentMethodName":"apmgw_expresscheckout",
"upoName": "Paypal",
"upoRegistrationDate":"",
"upoStatus ": "suspended",
"expiryDate": "",
"billingAddress":{
"firstName": "some first name",
"lastName": "some last name",
"address": "some street",
"phone": "972502457558",
"zip": "",
"city": "some city",
"country": "GB",
"state": "",
"email": "[email protected]",
"county":""
},
"upoData": {
"account_id": "[email protected]"
}
}]
};

suspendUPO: suspend UPO

options arguments

Argument | Type | Default | Description ------------- | ------ | ---------- | ----------------------------------------------------- clientRequestId | String | Required | ID of the API request in the merchant system userTokenId | String | Required | ID of the user in the merchant’s system. userPaymentOptionId | String | Required | userPaymentOptionId by merchant system.

The async method returns a response object.

Response Example

var response ={
"merchantId": "8263015379487437770",
"merchantSiteId": "39",
"internalRequestId": "67",
"clientRequestId": "109",
"status": "SUCCESS",
"errCode": "0",
"reason": "",
"version": "1"
};

enableUPO: enable UPO

options arguments

Argument | Type | Default | Description ------------- | ------ | ---------- | ----------------------------------------------------- clientRequestId | String | Required | ID of the API request in the merchant system userTokenId | String | Required | ID of the user in the merchant’s system. userPaymentOptionId | String | Required | userPaymentOptionId by merchant system.

The async method returns a response object.

Response Example

var response ={
"merchantId": "8263015379487437770",
"merchantSiteId": "39",
"internalRequestId": "67",
"clientRequestId": "109",
"status": "SUCCESS",
"errCode": "0",
"reason": "",
"version": "1"
};

cardTokenization: card Tokenization

options arguments

Argument | Type | Default | Description ------------- | ------ | ---------- | ----------------------------------------------------- clientRequestId | String | Required | ID of the API request in the merchant system userTokenId | String | Required | ID of the user in the merchant’s system. cardData | Object | Required | Object with information about Card holder. cardNumber | String | Required | Card number of Card cardHolderName | String | Required | Card holder name of Card expirationMonth | String | Required | ExpirationMonth of Card expirationYear | String | Required | ExpirationYear of Card CVV | String | string | CVV of Card | CVV of Card

The async method returns a response object.

Response Example

var response ={
"sessionToken": "9610a8f6-44cf-4c4f-976a-005da69a2a3b",
"internalRequestId": "866",
"status": "SUCCESS",
"errCode": "0",
"reason": "",
"version": "1.0",
"ccTempToken": "65432",
"isVerified":"TRUE"
};

getSessionToken: get Session Token

Response Example

var response ={
"sessionToken": "9610a8f6-44cf-4c4f-976a-005da69a2a3b",
"merchantId": "427583496191624621",
"merchantSiteId": "142033",
"clientRequestId": "1484759782197",
"internalRequestId": "866",
"status": "SUCCESS",
"errCode": "0",
"reason": "",
"version": "1.0"
};

getAPMs: get Alternate Payment Methods

The async method returns a response object.

Response Example

{
"sessionToken": "",
"merchantId": "",
"merchantSiteId": "",
"clientRequestId": "",
"internalRequestId": "",
"paymentMethods": [{
"paymentMethod": "cc_card",
"paymentMethodDisplayName": [{
"language": "en",
"message": "Credit Card"
}],
"isDirect": "true",
"countries": ["US", "DE"],
"currencies": ["USD"],
"logoURL": "",
"fields": [{
"name": "ccCardNumber",
"regex": "",
"type": "text",
"validationmessage": [{
"language": "en",
"message": "Invalid Card Number"
}],
"caption": [{
"language": "en",
"message": "Card Number"
},
{
"name": "ccExpMonth",
"regex": "",
"type": "text",
"validationmessage": [{
"language": "en",
"message": "Invalid Expiration Month"
}],
"caption": [{
"language": "en",
"message": "Card Expiration Month"
},
{
"name": "ccExpYear",
"regex": "",
"type": "text",
"validationmessage": [{
"language": "en",
"message": "Invalid Expiration Year"
}],
"caption": [{
"language": "en",
"message": "Card Expiration Year"
},
{
"name": "ccNameOnCard",
"regex": "",
"type": "text",
"validationmessage": [{
"language": "en",
"message": "Invalid Name on Card"
}],
"caption": [{
"language": "en",
"message": "Cardholder name as it appears on your credit card"
}]
}
]
}
],
"status": "",
"errCode": "",
"reason": "",
"version": ""
}

payout: Payout to deposited & non-deposited cards

options arguments

Argument | Type | Default | Description ------------- | ------ | ---------- | ----------------------------------------------------- userTokenID | String | Required | UserTokenID of user from UPO amount | String | Required | Amount that you want to payout currency | String | Required | The two-letter ISO language code of the user being registered.

The async method returns a response object.

Response Example

{
"merchantId": "8263015379487437770",
"merchantSiteId": "39",
"userTokenId": "487106",
"clientUniqueId": "12345",
"clientRequestId": "1484759782197",
"internalRequestId": "866",
"transactionId": "8498764859",
"externalTransactionId": "",
"status": "SUCCESS",
"transactionStatus": "APPROVED",
"userPaymentOptionId": "12442",
"errCode": "0",
"reason": "",
"paymentMethodErrorCode": "0",
"paymentMethodErrorReason": "",
"gwErrorCode": "0",
"gwErrorReason": "",
"gwExtendedErrorCode": "0",
"version": "1"
}

getPaymentUrl: Get hosted page payment URL

options arguments

Argument | Type | Default | Description ------------- | ------ | ---------- | ----------------------------------------------------- internalPaymentId | String | Required | Internal payment ID in merchant System userId | String | Required | ID of the user in the merchant’s system amount | integer | Required | Subunit of amount that user will pay currency | String | Required | The two-letter ISO language code of the user being registered. reference | String | Required | About payment detail billingAddress | Object | Required | Object with information about the client initiating the payment. →firstName | String | Optional | First name of card owner →lastName | String | Optional | Last name of card owner →email | String | Optional | Email address of card owner →country | String | Required | ISO country code of Card owner's Billing Address urlDetails | Object | Optional | Object with information of URLs →successUrl | String | Optional | Redirect URL in success scenario →failureUrl | String | Optional | Redirect URL in failure scenario →pendingUrl | String | Optional | Redirect URL in pending scenario →notificationUrl | String | Optional | DM Notifications call back URL →backUrl | String | Optional | Redirect URL in back scenario

The async method returns a response object.

Response Example

{
"redirectUrl": "https://ppp-test.safecharge.com/ppp/purchase.do?numberofitems=1&country=US&merchantLocale=en_US&city=&theme_id=New+Template+2018-01-10+10%3A01%3A46&county=&discount=0&item_name_1=CY213&customData=&merchant_id=7583&userid=101&isNative=1&phone1=&error_url=https%3A%2F%2Fwww.safecharge.com&shipping=0&payment_method_mode=&checksum=2e362c35015f02748c38a8568f5b58cec218bdd4d152f518ecy=USD&promoCode=&user_token=auto&state=&first_name=Arslan&email=arslan.bn1%40gmail.com&payment_method=&success_url=https%3A%2F%2Fwww.safecharge.com&zip=&productId=&customSiteName=&merchant_site_id=140263&address1=&item_shipping_1=&pending_url=https%3A%2F%2Fwww.safecharge.com&back_url=https%3A%2F%2Fwww.safecharge.com&skip_billing_tab=&last_name=Pervaiz&encoding=UTF-8&total_tax=0.0&notify_url=https%3A%2F%2Foawebdev.demovopium.com%2Fmobapp_co%2Fsms%2Fnotifyterm%2F&version=4.0.0&user_token_id=101&item_discount_1=&total_amount=100.0&skip_review_tab=&handling=0&item_quantity_1=1&item_amount_1=100&",
"raw": '{}'
}

validateDMNCallback: Validate Direct Merchant Notifications Callbacks(DMN)

options arguments

Argument | Type | Default | Description ------------- | ------ | ---------- | ----------------------------------------------------- body | object | Required | Callback request body

This method returns a validation result.

parsePayment: Parse the DMN Callback response

options arguments

Argument | Type | Default | Description ------------- | ------ | ---------- | ----------------------------------------------------- body | object | Required | Callback request body

This method returns a parse payment object

{
  "internalPaymentId": '12344',
  "externalId": '1512574818',
  "amount": 15408,
  "currency": 'USD',
  "state": 'completed',
  "eci": '5',
  "authCode": '111519',
  "card": {
     "token": 'UQA1AGQANQAwAGwAdQBmAEoATAAxACMAawBiAFsATgBfAEEAdABxAFoAPQBcAHgAKgBPAFAASABZAFcAVwAtAEMARwBnAHoATABdADIALgBDAFMAMwA=',
     "bin": '401200',
     "lastFour": '0014',
     "cardBrand": 'VISA',
     "expiryDate": '1128'
  },
  "raw: {}"
}