A Python wrapper around the Revenue Monster API
Project description
This is an Python SDK that maps some of the RESTful methods of Open API that are documented at Revenue Monster Open API Documentation.
Getting Started
Installation
pip3 install rmsdk
Prerequisite
Before using the SDK, users must obtain credentials from merchant portal first. Click here for tutorial.
Supported APIs
Client Credentials (Authentication)
Merchant Related APIs
Store
User
Payment (Quickpay QR)
Payment (Transaction QR)
Loyalty
Voucher
Usage
This section explains the basic usage of the SDK. Detail usage for individual modules are prepared in the examples folder.
A dictionary that contains clientID, clientSecret, environment and privateKey (path to private key) is expected to passed in as argument. An object of the RMSDK class will be instantiated. All modules covered in this SDK will be available under the instantiated object.
For instance, to use the store module, simply,
response = client.module.methodName(*args)
Authentication
Authenticate SDK
from rmsdk import RMSDK client = RMSDK(configs={ "environment": "sandbox", # or production "clientID": "client-id", "clientSecret": "client-secret", "privateKey": "path-to-private-key" }) accessToken, refreshToken = client.accessToken, client.refreshToken
Generate Client Credentials
To get refresh token and access token(expired after 2 hours) with using provided clientID and clientSecret.
client = Auth({ "environment": "sandbox", # or production "clientID": "client-id", "clientSecret": "client-secret", "privateKey": "path-to-private-key" }) accessToken, refreshToken = client.clientCredentials()
Generate Refresh Token
To get new access token(expired after 2 hours) with using provided clientId and clientSecret (recommended to schedule to run this fucntion on every less than 2 hours) in order to avoid expired access token error.
accessToken, refreshToken = client.getRefreshToken(refreshToken)
Merchant
Get Merchant Profile
result = client.merchant.getMerchantProfile(accessToken)
Get Merchant Subscriptions
result = client.merchant.getMerchantSubcriptions(accessToken)
Store
Get Store List
result = client.store.getStores(accessToken)
Get Store By ID
result = client.store.getStoreByID(accessToken, storeID)
Create Store
result = client.store.createStore(accessToken, { "name": "Test store", "addressLine1": "Earth", "addressLine2": "Mars", "postCode": "10001", "city": "Petaling Jaya", "state": "Selangor", "country": "Malaysia", "countryCode": "60", "phoneNumber": "377334080" })
Update Store
result = client.store.updateStore(accessToken, storeID, { "name": "Test store", "addressLine1": "Earth", "addressLine2": "Mars", "postCode": "10001", "city": "Petaling Jaya", "state": "Selangor", "country": "Malaysia", "countryCode": "60", "phoneNumber": "377334080" })
Delete Store
result = client.store.deleteStore(accessToken, storeID)
User
Get User Profile
result = client.user.getUserProfile(accessToken)
Payment (Quickpay QR)
QuickPay
result = client.quickPay.quickPay(accessToken, { "authCode": "1234567890", "order": { "amount": 100, "currencyType":"MYR", "id":"1312331232", "title":"title", "detail":"desc", "additonalData":"API Test" }, "ipAddress": "8.8.8.8", "terminalId": "19382734937293999", "storeId": "6170506694335521334" })
Refund
result = client.quickPay.refund(accessToken, { "transactionId": "190109042809010428940037", "refund": { "type": "FULL", "currencyType": "MYR", "amount": 100, }, "reason": "test" })
Reverse
result = client.quickPay.reverse(accessToken, { "orderId": "111222333" })
Get All Transactions
result = client.quickPay.getAllTransactions(accessToken)
Get Transaction By ID
result = client.quickPay.getTransactionByID(accessToken, transactionID)
Get Transaction By Order ID
result = client.quickPay.getTransactionByOrder(accessToken, orderID)
Get Daily Settlement Report
result = client.quickPay.dailySettlementReport(accessToken, { "date": "2019-01-09", "method": "WECHATPAY", "region": "MALAYSIA", "sequence": 1 })
Payment (Transaction QR)
Create Transaction
result = client.transaction.createTransaction(accessToken, { "amount": 100, "currencyType": "MYR", "expiry": { "type": "PERMANENT" }, "isPreFillAmount": True, "method": ['WECHATPAY'], "order": { "details": "Test", "title": "Title" }, "redirectUrl": 'https://www.revenuemonster.com', "storeId": '1981039839353524638', "type": 'DYNAMIC', })
Get Transaction
result = client.transaction.getTransaction(accessToken)
Get Transaction By Code
result = client.transaction.getTransactionByCode(accessToken, qrCode)
Get List of Transactions By Code
result = client.transaction.getTransactionByCode(accessToken, qrCode)
Loyalty
Give Loyalty Point
result = client.loyalty.giveLoyaltyPoint(accessToken, { "point": 100, "type": "ID", "memberId": "7765269777796630408", "countryCode": "60", "phoneNumber": "172826990" })
Get Loyalty Member
result = client.loyalty.getLoyaltyMember(accessToken, memberID)
Get List of Loyalty Members
result = client.loyalty.getLoyaltyMembers(accessToken)
Get Point History
Get Loyalty point history of a member
result = client.loyalty.getLoyaltyMemberPointHistory(accessToken, memberID)
Voucher
Issue Voucher
result = client.voucher.issueVoucher(accessToken, batchKey)
Void Voucher
result = client.voucher.voidVoucher(accessToken, voucherCode)
Get Voucher By Code
result = client.voucher.getVoucherByCode(accessToken, voucherCode)
Get Voucher Batches
result = client.voucher.getVoucherBatches(accessToken)
Get Voucher Batches By Batch Key
result = client.voucher.getVoucherBatchByKey(accessToken, batchKey)
Detail examples can be found at examples.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.