com.paypal.core.soap.MerchantAPICallPreHandler.processPayLoadForFormatting中的PatternSyntaxException

时间:2015-08-10 10:43:06

标签: java android paypal-sandbox paypal

我在我的android gradle项目中使用来自maven的merchant-sdk-java进行快速结账整合,我收到以下错误:

08-10 15:42:30.233 26631-26731/com.spec.paypalpoc W/System.err﹕ java.util.regex.PatternSyntaxException: Syntax error in regexp pattern near index 15:
08-10 15:42:30.234 26631-26731/com.spec.paypalpoc W/System.err﹕ (?<!{[01]{1})}
08-10 15:42:30.234 26631-26731/com.spec.paypalpoc W/System.err﹕ ^
08-10 15:42:30.234 26631-26731/com.spec.paypalpoc W/System.err﹕ at java.util.regex.Pattern.compileImpl(Native Method)
08-10 15:42:30.237 26631-26731/com.spec.paypalpoc W/System.err﹕ at java.util.regex.Pattern.compile(Pattern.java:411)
08-10 15:42:30.237 26631-26731/com.spec.paypalpoc W/System.err﹕ at java.util.regex.Pattern.(Pattern.java:394)
08-10 15:42:30.237 26631-26731/com.spec.paypalpoc W/System.err﹕ at java.util.regex.Pattern.compile(Pattern.java:381)
08-10 15:42:30.237 26631-26731/com.spec.paypalpoc W/System.err﹕ at java.lang.String.replaceAll(String.java:1600)
08-10 15:42:30.237 26631-26731/com.spec.paypalpoc W/System.err﹕ at com.paypal.core.soap.MerchantAPICallPreHandler.processPayLoadForFormatting(MerchantAPICallPreHandler.java:466)
08-10 15:42:30.237 26631-26731/com.spec.paypalpoc W/System.err﹕ at com.paypal.core.soap.MerchantAPICallPreHandler.getPayLoadUsingSOAPHeader(MerchantAPICallPreHandler.java:447)
08-10 15:42:30.237 26631-26731/com.spec.paypalpoc W/System.err﹕ at com.paypal.core.soap.MerchantAPICallPreHandler.getPayLoad(MerchantAPICallPreHandler.java:317)
08-10 15:42:30.237 26631-26731/com.spec.paypalpoc W/System.err﹕ at com.paypal.core.BaseService.call(BaseService.java:264)
08-10 15:42:30.237 26631-26731/com.spec.paypalpoc W/System.err﹕ at urn.ebay.api.PayPalAPI.PayPalAPIInterfaceServiceService.setExpressCheckout(PayPalAPIInterfaceServiceService.java:2196)
08-10 15:42:30.237 26631-26731/com.spec.paypalpoc W/System.err﹕ at urn.ebay.api.PayPalAPI.PayPalAPIInterfaceServiceService.setExpressCheckout(PayPalAPIInterfaceServiceService.java:2148)

所以基本上当我研究这个方法时:

/**
     * Process the payload before using message formatting
 */
private String processPayLoadForFormatting(String payLoad) {
    Matcher match = REGEX_PATTERN.matcher(payLoad);
    StringBuffer sb = new StringBuffer();
    while (match.find()) {
        match.appendReplacement(sb, "'" + match.group());
    }
    match.appendTail(sb);

    // Fix json strings in element values by replacing {
    // by '{' and matching } by '}'
    return sb.toString().replaceAll("(?<!\\{[01]{1})}", "'}' ")
            .replaceAll("\\{(?![01]})", "'{' ");
}

我们需要在这一行中逃避“}”:

return sb.toString().replaceAll("(?<!\\{[01]{1})}", "'}' ")
                .replaceAll("\\{(?![01]})", "'{' ");

在android转义中,“{,}”工作正常。 Android | Syntax Error in regexp pattern

如果有任何解决方法,请告诉我。

谢谢和问候,

Namrata Bagerwal。

0 个答案:

没有答案