0.0.22 • Published 3 years ago

react-native-paymob-accept v0.0.22

Weekly downloads
10
License
MIT
Repository
github
Last release
3 years ago

react-native-paymob-accept

Getting started

$ npm install react-native-paymob-accept --save

Mostly automatic installation

$ react-native link react-native-paymob-accept

$ cd ios && pod install

for older versions

Add the below line at the top of your PodFile, if using Pod

use_modular_headers!

Update your PodFile React dependency to look like this

pod 'React', :path => '../node_modules/react-native', :modular_headers => true

pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec', :modular_headers => false

pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec', :modular_headers => false

Manual installation

iOS

  1. In XCode, in the project navigator, right click LibrariesAdd Files to [your project's name]
  2. Go to node_modulesreact-native-paymob-accept and add RNPaymobAccept.xcodeproj
  3. In XCode, in the project navigator, select your project. Add libRNPaymobAccept.a to your project's Build PhasesLink Binary With Libraries
  4. Run your project (Cmd+R)<

Android

  1. Open up android/app/src/main/java/[...]/MainActivity.java
  • Add import com.breadfast.reactnative.RNPaymobAcceptPackage; to the imports at the top of the file
  • Add new RNPaymobAcceptPackage() to the list returned by the getPackages() method
  1. Append the following lines to android/settings.gradle:
    include ':react-native-paymob-accept'
    project(':react-native-paymob-accept').projectDir = new File(rootProject.projectDir, 	'../node_modules/react-native-paymob-accept/android')
  2. Insert the following lines inside the dependencies block in android/app/build.gradle:
      compile project(':react-native-paymob-accept')
  3. add repository as below
    allprojects {
    	repositories {
    		google()
    		...
    		maven { url "https://dl.bintray.com/paymobsolutions/paymob_accept_sdk" }
    	}
    }
  4. Add to your AndroidManifest.xml
xmlns:tools="http://schemas.android.com/tools"

and

android:allowBackup="false"
android:supportsRtl="true"
tools:replace="android:supportsRtl, android:allowBackup"

to look like this

<manifest
...
xmlns:tools="http://schemas.android.com/tools">

<application
    ...
    android:allowBackup="false"
    android:supportsRtl="true"
    tools:replace="android:supportsRtl, android:allowBackup">

  <activity android:name="com.paymob.acceptsdk.ThreeDSecureWebViewActivty"
          android:theme="@style/PaymobAcceptTheme"/>
  1. add action bar styles to styles.xml
<style name="PaymobAcceptTheme" parent="Theme.AppCompat.Light.DarkActionBar">
            <!-- Customize your theme here. -->
            <!-- <item name="android:windowNoTitle">true</item> -->
            <item name="android:editTextBackground">@android:color/transparent</item>
            <item name="colorPrimary">#030</item>
            <item name="colorPrimaryDark">#543</item>
            <item name="colorAccent">#909</item>
        </style>
  1. (OPTIONAL) You can control the wording anf styles by adding the below resources to your styles.xml or values.xml resources
        <!-- Paymob SDK params-->
        <color name="colorAccent">#CC0bd796</color>
        <color name="colorDefaultButton">#CC0bd796</color>
        <color name="colorHint">#96b1bc</color>
        <color name="colorPrimary">@color/colorPrimaryDark</color>
        <color name="colorPrimaryDark" ns1:ignore="ResourceCycle">@color/colorPrimaryDark</color>
        <color name="colorText">#4F7283</color>
        <dimen name="large_padding_value">20dp</dimen>
        <dimen name="large_text_size">15sp</dimen>
        <dimen name="normal_padding_value">15dp</dimen>
        <dimen name="normal_text_size">14sp</dimen>
        <dimen name="small_padding_value">10dp</dimen>
        <dimen name="tiny_padding_value">5dp</dimen>
        <string name="Card_Number_check"> Card Number must be 16 digits! </string>
        <string name="Cvv_check">CVV must be 3 digits! </string>
        <string name="Date_check">Invalid Date!</string>
        <string name="Empty_name_check">Name can not be empty</string>
        <string name="Expiration"> Expiry Date</string>
        <string name="PoweredBy">Powered by </string>
        <string name="app_id">app_id</string>
        <string name="app_name">AcceptSDK</string>
        <string name="card_holder_name"> Card Holder Name </string>
        <string name="card_info">Card Information</string>
        <string name="card_number"> Card Number</string>
        <string name="cvv"> CVV </string> -->
        <string name="pay_button"> TEST </string>
        <!-- <string name="pref_file_name">shared_pref</string>
        <string name="processing">Processing payment...</string>
        <string name="save_card"> This Card will be saved for future use </string>
        <string name="wait">Please wait...</string> 

Usage

Payment with Token

import RNPaymobAccept from "react-native-paymob-accept";

RNPaymobAccept.payWithToken({
  token: "12345",
  maskedPanNumber: "XXXXXXXXXXXXXX1234",
  firstName: "first_name",
  lastName: "last_name",
  building: "building",
  floor: "floor",
  apartment: "apartment",
  city: "city",
  state: "state",
  country: "country",
  email: "email",
  phoneNumber: "phoneNumber",
  postalCode: "postalCode",
});
PropDescriptionTypeDefault
paymentKeyGenerated one-time payment keyStringRequired
tokenuser tokenStringRequired
maskedPanNumberlast four digitsStringRequired
activityTitletitle for the 3d secure ScreenStringOptional
firstNameTODOStringOptional
lastNameTODOStringOptional
buildingTODOStringOptional
floorTODOStringOptional
apartmentTODOStringOptional
cityTODOStringOptional
stateTODOStringOptional
countryTODOStringOptional
emailTODOStringOptional
phoneNumberTODOStringOptional
postalCodeTODOStringOptional

Payment with No Token

import RNPaymobAccept from "react-native-paymob-accept";

RNPaymobAccept.payWithNoToken({
  showSaveCard: false,
  firstName: "first_name",
  lastName: "last_name",
  building: "building",
  floor: "floor",
  apartment: "apartment",
  city: "city",
  state: "state",
  country: "country",
  email: "email",
  phoneNumber: "phoneNumber",
  postalCode: "postalCode",
});
PropDescriptionTypeDefault
paymentKeyGenerated one-time payment keyStringRequired
showSaveCardshow save card checkboxBooleanRequired
saveCardDefaultdefault boolean for saving cardBooleanRequired
showAlertsshow popup alertsBooleanRequired
isEnglishLanguage English or ArabicBoolean
Required
hideActionBarhide action bar (Android Only)BooleanOptional
isEnglishLanguage English or ArabicBooleanOptional
activityTitletitle for the 3d secure Screen (Android Only)StringOptional
firstNameTODOStringOptional
lastNameTODOStringOptional
buildingTODOStringOptional
floorTODOStringOptional
apartmentTODOStringOptional
cityTODOStringOptional
stateTODOStringOptional
countryTODOStringOptional
emailTODOStringOptional
phoneNumberTODOStringOptional
postalCodeTODOStringOptional

Callbacks functions

onSuccess function

PropDescriptionTypeDefault
statusboolean to determine whether transaction was done successfully or notBooleanOptional
coderesult code generated by SDKStringOptional
messageerror message mapped from result codeStringOptional
(status: boolean, code: number, message)=>{
  ... add your success code block here
}
0.0.21

3 years ago

0.0.22

3 years ago

0.0.20

4 years ago

0.0.19

4 years ago

0.0.18

4 years ago

0.0.15

4 years ago

0.0.16

4 years ago

0.0.13

4 years ago

0.0.14

4 years ago

0.0.12

4 years ago

0.0.10

4 years ago

0.0.11

4 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.3

4 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.2

4 years ago