2014-08-27 97 views
0

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

{ 
    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]; 
} 

回答

2

您的操作方法有问题。

只是传递环境 {

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]; 
} 
+0

让我知道如果有任何问题 – Sport 2014-08-27 11:51:36

+0

它的工作与否? – Sport 2014-08-27 11:59:04

+0

感谢,其工作@sport – square 2014-08-27 12:04:16

2

改变你的PayPal环境PayPalEnvironmentSandbox

这是沙盒模式

self.environment = PayPalEnvironmentSandbox; 
如果你想活的方式去

..

self.environment = PayPalEnvironmentProduction; 

检查PayPalMobile.h文件

///必须用作应用商店提交这个环境。

extern NSString *const PayPalEnvironmentProduction; 

/// Sandbox:使用PayPal沙盒进行交易。用于开发。

extern NSString *const PayPalEnvironmentSandbox; 

/// NoNetwork:模拟模式。不提交交易给PayPal。取得成功的回应。用于单元测试。

extern NSString *const PayPalEnvironmentNoNetwork; 
+0

环境= kPayPalEnvironment;我已经使用这个但在沙箱模式仍然没有得到。 – square 2014-08-27 11:32:10

+0

什么是kPayPalEnvironment?在哪里初始化? – karthikeyan 2014-08-27 11:36:56