gpt4 book ai didi

Java paypal 调用从不返回结果

转载 作者:太空宇宙 更新时间:2023-11-03 16:20:35 24 4
gpt4 key购买 nike

Java 我正在使用 paypal 网站 pro sdk SOAP 调用问题是以下代码行在长时间后返回异常

response = (CreateRecurringPaymentsProfileResponseType) caller.call("CreateRecurringPaymentsProfile", request);

Exception is as follows.

java.net.SocketException: Connection reset
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.paypal.sdk.core.soap.SOAPAPICaller.callSOAP(SOAPAPICaller.java:462)
at com.paypal.sdk.core.soap.SOAPAPICaller.call(SOAPAPICaller.java:382)
at com.paypal.sdk.services.CallerServices.call(CallerServices.java:125)
at CreateRecurringPaymentsProfile.callCreateRecurringPaymentsProfileAPI(CreateRecurringPaymentsProfile.java:85)
at CreateRecurringPaymentsProfile.run(CreateRecurringPaymentsProfile.java:50)
at CreateRecurringPaymentsProfile.main(CreateRecurringPaymentsProfile.java:22)
Caused by: java.net.SocketException: Connection reset

我是否需要任何证书或其他东西,目前我正在类文件夹中使用代理,如下所示

# This file contains the properties that needs to be set to make the API call via Proxy.


# To make use of proxy, change PROXY_SET to true, uncomment
# PROXY_HOST and PROXY_PORT properties and set values as illustrated below.
# Note: Just remove the # symbol to uncomment.
# Both PROXY_HOST and PROXY_PORT needs to be set. PROXY_PORT should be a number.
# If any one of these properties are not set or invalid, proxy settings will be ignored
# and this information will be logged.

# PROXY_HOST : IP Address or Host Name of the proxy server
# PROXY_PORT: Port number of the proxy server

PROXY_SET = true

PROXY_HOST=128.1.100.13
# eg: PROXY_HOST = 127.0.0.1

PROXY_PORT=8080
# eg: PROXY_PORT = 808

# The following properties are optional.
# If your proxy need username and password to authenticate,
# just uncomment the following two properties and set values as illustrated below.
# Note: Just remove the # symbol to uncomment.

# PROXY_USERNAME=<your proxy username>
# eg: PROXY_USERNAME =test

# PROXY_PASSWORD=<your proxy password>
# eg: PROXY_PASSWORD =test

我的代码如下

public class CreateRecurringPaymentsProfile {
CallerServices caller;

public static void main(String[] args) {
try {
CreateRecurringPaymentsProfile sample = new CreateRecurringPaymentsProfile();
sample.run();
}
catch (Exception e) {
System.out.println("ERROR: " + e.getMessage());
}
}

public CreateRecurringPaymentsProfile() throws PayPalException {
caller = new CallerServices();

/*
WARNING: Do not embed plaintext credentials in your application code.
Doing so is insecure and against best practices.
Your API credentials must be handled securely. Please consider
encrypting them for use in any production environment, and ensure
that only authorized individuals may view or modify them.
*/

APIProfile profile = ProfileFactory.createSignatureAPIProfile();
profile.setAPIUsername("f_1299578055_biz_api1.gmail.com");
profile.setAPIPassword("152578076");
profile.setSignature("A.SG-Qkp9mcSwx0zh23u89eyCcWGA9MwmCgRlo2193..VNw06q1WbLTx");
profile.setEnvironment("sandbox");
caller.setAPIProfile(profile);
}

public void run() throws PayPalException {

callCreateRecurringPaymentsProfileAPI();
System.out.println("\nDone...");
}



public void callCreateRecurringPaymentsProfileAPI() throws PayPalException {
System.out.println("\n########## Starting CreateRecurringPaymentsProfile ##########\n");

//Replace the token value by actual value returned vy SetCustomerBillingAgreementAPI call
String token="RP-8P463231B6009345R";
String amount ="5.00";
int BF=1;
BillingPeriodType BP = BillingPeriodType.Day;

CreateRecurringPaymentsProfileRequestType request=new CreateRecurringPaymentsProfileRequestType();
CreateRecurringPaymentsProfileResponseType response=new CreateRecurringPaymentsProfileResponseType();
request.setVersion("51.0");
request.setCreateRecurringPaymentsProfileRequestDetails(new CreateRecurringPaymentsProfileRequestDetailsType()) ;
request.getCreateRecurringPaymentsProfileRequestDetails().setToken(token);
request.getCreateRecurringPaymentsProfileRequestDetails().setRecurringPaymentsProfileDetails(new RecurringPaymentsProfileDetailsType());

Calendar start_date = Calendar.getInstance();
start_date.set(2008,5,30);

request.getCreateRecurringPaymentsProfileRequestDetails().getRecurringPaymentsProfileDetails().setBillingStartDate(start_date);
request.getCreateRecurringPaymentsProfileRequestDetails().setScheduleDetails(new ScheduleDetailsType());
request.getCreateRecurringPaymentsProfileRequestDetails().getScheduleDetails().setPaymentPeriod(new BillingPeriodDetailsType());
request.getCreateRecurringPaymentsProfileRequestDetails().getScheduleDetails().setDescription("RP-Test- Java SOAP SDK");
request.getCreateRecurringPaymentsProfileRequestDetails().getScheduleDetails().getPaymentPeriod().setAmount(new BasicAmountType());
request.getCreateRecurringPaymentsProfileRequestDetails().getScheduleDetails().getPaymentPeriod().getAmount().set_value(amount) ;
request.getCreateRecurringPaymentsProfileRequestDetails().getScheduleDetails().getPaymentPeriod().getAmount().setCurrencyID(CurrencyCodeType.USD);
request.getCreateRecurringPaymentsProfileRequestDetails().getScheduleDetails().getPaymentPeriod().setBillingFrequency(BF);
request.getCreateRecurringPaymentsProfileRequestDetails().getScheduleDetails().getPaymentPeriod().setBillingPeriod(BP);

response = (CreateRecurringPaymentsProfileResponseType) caller.call("CreateRecurringPaymentsProfile", request);

if (!response.getAck().equals(AckCodeType.Success) && !response.getAck().equals(AckCodeType.SuccessWithWarning)) {
// do error processing
System.out.println("\n########## CreateRecurringPaymentsProfile call failed ##########\n");
} else {
//success
System.out.println("\n########## CreateRecurringPaymentsProfile call passed ##########\n");
}


}


}

我在 developer.paypal.com 网站上创建了以下帐户。

编辑 出于安全原因删除。 enter image description here

最佳答案

您可以检查您的 java.policy 文件以检查是否有任何限制,或者您可能需要在那里添加 SocketPermission 以允许应用程序连接

关于Java paypal 调用从不返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5231072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com