Skip to content

Commit 12e240d

Browse files
Alan NeriAlan Neri
authored andcommitted
agregando soporte para ios
1 parent 420b3f2 commit 12e240d

File tree

13 files changed

+1576
-1482
lines changed

13 files changed

+1576
-1482
lines changed

README.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
# PayPal Checkout ![android](https://cdn4.iconfinder.com/data/icons/logos-3/228/android-32.png)
1+
# PayPal Checkout ![apple](https://cdn3.iconfinder.com/data/icons/picons-social/57/16-apple-32.png) ![android](https://cdn4.iconfinder.com/data/icons/logos-3/228/android-32.png)
22

33
## Screenshot
44

55
<img alt="Android" src="https://res.cloudinary.com/dem02bcqj/image/upload/v1526572004/paypal.png" width="550">
66

77
## Support
88

9-
Support only Android.
9+
Support Android & iOS.
1010

1111
## Installation
1212

@@ -49,6 +49,12 @@ More references: https://developers.braintreepayments.com/guides/paypal/checkout
4949

5050
Server-Side Implementation: https://developers.braintreepayments.com/guides/paypal/server-side/php
5151

52+
## Thanks
53+
54+
Thanks to @jibon57 the configurations for the plugin
55+
56+
Settings app ios: https://github.com/jibon57/nativescript-braintree
57+
5258
## License
5359

5460
Apache License Version 2.0, January 2004

demo/app/App_Resources/iOS/Info.plist

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,15 @@
2626
<string>LaunchScreen</string>
2727
<key>UIRequiresFullScreen</key>
2828
<true/>
29+
<key>CFBundleURLTypes</key>
30+
<array>
31+
<dict>
32+
<key>CFBundleURLSchemes</key>
33+
<array>
34+
<string>org.nativescript.demo.payments</string>
35+
</array>
36+
</dict>
37+
</array>
2938
<key>UIRequiredDeviceCapabilities</key>
3039
<array>
3140
<string>armv7</string>

demo/app/app.ts

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,42 @@
11
import "./bundle-config";
22
import * as application from 'tns-core-modules/application';
3+
4+
5+
import * as app from "tns-core-modules/application";
6+
declare var UIResponder, UIApplicationDelegate, BTAppSwitch;
7+
8+
if (app.ios) {
9+
10+
class MyDelegate extends UIResponder {
11+
12+
public static ObjCProtocols = [UIApplicationDelegate];
13+
14+
applicationDidFinishLaunchingWithOptions(application, launchOptions): boolean {
15+
16+
try {
17+
BTAppSwitch.setReturnURLScheme("org.nativescript.demo.payments"); // should be same as CFBundleURLSchemes value.
18+
return true;
19+
} catch (error) {
20+
console.log(error);
21+
}
22+
return false;
23+
}
24+
25+
applicationOpenURLSourceApplicationAnnotation(application, url, sourceApplication, annotation) {
26+
27+
try {
28+
if (url.scheme == "org.nativescript.demo.payments") {
29+
BTAppSwitch.handleOpenURLSourceApplication(url, sourceApplication);
30+
return true;
31+
}
32+
} catch (error) {
33+
console.log(error);
34+
}
35+
return false;
36+
}
37+
}
38+
39+
app.ios.delegate = MyDelegate;
40+
}
41+
342
application.start({ moduleName: "main-page" });

demo/app/main-view-model.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,23 @@ import { Observable } from 'tns-core-modules/data/observable';
22
import { PaypalCheckout, PaypalOptions } from 'nativescript-paypal-checkout';
33

44
export class HelloWorldModel extends Observable {
5-
6-
private paypalCheckout: PaypalCheckout;
75
token = "eyJ2ZXJzaW9uIjoyLCJhdXRob3JpemF0aW9uRmluZ2VycHJpbnQiOiIyZjQ5NzY2YmFjMDIyYjkwNzUyODY2M2NkYmViYTFkODU1NGFmZDczNmUxMTEzNGVlY2Q1YjQzYjc4ZDAwNjdifGNyZWF0ZWRfYXQ9MjAxOC0wNS0xN1QxODozMTozMi45ODY1OTM3ODIrMDAwMFx1MDAyNm1lcmNoYW50X2lkPWN2a2Y5bnZtM2o1M20zemdcdTAwMjZwdWJsaWNfa2V5PTkybjRueG5nNjdiOXk5eHIiLCJjb25maWdVcmwiOiJodHRwczovL2FwaS5zYW5kYm94LmJyYWludHJlZWdhdGV3YXkuY29tOjQ0My9tZXJjaGFudHMvY3ZrZjludm0zajUzbTN6Zy9jbGllbnRfYXBpL3YxL2NvbmZpZ3VyYXRpb24iLCJjaGFsbGVuZ2VzIjpbXSwiZW52aXJvbm1lbnQiOiJzYW5kYm94IiwiY2xpZW50QXBpVXJsIjoiaHR0cHM6Ly9hcGkuc2FuZGJveC5icmFpbnRyZWVnYXRld2F5LmNvbTo0NDMvbWVyY2hhbnRzL2N2a2Y5bnZtM2o1M20zemcvY2xpZW50X2FwaSIsImFzc2V0c1VybCI6Imh0dHBzOi8vYXNzZXRzLmJyYWludHJlZWdhdGV3YXkuY29tIiwiYXV0aFVybCI6Imh0dHBzOi8vYXV0aC52ZW5tby5zYW5kYm94LmJyYWludHJlZWdhdGV3YXkuY29tIiwiYW5hbHl0aWNzIjp7InVybCI6Imh0dHBzOi8vY2xpZW50LWFuYWx5dGljcy5zYW5kYm94LmJyYWludHJlZWdhdGV3YXkuY29tL2N2a2Y5bnZtM2o1M20zemcifSwidGhyZWVEU2VjdXJlRW5hYmxlZCI6dHJ1ZSwicGF5cGFsRW5hYmxlZCI6dHJ1ZSwicGF5cGFsIjp7ImRpc3BsYXlOYW1lIjoiV2Fpc29mdCIsImNsaWVudElkIjoiQVdvemZSZHR0UGk5U3h3UDlCbXd4bVZON1loZmgwUjREcHZwOVZ1c2pzVG4tbjlPRk1mU0JzRm5SMlJUVWhGenBHTHVyaWc3ZklDWl81NkQiLCJwcml2YWN5VXJsIjoiaHR0cDovL2V4YW1wbGUuY29tL3BwIiwidXNlckFncmVlbWVudFVybCI6Imh0dHA6Ly9leGFtcGxlLmNvbS90b3MiLCJiYXNlVXJsIjoiaHR0cHM6Ly9hc3NldHMuYnJhaW50cmVlZ2F0ZXdheS5jb20iLCJhc3NldHNVcmwiOiJodHRwczovL2NoZWNrb3V0LnBheXBhbC5jb20iLCJkaXJlY3RCYXNlVXJsIjpudWxsLCJhbGxvd0h0dHAiOnRydWUsImVudmlyb25tZW50Tm9OZXR3b3JrIjpmYWxzZSwiZW52aXJvbm1lbnQiOiJvZmZsaW5lIiwidW52ZXR0ZWRNZXJjaGFudCI6ZmFsc2UsImJyYWludHJlZUNsaWVudElkIjoibWFzdGVyY2xpZW50MyIsImJpbGxpbmdBZ3JlZW1lbnRzRW5hYmxlZCI6dHJ1ZSwibWVyY2hhbnRBY2NvdW50SWQiOiJ3YWlzb2Z0IiwiY3VycmVuY3lJc29Db2RlIjoiVVNEIn0sIm1lcmNoYW50SWQiOiJjdmtmOW52bTNqNTNtM3pnIiwidmVubW8iOiJvZmYifQ==";
6+
87
constructor() {
98
super();
109
}
1110

1211
pay() {
1312

14-
this.paypalCheckout = new PaypalCheckout();
13+
var paypalCheckout = new PaypalCheckout();
1514

1615
let options: PaypalOptions = {
1716
token: this.token,
1817
amount: "10",
19-
currencyCode: "MXN"
18+
currencyCode: "USD"
2019
};
2120

22-
this.paypalCheckout.paypalRequest(options).then(
21+
paypalCheckout.paypalRequest(options).then(
2322
(nonce) => {
2423
console.log("Nonce: " + nonce);
2524
}, (error) => {

0 commit comments

Comments
 (0)