UNPKG

react-native-gkashpayment

Version:

gkash payment react native

122 lines (97 loc) 3.92 kB
<!-- # license: Copyright © 2011-2016 Gkash Sdn Bhd. All Rights Reserved. --> # react-native Gkash payment SDK This is the beta but functional Gkash Payment React Native payment module that is ready to be implemented into any React Native (Expo or React-Native-CLI) project npm install module. An example application project (GkashPaymentReactExampleProject) is provided for Gkash Payment framework integration reference. ## Recommended configurations - Node.js Version: 5.3.0 ++ - Minimum Android API level: 19 ++ - Minimum React Native version : 0.47.1 ++ - Xcode version: 9 ++ - Minimum target version: iOS 8 ## Installation ``` npm install react-native-gkashpayment ``` ## ExpoKit ## React Native CLI ## Sample Result ``` ========================================= Sample transaction result in query string: ========================================= Example of return page included query string: https://api-staging.pay.asia/api/return.aspx?CID=M161-U-33&POID=M147-PO-65576&cartid=20201116110946&status=88+-+Transferred&description=&currency=MYR&amount=1.00&returnurl=https%3A%2F%2Fpaymentdemo.gkash.my%2Freturn-staging.php&signature=7a72c8774e43270c5af362330d9843dfccbd0669da857284e4c2a29069b6444994e2d5cbd5ec9ead301b8701e462e3474d5ea963c09470123518a4805b3baa61&PaymentType=TnG+ECOMM&email=&companyName=Newland Parameter and meaning: "CID" - Merchant ID. "POID" - Gkash's Unique Referece No. (Issue by GKash) . "cartid" - Merchant's Unique Referece ID. (Order ID from Merchant) "status" - Payment status , "88 - Transferred" for Success , "66 - Failed" for Failed "description" - Payment description "currency" - Currency notation (currently only support MYR) "amount" - Payment amount "returnurl" - Handle response page (navigation page) "signature" - Response Signing "PaymentType" - Payment method "email" - Payer email "companyName" - Merchant's company name * Notes: You may ignore other parameters and values not stated above ``` ## Prepare Navigation component ``` import {createStackNavigator} from 'react-navigation-stack'; import {createAppContainer} from 'react-navigation'; import SubmitForm from './SubmitForm'; import ResponsePage from './ResponsePage'; import PaymentPage from 'react-native-gkashpayment'; const screens ={ SubmitForm:{ screen:SubmitForm, navigationOptions:{ title:'Submit Payment' } }, PaymentPage:{ screen:PaymentPage, navigationOptions:{ title:'Payment Page' } }, ResponsePage:{ screen:ResponsePage, navigationOptions:{ title:'Payment Response' } } } ``` ## Prepare the Payment detail object and start the payment module ``` submitHandler = () =>{ if(isNaN(parseFloat(this.state.v_amount))){ return Alert.alert("Warning!","Amount is required!"); } Keyboard.dismiss(); const date = new Date().getDate(); //Current Date const month = new Date().getMonth() + 1; //Current Month const year = new Date().getFullYear(); //Current Year const hours = new Date().getHours(); //Current Hours const min = new Date().getMinutes(); //Current Minutes const sec = new Date().getSeconds(); //Current Seconds const currentDate = (year +""+ month +""+ date +""+ hours +""+ min +""+ sec); this.setState({ version:"refer to api docs", CID:"integration credential MerchantID", signature:"integration credential Signature Key", v_currency:"MYR", v_cartid:currentDate, callbackurl:"your callback url", v_billemail:"gkashdemo@gkash.com", productionEnvironment:false, //integate environment returnurl:"ResponsePage" //payment response page navigator destination name },() =>this.props.navigation.navigate("PaymentPage",this.state)) } ``` ## Support Submit issue to this repository or email to our merchantsupport@gkash.my