Extension Overview:
The "PayPal Extension By @Black_Knight " is your entry point for incorporating PayPal’s strength into your Kodular applications. With the help of this dynamic plugin, the PayPal API may be easily accessed by your apps. Its clever construction makes it simple to retrieve access tokens using client credentials, bringing up a plethora of options for creating payment features.
Blocks
Extension Overview:
This extension allows you to integrate PayPal payments into your App Inventor apps. It provides functions to:
-
Get an access token for interacting with PayPal APIs.
-
Make PayPal payments using various methods (credit card, PayPal account, etc.).
-
Refund payments.
-
Create basic invoices.
-
Check the status of payments.
-
Extract information from payment responses (e.g., payment ID, sale ID, currency code, price).
Functions and Events:
1. GetAccessToken:
-
Function: GetAccessToken(boolean isLive)
-
Retrieves an access token from PayPal using your client credentials.
-
Parameters:
- isLive: true for live environment, false for sandbox.
-
-
Event:
AccessTokenObtained(String accessToken, String appId, int expiresIn, String respondCode)
-
Triggered when the access token is successfully retrieved.
-
Parameters:
-
accessToken: The retrieved access token.
-
appId: The PayPal app ID.
-
expiresIn: The expiration time of the access token in seconds.
-
respondCode: The response code from PayPal.
-
2. MakePayPalPayment:
-
Function: MakePayPalPayment(String accessToken, double amount, String currency, String productName, String productDescription, String returnUrl, String cancelUrl, boolean isLive)
-
Creates a PayPal payment request and handles the response.
-
Parameters:
-
accessToken: The access token.
-
amount: The payment amount.
-
currency: The currency code.
-
productName: The name of the product or service.
-
productDescription: A description of the product or service.
-
returnUrl: The URL where the user is redirected after successful payment.
-
cancelUrl: The URL where the user is redirected if they cancel the payment.
-
isLive: true for live environment, false for sandbox.
-
-
-
Event:
PaymentInfoObtained(String jsonResponse)
-
Triggered with the complete JSON response from PayPal.
-
Parameters:
- jsonResponse: The JSON response containing payment information.
3. MakePaymentToEmail:
-
Function: This function allows you to send a simple payment to another PayPal account using the recipient’s email address. It handles the payment request and provides the response, including a redirect URL if necessary for the user to approve the payment.
-
Makes a PayPal payment to another account using the recipient’s email address.
-
Parameters:
-
accessToken: The access token.
-
recipientEmail: The recipient’s email address.
-
amount: The payment amount.
-
currency: The currency code.
-
note: An optional note to include with the payment.
-
returnUrl: The URL where the user is redirected after successful payment.
-
cancelUrl: The URL where the user is redirected if they cancel the payment.
-
isLive: true for live environment, false for sandbox.
-
-
-
Event:
PaymentToEmailResponse(boolean success, String jsonResponse, String redirectUrl)
-
Triggered with the response of the payment to email request.
-
Parameters:
-
success: true if the payment request was successful, false otherwise.
-
jsonResponse: The JSON response from PayPal.
-
redirectUrl: The URL to redirect the user to for payment approval (if applicable).
-
4. Pay with Credit Card:
-
Function: This function allows you to process credit card payments directly through PayPal without requiring the user to have a PayPal account.
-
Executes a PayPal credit card payment request and processes the response.
-
Parameters:
-
accessToken: The access token.
-
cardNumber: The credit card number.
-
cardType: The credit card type (e.g., “visa”, “mastercard”).
-
expireMonth: The credit card expiration month.
-
expireYear: The credit card expiration year.
-
cvv2: The credit card CVV2 code.
-
firstName: The cardholder’s first name.
-
lastName: The cardholder’s last name.
-
amount: The payment amount.
-
currency: The currency code.
-
paymentDescription: A description of the payment.
-
isLive: true for live environment, false for sandbox.
-
-
-
Event:
CreditCardPaymentResponse(String responseCode, String jsonResponse)
-
Triggered with the response of the credit card payment request.
-
Parameters:
-
responseCode: The HTTP response code from PayPal.
-
jsonResponse: The JSON response containing payment information.
-
5. Capture Amount:
-
Function: CaptureAmount(String paymentId, String payerId, String accessToken, boolean isLive)
-
Captures a previously authorized payment.
-
Parameters:
-
paymentId: The ID of the payment to capture.
-
payerId: The Payer ID associated with the payment.
-
accessToken: The access token.
-
isLive: true for live environment, false for sandbox.
-
-
-
Event:
AmountCaptured(boolean success, String response)
-
Triggered when the capture attempt is completed.
-
Parameters:
-
success: true if the capture was successful, false otherwise.
-
response: The JSON response from PayPal.
-
3. RefundPayment:
- Function:
RefundPayment(String accessToken, String paymentId, double amount, String currency, String reason, boolean isLive)
-
Refunds a PayPal payment.
-
Parameters:
-
accessToken: The access token.
-
paymentId: The ID of the payment to refund.
-
amount: The amount to refund (optional, for partial refunds).
-
currency: The currency code (required if amount is specified).
-
reason: An optional reason for the refund.
-
isLive: true for live environment, false for sandbox.
-
-
Event:
RefundProcessed(String id, String state, String total, String currency, String reason)
-
Triggered when a refund is processed successfully.
-
Parameters:
-
id: The refund ID.
-
state: The state of the refund (e.g., “completed”).
-
total: The refunded amount.
-
currency: The currency code of the refund.
-
reason: The reason for the refund.
-
-
Event:
RefundError(String error, String errorDescription)
-
Triggered when an error occurs during the refund process.
-
Parameters:
-
error: The error code or type.
-
errorDescription: A description of the error.
-
4. CreateInvoice:
- Function:
CreateInvoice(String accessToken, String recipientEmail, double amount, String currency, String description, boolean isLive)
-
Creates a basic PayPal invoice.
-
Parameters:
-
accessToken: The access token.
-
recipientEmail: The recipient’s email address.
-
amount: The invoice amount.
-
currency: The currency code.
-
description: A description of the invoice.
-
isLive: true for live environment, false for sandbox.
-
-
Event:
InvoiceCreated(boolean success, String response)
-
Triggered when an invoice is created.
-
Parameters:
-
success: true if the invoice was created successfully, false otherwise.
-
response: The JSON response from PayPal.
-
5. CheckPaymentStatus:
-
Function: CheckPaymentStatus(String paymentId, String accessToken, boolean isLive)
-
Checks the status of a specific PayPal payment.
-
Parameters:
-
paymentId: The ID of the payment to check.
-
accessToken: The access token.
-
isLive: true for live environment, false for sandbox.
-
-
-
Event:
PaymentStatusReceived(String paymentId, String id, String intent, String state, String createTime, String updateTime, String jsonResponse)
-
Triggered with the status of the payment.
-
Parameters:
-
paymentId: The original payment ID provided.
-
id: The actual payment ID from the response.
-
intent: The payment intent (e.g., “sale”).
-
state: The state of the payment (e.g., “approved”).
-
createTime: The time the payment was created.
-
updateTime: The time the payment was last updated.
-
jsonResponse: The complete JSON response from PayPal.
-
Additional Functions:
- ExtractHrefFromLinks(String jsonResponse): Extracts the href value from a JSON response, typically used to obtain the approval URL for redirecting users to PayPal’s payment page.
- ExtractHrefFromResponse(String jsonResponse): Extracts the href value from a payment response, specifically the approval URL for redirecting users to PayPal.
- ExtractResponseCode(String jsonResponse): Extracts the response code from a JSON response.
- ExtractIdFromResponse(String jsonResponse): Extracts the id value from a JSON response, typically the payment ID.
- ExtractPaymentIdFromUrl(String url): Extracts the paymentId value from a URL, often used after a user returns from PayPal’s payment page.
- ExtractPayerIdFromUrl(String url): Extracts the PayerID value from a URL, also used after a user returns from PayPal’s payment page.
- ExtractSaleId(String jsonResponse): Extracts the “sale id” from a PayPal payment response.
- ExtractCurrencyCode(String jsonResponse): Extracts the currency code from a PayPal payment response.
- ExtractPrice(String jsonResponse): Extracts the price (total amount) from a PayPal payment response.
Explanation :
Step 1: Set Up Your Project
- Open Kodular and create a new project or open an existing one.
Step 2: Add Components
- Drag and drop a “WebViewer” component from the “User Interface” section onto your screen.
- Drag and drop the “Paypal” extension component onto the screen.
Step 3: Design Your User Interface
- Arrange your components on the screen as you wish. You might want to add buttons or labels for user interaction.
Step 4: Blocks Setup
- In the Blocks section, set up the logic to interact with the PayPal API using the extension and Web Viewer.
- Set the
ClientId
andClientSecret
properties of the PayPal extension. - When the user performs an action (e.g., clicking a button), call the
GetAccessToken
function of the PayPal extension to obtain an access token. - In the
AccessTokenObtained
event, call theMakePayPalPayment
function to initiate a payment and obtain the payment link (href). - In the
PaymentInfoObtained
event, parse the response and use theExtractHrefFromLinks
function to get the payment link. - Load the extracted payment link into the Web Viewer using the
Go to URL
block.
Step 5: Handle Web Viewer Page Loaded and Redirect URLs
- Use the Web Viewer’s
PageLoaded
event to detect when the PayPal payment page has loaded. - In the
PageLoaded
event, check the URL of the Web Viewer. If the URL matches the “cancel_url,” it indicates a cancelled payment. - If the URL matches the “return_url,” it indicates a successful payment. You can show a success message to the user in this case.
- after successful payment you have to use the
capture_amount
block to capture your price
steps in one image :
Remember:
-
You’ll need to obtain your PayPal client ID and client secret from the PayPal Developer Dashboard.
-
Carefully review PayPal’s API documentation for specific requirements and limitations of each API call.
I hope this explanation helps you understand and use the PayPal Extension effectively in your App Inventor projects!
Preview_Video:
Test
Preview image
successful payment in live mode
Extension:
you will get aix file in addition to aia file that contains methods of installing the extension inside your project
You can buy it via PayPal it costs 8$ instead of 12$ after your payment you will be directed to the download URL of the zip file that contains aix and aia file of the extension . This offer valid for a limited duration
https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=LHK3ZVXPW6M8L
© 2023 MrKoder. All rights reserved.
For inquiries, please contact: Mr koder
Visit our YouTube channel: Mr Koder’s YouTube Channel