PayPal sdk没有进入沙盒模式

时间:2014-08-27 10:52:59

标签: ios paypal payment-gateway paypal-sandbox

我在iOS上使用PayPal sdk时遇到了一些问题。我在https://developer.paypal.com/webapps/developer/applications/myapps创建了我的应用并获得了客户端ID。我使用我的ID的paypal示例应用程序,它在模拟和沙盒模式下工作正常。每当我的应用程序在模拟数据模式下移动时,我在我的应用程序中使用此功能时,我会收到来自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];
}

2 个答案:

答案 0 :(得分:2)

将您的PayPal环境更改为PayPalEnvironmentSandbox

这适用于沙盒模式

self.environment = PayPalEnvironmentSandbox;

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

  self.environment = PayPalEnvironmentProduction;

检查您的PayPalMobile.h文件

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

extern NSString *const PayPalEnvironmentProduction;

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

extern NSString *const PayPalEnvironmentSandbox;

/// NoNetwork:模拟模式。不向PayPal提交交易。假装成功回应。适用于单元测试。

extern NSString *const PayPalEnvironmentNoNetwork;

答案 1 :(得分: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];
}