大家好,我的应用程序中的每个人都必须使用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;
}
答案 0 :(得分:3)
我遇到了同样的问题,问题是买家使用不是卖家的默认货币的货币买入买入,默认情况下,paypal设置类似手动批准不同货币的东西,因为他们有转换费。
登录您的沙盒帐户,然后点击个人资料,然后选择我的销售偏好设置,并在该页面上点击付款接收偏好设置。然后选择
允许以我未持有的货币向我发送付款 是的,接受并将它们转换为blabla
在此之后,您的测试将恢复正常,并且它们也将被批准
设置屏幕截图:
更改后别忘了保存设置:)
答案 1 :(得分:1)
@stephanruhl 提供的答案是正确的,但 PayPal 做了一些更改,而那些找不到有用的说明的人则按照以下步骤操作。
要完成此状态的付款,我们需要登录您的 PayPal帐户,转到我的帐户 - >个人资料 - >我的销售工具 - > (获得报酬并管理我的风险)阻止付款并点击更新:
将弹出以下屏幕:
滚动到允许以我未持有的货币发送给我的付款部分 并选择是
通过执行此操作,您可以自动确认付款而无需查看每个付款(请记住:必须停用付款审核)。如果尚未停用付款审核,请按以下步骤操作:
在http://developer.paypal.com下,转到您的应用程序。点击沙盒帐户,然后选择商家电子邮件,点击个人资料链接。选择设置标签,然后关闭付款审核。您将获得 已批准 PayPal付款和 已完成 销售JSON的状态对象即可。 (原帖:Paypal Sandbox payment state pending)
希望有所帮助:)