我们确实快速结账(在沙盒上),并在创建定期付款配置文件中设置了"zh_CN"
CreateRecurringPaymentsProfileRequestType reqType = new CreateRecurringPaymentsProfileRequestType();
reqType.setVersion(VERSION);
reqType.setErrorLanguage(getLangCode());
我们也碰巧在请求PayPal令牌 api 中设置了它,并在两个地方设置了它(这有效,因为PayPal网站以中文显示)......
setExpressCheckoutRequestDetails.setReturnURL(url);
setExpressCheckoutRequestDetails.setCancelURL(url2);
setExpressCheckoutRequestDetails.setPaymentDetails(paymentDetailsList);
//This is the first place which works!!!! as the paypal GUI shows up in chinese...
setExpressCheckoutRequestDetails.setLocaleCode(getLangCode());
setExpressCheckoutRequestDetails.setBuyerEmail(user.getEmail());
SetExpressCheckoutRequestType setExpressCheckoutRequest = new SetExpressCheckoutRequestType(setExpressCheckoutRequestDetails);
setExpressCheckoutRequest.setVersion(VERSION);
//This is the second location which probably doesn't work though this request has never failed :( and I don't know how to force a failure :( as putting amount 105.37 on negative testing did not work
setExpressCheckoutRequest.setErrorLanguage(getLangCode());
然后,我们将计费周期的开始日期注释掉以导致失败,因为阴性测试不起作用(请参阅帖子如何在沙盒中模拟付款拒绝PayPal)。 这会导致失败,但返回的错误是英文而不是中文,表示"需要开始日期"和长消息"需要订阅开始日期"错误代码 11549。
为什么这不起作用? (我们只是简单地显示PayPal错误,因为它似乎太多了,无法一直翻译,但它不是正确的语言)。
谢谢院长
你指的是 API 响应,对吧?这些仅是(美国)英语。
最好将PayPal API 错误响应映射到您端面向客户的相应消息(当然可以使用您想要的任何语言)。
我不建议直接向客户公开PayPal API 错误响应。