【发布时间】:2015-10-03 10:55:34
【问题描述】:
在 iOS 中实施自适应支付时遇到一些困难,不幸的是,PayPal 网站上的文档或响应很少。这是代码:
- (void)makePaymentSandbox{
NSError *error;
//NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
//NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:nil];
NSURL *url = [NSURL URLWithString:@"https://svcs.sandbox.paypal.com/AdaptivePayments/Pay"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:30.0];
//setting
[request setHTTPMethod:@"POST"];
//headers
[request addValue:@"alex-facilitator_api1.fastwebnet.it" forHTTPHeaderField:@"X-PAYPAL-SECURITY-USERID"];
[request addValue:@"FW79EZXASW69NE8X" forHTTPHeaderField:@"X-PAYPAL-SECURITY-PASSWORD"];
[request addValue:@"ABZua9nnv9oieyN4MwVt15YdgetaJHcyzqOHjkLbuM-bGRoI7WRS" forHTTPHeaderField:@"X-PAYPAL-SECURITY-SIGNATURE"];
//NV
[request addValue:@"JSON" forHTTPHeaderField:@"X-PAYPAL-REQUEST-DATA-FORMAT"];
[request addValue:@"JSON" forHTTPHeaderField:@"X-PAYPAL-RESPONSE-DATA-FORMAT"];
[request addValue:@"APP-80W288712P519543T" forHTTPHeaderField:@"X-PAYPAL-APPLICATION-ID"];
[request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request addValue:@"en_US" forHTTPHeaderField:@"Accept-Language"];
//data
/*NSString *userUpdate =[NSString stringWithFormat:@"clientDetails.applicationId=%@&actionType=%@",@"APP-80W284485P519543T", @"PAY",nil];
NSData *data1 = [userUpdate dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:data1];
[request setValue: [NSString stringWithFormat:@"%lu", (unsigned long)[data1 length]] forHTTPHeaderField:@"Content-Length"];*/
NSDictionary *mapData = [[NSDictionary alloc] initWithObjectsAndKeys:
@"PAY", @"actionType",
@"USD", @"currencyCode",
@"http:\\www.cleverlyapp.com", @"cancelUrl",
@"http:\\www.cleverlyapp.com", @"returnUrl",
@"ReturnAll", @"requestEnvelope.detailLevel",
@"en_US", @"requestEnvelope.errorLanguage",
@"seneder@email.com", @"senderEmail",
@"0.1", @"receiverList.receiver(0).amount",
@"a-buyer@fastwebnet.it", @"receiverList.receiver(0).email",
@"0.1", @"receiverList.receiver(1).amount",
@"a-facilitator@fastwebnet.it", @"receiverList.receiver(1).email",
@"APP-80W284485P519543T", @"clientDetails.applicationId",
nil];
NSData *postData = [NSJSONSerialization dataWithJSONObject:mapData options:0 error:&error];
[request setHTTPBody:postData];
[NSURLConnection connectionWithRequest:request delegate:self];
}
回复如下:
String: {
error = (
{
category = Application;
domain = PLATFORM;
errorId = 580001;
message = "Invalid request: {0}";
severity = Error;
subdomain = Application;
}
);
responseEnvelope = {
ack = Failure;
build = 17325060;
correlationId = e82ede718b929;
timestamp = "2015-07-14T09:50:06.222-07:00";
};
}
【问题讨论】:
-
stackoverflow.com/questions/15854931/… 的任何答案对您有帮助吗?
-
看过那个页面,没有帮助
-
通过添加 senderEmail,您将其称为隐式付款。仅当该发件人是 API 调用者时才允许这样做。您拥有的电子邮件地址 (sender@email.com) 必须是添加到与 API 调用者的 API 凭据相关联的 PayPal 帐户中的一个。如果不是这种情况,您将收到错误消息。不确定这是否是您遇到的错误。
-
请检查这些stackoverflow.com/questions/18392145/…、stackoverflow.com/questions/20252360/…、paypal-community.com/t5/About-Payments-Archive/Error-580001/…,有些与编码有关,设置为 JSON,但以 URL 编码发送等,其他与货币和货币格式