将Paypal SDK与本机iOS应用程序集成

翁卡

我正在引用PayPal-iOS-SDK并将其与本机iOS应用集成

我已经成功集成了该应用程序(这就是我的感受)

请参考代码

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.
        PayPalMobile .initializeWithClientIdsForEnvironments([PayPalEnvironmentProduction: "YOUR_CLIENT_ID_FOR_PRODUCTION",
            PayPalEnvironmentSandbox: "SANDBOX CODE"])
        return true
    }

View Controller

//
//  ViewController.swift
//  PaypalDemo
//

import UIKit

class ViewController: UIViewController,PayPalPaymentDelegate  {

    var environment:String = PayPalEnvironmentNoNetwork {
        willSet(newEnvironment) {
            if (newEnvironment != environment) {
                PayPalMobile.preconnectWithEnvironment(newEnvironment)
            }
        }
    }



    #if HAS_CARDIO
    // You should use the PayPal-iOS-SDK+card-Sample-App target to enable this setting.
    // For your apps, you will need to link to the libCardIO and dependent libraries. Please read the README.md
    // for more details.
    var acceptCreditCards: Bool = true {
    didSet {
    payPalConfig.acceptCreditCards = acceptCreditCards
    }
    }
    #else
    var acceptCreditCards: Bool = false {
        didSet {
            payPalConfig.acceptCreditCards = acceptCreditCards
        }
    }
    #endif


    var resultText = "" // empty
    var payPalConfig = PayPalConfiguration() // default



    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        // Do any additional setup after loading the view.
        title = "PayPal SDK Demo"
        //successView.hidden = true

        // Set up payPalConfig
        print("this is credit card status \(acceptCreditCards)")
        payPalConfig.acceptCreditCards = true;
        payPalConfig.merchantName = "Awesome Shirts, Inc."
        payPalConfig.merchantPrivacyPolicyURL = NSURL(string: "https://www.paypal.com/webapps/mpp/ua/privacy-full")
        payPalConfig.merchantUserAgreementURL = NSURL(string: "https://www.paypal.com/webapps/mpp/ua/useragreement-full")



        payPalConfig.languageOrLocale = NSLocale.preferredLanguages()[0]

        // Setting the payPalShippingAddressOption property is optional.
        //
        // See PayPalConfiguration.h for details.

        payPalConfig.payPalShippingAddressOption = .PayPal;

        print("PayPal iOS SDK Version: \(PayPalMobile.libraryVersion())")
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


    override func viewWillAppear(animated: Bool) {
        super.viewWillAppear(animated)
        PayPalMobile.preconnectWithEnvironment(environment)
    }


    @IBAction func payByPaypal(sender: UIButton) {
        print("integrate paypal here")
        resultText = ""

        // Note: For purposes of illustration, this example shows a payment that includes
        //       both payment details (subtotal, shipping, tax) and multiple items.
        //       You would only specify these if appropriate to your situation.
        //       Otherwise, you can leave payment.items and/or payment.paymentDetails nil,
        //       and simply set payment.amount to your total charge.

        // Optional: include multiple items
        let item1 = PayPalItem(name: "Old jeans with holes", withQuantity: 2, withPrice: NSDecimalNumber(string: "84.99"), withCurrency: "USD", withSku: "Hip-0037")
        let item2 = PayPalItem(name: "Free rainbow patch", withQuantity: 1, withPrice: NSDecimalNumber(string: "0.00"), withCurrency: "USD", withSku: "Hip-00066")
        let item3 = PayPalItem(name: "Long-sleeve plaid shirt (mustache not included)", withQuantity: 1, withPrice: NSDecimalNumber(string: "37.99"), withCurrency: "USD", withSku: "Hip-00291")

        let items = [item1, item2, item3]
        let subtotal = PayPalItem.totalPriceForItems(items)

        // Optional: include payment details
        let shipping = NSDecimalNumber(string: "5.99")
        let tax = NSDecimalNumber(string: "2.50")
        let paymentDetails = PayPalPaymentDetails(subtotal: subtotal, withShipping: shipping, withTax: tax)

        let total = subtotal.decimalNumberByAdding(shipping).decimalNumberByAdding(tax)

        let payment = PayPalPayment(amount: total, currencyCode: "AUD", shortDescription: "My Shop", intent: .Sale)

        payment.items = items
        payment.paymentDetails = paymentDetails

        if (payment.processable) {
            let paymentViewController = PayPalPaymentViewController(payment: payment, configuration: payPalConfig, delegate: self)
            presentViewController(paymentViewController!, animated: true, completion: nil)
        }
        else {
            // This particular payment will always be processable. If, for
            // example, the amount was negative or the shortDescription was
            // empty, this payment wouldn't be processable, and you'd want
            // to handle that here.
            print("Payment not processalbe: \(payment)")
        }
    }


    func payPalPaymentDidCancel(paymentViewController: PayPalPaymentViewController) {
        print("PayPal Payment Cancelled")
        resultText = ""
        // successView.hidden = true
        paymentViewController.dismissViewControllerAnimated(true, completion: nil)
    }

    func payPalPaymentViewController(paymentViewController: PayPalPaymentViewController, didCompletePayment completedPayment: PayPalPayment) {
        print("PayPal Payment Success !")
        paymentViewController.dismissViewControllerAnimated(true, completion: { () -> Void in
            // send completed confirmaion to your server
          //  print("Here is your proof of payment:\n\n\(completedPayment.confirmation)\n\nSend this to your server for confirmation and fulfillment.")

            self.resultText = completedPayment.description
            self.showSuccess(completedPayment.confirmation)
        })
    }

    func showSuccess(inputString: NSObject) {

        print("this is done successfully :) ")
        print("send this to server \(inputString)")
    }



}

我对应用程序的担心是

1.无论我使用什么登录名,我都可以登录。我尝试[email protected]使用电子邮件和1234密码作为密码,但仍然可以登录。

2.我曾尝试使用信用卡4242-4242-4242-4242,cvv 123 12/12,但付款仍然成功。

3.这些是我正在[client: { environment = mock; "paypal_sdk_version" = "2.14.3"; platform = iOS; "product_name" = "PayPal iOS SDK"; }, response_type: payment, response: { "create_time" = "2016-08-01T09:16:40Z"; id = "PAY-NONETWORKPAYIDEXAMPLE123"; intent = sale; state = approved; }] 寻求的回应{ client = { environment = mock; "paypal_sdk_version" = "2.14.3"; platform = iOS; "product_name" = "PayPal iOS SDK"; }; response = { "create_time" = "2016-08-01T09:59:31Z"; id = "API-PAYMENT-ID-1843"; intent = sale; state = approved; }; "response_type" = payment; }

  1. 集成是否成功,或者我缺少什么,因为在贝宝的响应中,我找不到唯一的订单ID,而不是从用户那里收取的金额。

编辑1这是我从中得到的信息

来自以下位置的print(“这也是信息(completedPayment.description)”)

func payPalPaymentViewController(paymentViewController: PayPalPaymentViewController, didCompletePayment completedPayment: PayPalPayment) 
`CurrencyCode: AUD

Amount: 216.46

Short Description: My Shop

Intent: sale

Processable: Already processed

Display: $216.46

Confirmation: {

    client =     {

        environment = mock;

        "paypal_sdk_version" = "2.14.3";

        platform = iOS;

        "product_name" = "PayPal iOS SDK";

    };

    response =     {

        "create_time" = "2016-08-01T11:05:51Z";

        id = "PAY-NONETWORKPAYIDEXAMPLE123";

        intent = sale;

        state = approved;

    };

    "response_type" = payment;

}

Details: Subtotal: 207.97, Shipping: 5.99, Tax: 2.5

Shipping Address: (null)

Invoice Number: (null)

Custom: (null)

Soft Descriptor: (null)

BN code: (null)

Item: '{2|Old jeans with holes|84.99|USD|Hip-0037}'

Item: '{1|Free rainbow patch|0.00|USD|Hip-00066}'

Item: '{1|Long-sleeve plaid shirt (mustache not included)|37.99|USD|Hip-00291}'`

请纠正,我缺少的地方。

Shrikant K

如果您通过下面的代码

var environment:String = PayPalEnvironmentNoNetwork {
        willSet(newEnvironment) {
            if (newEnvironment != environment) {
                PayPalMobile.preconnectWithEnvironment(newEnvironment)
            }
        }
    }

在没有网络环境的情况下,它将始终为您提供成功。

您需要根据需要更改环境。例如,如果您有在PayPal上注册的沙盒用户,则需要像这样进行更改

 var environment:String = PayPalEnvironmentSandbox
        {
        willSet(newEnvironment) {
            if (newEnvironment != environment)
            {
                PayPalMobile.preconnectWithEnvironment(newEnvironment)
            }
        }
    }

然后,如果您尝试使用任何其他用户而不是已注册的沙箱用户,则会出现错误。这仅对沙盒用户有效。

还有一个称为生产的环境,该环境用于现场目的,您需要向客户询问凭据。

 PayPalEnvironmentProduction 

希望以上信息清楚您所要查找的内容。

  • 不要忘记根据您各自的环境在AppDelegate中更改客户端ID

PayPalMobile.initializeWithClientIdsForEnvironments([PayPalEnvironmentProduction:“”,PayPalEnvironmentSandbox:“ AYP ......”])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Paypal SDK将Paypal集成到Android应用程序:PaymentActivity类问题

来自分类Dev

如何将本机ios第三方库集成到React本机应用程序中?

来自分类Dev

将 Admob 与 ios 应用程序集成

来自分类Dev

将PayPal沙箱集成到您的Web应用程序

来自分类Dev

将PayPal沙箱集成到您的Web应用程序

来自分类Dev

将PayPal IPN集成到Symfony应用程序中

来自分类Dev

将Paypal与C ++ MFC应用程序集成

来自分类Dev

具有Paypal集成的iOS应用程序Braintree

来自分类Dev

是否将StartApp SDK集成到RoboVM应用程序?

来自分类Dev

Paypal与Flask应用程序集成

来自分类Dev

Paypal集成到Android应用程序

来自分类Dev

iPhone应用程序PayPal集成

来自分类Dev

我可以在不集成SDK的情况下将Facebook广告用于iOS应用程序吗?

来自分类Dev

将本机iOS应用程序的数据迁移到React Native应用程序的异步存储

来自分类Dev

如何将NSString数据从我的应用程序传递到iOS本机应用程序

来自分类Dev

我们可以将混合应用程序与本机iOS应用程序合并吗?

来自分类Dev

将Xamarin应用程序与带Facebook iOS应用程序的Facebook SSO集成

来自分类Dev

如何将Paypal与Rails应用程序上的ruby集成?

来自分类Dev

如何将PayPal功能集成到桌面应用程序中

来自分类Dev

将PayPal结帐与Kivy应用集成?

来自分类Dev

将Node与Phonegap应用程序集成

来自分类Dev

将 SSRS 与 Web 应用程序集成

来自分类Dev

IBM Worklight-如何将Worklight功能集成到现有的本机应用程序中?

来自分类Dev

如何在Python Django应用程序中集成Paypal

来自分类Dev

在Symfony应用程序中集成PayPal IPN

来自分类Dev

应用程序不幸的是通过Paypal集成停止了表单codenameone

来自分类Dev

将数据从Web视图传递到本机应用程序的最佳方法(Windows,iOS和Android)

来自分类Dev

我是否将AIR或本机代码用于iOS应用程序?

来自分类Dev

如何使用Swift将FitBit Api集成到IOS应用程序中

Related 相关文章

  1. 1

    使用Paypal SDK将Paypal集成到Android应用程序:PaymentActivity类问题

  2. 2

    如何将本机ios第三方库集成到React本机应用程序中?

  3. 3

    将 Admob 与 ios 应用程序集成

  4. 4

    将PayPal沙箱集成到您的Web应用程序

  5. 5

    将PayPal沙箱集成到您的Web应用程序

  6. 6

    将PayPal IPN集成到Symfony应用程序中

  7. 7

    将Paypal与C ++ MFC应用程序集成

  8. 8

    具有Paypal集成的iOS应用程序Braintree

  9. 9

    是否将StartApp SDK集成到RoboVM应用程序?

  10. 10

    Paypal与Flask应用程序集成

  11. 11

    Paypal集成到Android应用程序

  12. 12

    iPhone应用程序PayPal集成

  13. 13

    我可以在不集成SDK的情况下将Facebook广告用于iOS应用程序吗?

  14. 14

    将本机iOS应用程序的数据迁移到React Native应用程序的异步存储

  15. 15

    如何将NSString数据从我的应用程序传递到iOS本机应用程序

  16. 16

    我们可以将混合应用程序与本机iOS应用程序合并吗?

  17. 17

    将Xamarin应用程序与带Facebook iOS应用程序的Facebook SSO集成

  18. 18

    如何将Paypal与Rails应用程序上的ruby集成?

  19. 19

    如何将PayPal功能集成到桌面应用程序中

  20. 20

    将PayPal结帐与Kivy应用集成?

  21. 21

    将Node与Phonegap应用程序集成

  22. 22

    将 SSRS 与 Web 应用程序集成

  23. 23

    IBM Worklight-如何将Worklight功能集成到现有的本机应用程序中?

  24. 24

    如何在Python Django应用程序中集成Paypal

  25. 25

    在Symfony应用程序中集成PayPal IPN

  26. 26

    应用程序不幸的是通过Paypal集成停止了表单codenameone

  27. 27

    将数据从Web视图传递到本机应用程序的最佳方法(Windows,iOS和Android)

  28. 28

    我是否将AIR或本机代码用于iOS应用程序?

  29. 29

    如何使用Swift将FitBit Api集成到IOS应用程序中

热门标签

归档