Skip to content

Instantly share code, notes, and snippets.

@mathifonseca
Last active July 2, 2019 18:35
Show Gist options
  • Save mathifonseca/f5774d7a07beab692b119deda993ccfd to your computer and use it in GitHub Desktop.
Save mathifonseca/f5774d7a07beab692b119deda993ccfd to your computer and use it in GitHub Desktop.
AlfredDemo

Pay with Cash / Credit Card

  • Shop API-KEY -> EDGDgFU21pZD6VBpJFMX635y5Gh8vyLYiNAmh2Y5qn7Be3wPp2dNFQ9R
  • Platform API-KEY -> ww7Tpkha3jxE6eJgmi74xG89zTWCSh2Pw7wVELC6t7wb6MXE8Bbsjkuj

STEP 1 - Create Purchase

POST /v2/alfred/purchase

{
  "amount": 10,
  "billingAddress": "string",
  "currency": "BDT",
  "customType": "string",
  "description": "string",
  "shippingAddress": "string",
  "shopConfigurationId": "AAEAAADt1_43vWGIS1iow1I1"
}

RESPONSE:

  • id

STEP 2 - Authenticate wallet

Auth as Platform POST /v2/alfred/platform/{platformId}/walletauthentication

Platform Id -> AAEAAABjvIbjm5q02jtViKul

{
  "externalReferenceId": "someuser123"
}

RESPONSE:

  • walletId
  • accessToken

STEP 3 - Create payment session

POST /v2/alfred/purchase/{purchaseId}/session

purchaseId -> AAEAAADt1_43rYRptnv83x9R

{
  "countryCode": "BD",
  "walletId": "AAEAAAMhEgNuYNRKX1d4T4mX"
}

RESPONSE:

  • paymentSessionId
  • paymentInstrumentId

STEP 4 - Confirm purchase

POST /v2/alfred/purchase/{purchaseId}:confirm

purchaseId -> AAEAAADt1_43rYRptnv83x9R

{
  "paymentSessionDetails": {
    "selectedPaymentMethod": "cash",
    "selectedPaymentInstrumentId": "AAEAAAQiQsrNy63ZthIylgCo"
  },
  "paymentSessionId": "AAEAAAkPksjmif0J6Jbv21z6",
  "walletId": "AAEAAAMhEgNuYNRKX1d4T4mX"
}

Top up

STEP 1 - Authenticate wallet

POST /v2/alfred/platform/{platformId}/walletauthentication

Platform Id -> AAEAAABjvIbjm5q02jtViKul

{
  "externalReferenceId": "someuser123"
}

RESPONSE:

  • walletId
  • accessToken

STEP 2 - Get Wallet

GET /v2/wallet/wallets/{walletId}

walletId -> AAEAAAMhEgNuYNRKX1d4T4mX

RESPONSE:

  • walletAccountId

STEP 3 - Create Payment Session

POST /v2/wallet/tx/payments/session

{
  "paymentType": "Funding",
  "walletAccountId": "AAEAAAPzPsdDtc5zLAbWU7vO"
}

RESPONSE:

  • paymentSessionId
  • paymentInstrumentId

STEP 4 - Create Payment

POST /v2/wallet/tx/payments

{
  "description": "string",
  "paymentAmount": 20,
  "paymentCurrency": "BDT",
  "paymentSessionDetailsJson": {
	"selectedPaymentMethod": "cash",
	"selectedPaymentInstrumentId": "AAEAAAQiQsrN1V38STZquT3K"
  },
  "paymentSessionId": "AAEAAAkPksjml5NRTwiaHdOV",
  "walletAccountId": "AAEAAAPzPsdDtc5zLAbWU7vO"
}

RESPONSE:

  • id

STEP 5 - Confirm Payment

POST /v2/wallet/tx/payments/{paymentId}:confirm

NOTE: After this step, the user has balance in his account. We can create a purchase to use that balance.

STEP 6 - Create a Purchase

POST /v2/alfred/purchase

{
  "amount": 10,
  "billingAddress": "string",
  "currency": "BDT",
  "customType": "string",
  "description": "string",
  "shippingAddress": "string",
  "shopConfigurationId": "AAEAAADt1_43vWGIS1iow1I1"
}

RESPONSE: data.id

STEP 7 - Create a Payment Session

POST /v2/alfred/purchase/{purchaseId}/session

purchaseId -> AAEAAADt1_43rYRptnv83x9R

{
  "countryCode": "BD",
  "walletId": "AAEAAAMhEgNuYNRKX1d4T4mX"
}

RESPONSE:

  • paymentSessionId
  • paymentInstrumentId

NOTE: The result shows that a part of the purchase can be payed in balance and the rest with another payment instrument.

STEP 8 - Confirm Purchase

POST /v2/alfred/purchase/{purchaseId}:confirm

purchaseId -> AAEAAADt1_43rYRptnv83x9R

{
  "paymentSessionDetails": {
    "selectedPaymentMethod": "cash",
    "selectedPaymentInstrumentId": "AAEAAAQiQsrNy63ZthIylgCo"
  },
  "paymentSessionId": "AAEAAAkPksjmif0J6Jbv21z6",
  "walletId": "AAEAAAMhEgNuYNRKX1d4T4mX"
}

NOTE: Check the user balance in the Admin UI.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment