【问题标题】:PayPal sdk doesn't go in sandbox modePayPal sdk 不进入沙盒模式
【发布时间】:2014-10-20 22:16:06
【问题描述】:

我在 iOS 上使用 PayPal sdk 时遇到了一些问题。我在 https://developer.paypal.com/webapps/developer/applications/myapps 创建了我的应用程序并获得了客户端 ID。我使用带有我的 ID 的 paypal 示例应用程序,它在模拟和沙盒模式下工作正常。当我在我的应用程序中使用它时,每次我的应用程序以模拟数据模式移动时,我都会从贝宝服务器获得响应。

{
    client =     {
        environment = mock;
        "paypal_sdk_version" = "2.2.1";
        platform = iOS;
        "product_name" = "PayPal iOS SDK";
    };
    response =     {
        "create_time" = "2014-08-27T10:18:57Z";
        id = "PAY-8UD377151U972354RKOQ3DTQ";
        intent = sale;
        state = approved;
    };
    "response_type" = payment;
}

.我不能设置沙盒模式我需要使用哪个变量。

- (void)viewDidLoad
{

    // Set up payPalConfig
    _payPalConfig = [[PayPalConfiguration alloc] init];
    _payPalConfig.acceptCreditCards = YES;
    _payPalConfig.languageOrLocale = @"en";
    _payPalConfig.merchantName = @"KicksCloset Shoes, Inc.";
    _payPalConfig.merchantPrivacyPolicyURL = [NSURL URLWithString:@"https://www.paypal.com/webapps/mpp/ua/privacy-full"];
    _payPalConfig.merchantUserAgreementURL = [NSURL URLWithString:@"https://www.paypal.com/webapps/mpp/ua/useragreement-full"];
    _payPalConfig.languageOrLocale = [NSLocale preferredLanguages][0];
    // use default environment, should be Production in real life
     self.environment = @"sandbox";

    NSLog(@"PayPal iOS SDK version: %@", [PayPalMobile libraryVersion]);


}

这是我的付款操作

{   
    PayPalPayment *payment = [[PayPalPayment alloc] init];
    payment.amount = [[NSDecimalNumber alloc] initWithString:amountforserver];
    payment.currencyCode = @"USD";
    payment.shortDescription = creditsforserver;
   // payment.items = items;  // if not including multiple items, then leave payment.items as nil
  //  payment.paymentDetails = paymentDetails; // if not including payment details, then leave payment.paymentDetails as nil

    if (!payment.processable) {
        // 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.
    }

    // Update payPalConfig re accepting credit cards.
    self.payPalConfig.acceptCreditCards = self.acceptCreditCards;

    PayPalPaymentViewController *paymentViewController = [[PayPalPaymentViewController alloc] initWithPayment:payment
                                                                                                configuration:self.payPalConfig
                                                                                                     delegate:self];
    [self presentViewController:paymentViewController animated:YES completion:nil];
}

【问题讨论】:

    标签: ios paypal payment-gateway paypal-sandbox


    【解决方案1】:

    您的操作方法有问题。

    只是传递环境 {

    PayPalPayment *payment = [[PayPalPayment alloc] init];
        payment.amount = [[NSDecimalNumber alloc] initWithString:amountforserver];
        payment.currencyCode = @"USD";
        payment.shortDescription = creditsforserver;
       // payment.items = items;  // if not including multiple items, then leave payment.items as nil
      //  payment.paymentDetails = paymentDetails; // if not including payment details, then leave payment.paymentDetails as nil
    
        if (!payment.processable) {
            // 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.
        }
        self.environment = kPayPalEnvironment;
    
            PayPalPaymentViewController *paymentViewController = [[PayPalPaymentViewController alloc] initWithPayment:payment
                                                                                                        configuration:self.payPalConfig
                                                                                                             delegate:self];
    
            [self presentViewController:paymentViewController animated:YES completion:nil];
    

    } 就用这个

    中的代码
    -(void)viewWillAppear:(BOOL)animated{
    
    
        [PayPalMobile preconnectWithEnvironment:self.environment];
    }
    

    【讨论】:

    • 如果有任何问题请告诉我
    【解决方案2】:

    将您的贝宝环境更改为 PayPalEnvironmentSandbox

    这是沙盒模式

    self.environment = PayPalEnvironmentSandbox;
    

    如果你想使用实时模式..

      self.environment = PayPalEnvironmentProduction;
    

    检查您的 PayPalMobile.h 文件

    /// 此环境必须用于 App Store 提交。

    extern NSString *const PayPalEnvironmentProduction;
    

    /// 沙盒:使用 PayPal 沙盒进行交易。对开发很有用。

    extern NSString *const PayPalEnvironmentSandbox;
    

    /// NoNetwork:模拟模式。不向 PayPal 提交交易。伪造成功的响应。对单元测试很有用。

    extern NSString *const PayPalEnvironmentNoNetwork;
    

    【讨论】:

    • environment = kPayPalEnvironment;我用过这个,但仍然没有进入沙盒模式。
    • 什么是 kPayPalEnvironment?你在哪里初始化它?
    猜你喜欢
    • 2015-08-07
    • 2012-08-31
    • 2016-09-22
    • 2016-09-29
    • 1970-01-01
    • 2013-09-02
    • 2014-04-02
    • 2015-11-25
    • 2015-12-30
    相关资源
    最近更新 更多