【发布时间】:2017-02-01 02:01:46
【问题描述】:
我正在为我的 iOS 应用开发付款结账功能。
服务器后端是用java编写的。
用户在 PayPalPaymentViewController 中批准付款后我得到的数据是 intent 是 authorize
{
client = {
environment = sandbox;
"paypal_sdk_version" = "2.14.2";
platform = iOS;
"product_name" = "PayPal iOS SDK";
};
response = {
"authorization_id" = 6238627648439564E;
"create_time" = "2016-09-23T08:54:18Z";
id = "PAY-8J788131PV1025742K7SO3MQ";
intent = authorize;
state = approved;
};
"response_type" = payment;
}
之后,我发送id (PAY-8J37....) 让服务器执行支付。
这里的服务器代码:
Payment payment = new Payment();
payment.setId(paymentId);
APIContext apiContext = new APIContext(PAYPAL_CLIENT_ID_SANDBOX, PAYPAL_CLIENT_SECRET_SANDBOX, "sandbox");
PaymentExecution paymentExecution = new PaymentExecution();
paymentExecution.setPayerId("");//<--- payerId is required
try {
payment.execute(apiContext, paymentExecution);
} catch (PayPalRESTException e) {
//print error
}
然后PayPalRESTException 被捕获。
错误详情为:field payer_id must not be blank
这个问题花了我几个小时的谷歌搜索。
此外,iOS SDK 响应中的authorization_id 是什么意思?没用吗?
请帮助我。 提前致谢。
【问题讨论】:
标签: java ios objective-c paypal paypal-rest-sdk