paypal状态正在等待中

时间:2014-04-30 06:00:52

标签: objective-c paypal

大家好,我的应用程序中的每个人都必须使用Paypal挪威货币(NOK),一切都很好,但是当我使用沙箱测试Paypal时状态正在等待,而当我尝试相同的代码为美元时状态是批准了为什么会这样。 这是我的代码和回复

  @try
   {
    self.resultText = nil;
    NSUserDefaults *defpay=[NSUserDefaults standardUserDefaults];
    NSString *mon=[defpay objectForKey:@"month"];

    app *ap=[app new];
   dictpay=[ap paypal:mon category:_strcategoryid1 catid:_strpostid1];
    NSString *strprice=[dictpay objectForKey:@"price"];
    _lbl.text=strprice;
    NSLog(@"%@", _lbl.text);

    PayPalPayment *payment = [[PayPalPayment alloc] init];
    payment.amount = [[NSDecimalNumber alloc] initWithString:strprice];
     //payment.amount = [[NSDecimalNumber alloc] initWithString:@"12"];
    payment.currencyCode = @"NOK";
    payment.shortDescription = @"Payment";

    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;
    paymentViewController = [[PayPalPaymentViewController alloc] initWithPayment:payment
                                                                   configuration:self.payPalConfig
                                                                        delegate:self];

    // Present the PayPalPaymentViewController.
    [self presentViewController:paymentViewController animated:YES completion:nil];


  }
   @catch(NSException *e)
    {
        NSLog(@"%@",e.reason);
    }
  

以下是我对NOK的回应

     client =     {
         environment = sandbox;
         "paypal_sdk_version" = "2.0.5";
          platform = iOS;
        "product_name" = "PayPal iOS SDK";
            };
            response =     {
       "create_time" = "2014-04-30T05:43:49Z";
       id = "PAY-7DX14671UN8535156KNQI3FI";
        intent = sale;
        state = pending;
        };
        "response_type" = payment;
       }  

2 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,问题是买家使用不是卖家的默认货币的货币买入买入,默认情况下,paypal设置类似手动批准不同货币的东西,因为他们有转换费。

登录您的沙盒帐户,然后点击个人资料,然后选择我的销售偏好设置,并在该页面上点击付款接收偏好设置。然后选择

允许以我未持有的货币向我发送付款 是的,接受并将它们转换为blabla

在此之后,您的测试将恢复正常,并且它们也将被批准

设置屏幕截图:

First Step

Second Step

Last Step

更改后别忘了保存设置:)

答案 1 :(得分:1)

更新

@stephanruhl 提供的答案是正确的,但 PayPal 做了一些更改,而那些找不到有用的说明的人则按照以下步骤操作。

答案

要完成此状态的付款,我们需要登录您的 PayPal帐户,转到我的帐户 - >个人资料 - >我的销售工具 - > (获得报酬并管理我的风险)阻止付款并点击更新

将弹出以下屏幕: enter image description here

滚动到允许以我未持有的货币发送给我的付款部分 并选择

通过执行此操作,您可以自动确认付款而无需查看每个付款(请记住:必须停用付款审核)。如果尚未停用付款审核,请按以下步骤操作:

http://developer.paypal.com下,转到您的应用程序。点击沙盒帐户,然后选择商家电子邮件,点击个人资料链接。选择设置标签,然后关闭付款审核。您将获得 已批准 PayPal付款 已完成 销售JSON的状态对象即可。 (原帖:Paypal Sandbox payment state pending

希望有所帮助:)