嗨,我有点困惑。我正在使用沙箱凭据进行paypal api调用。返回ACK是:成功。当我去付款人或商业沙箱帐户时,没有处理任何交易。我勉强通过,看起来我填充了所有的字段,而且我会想如果某些字段丢失了,错误就会被抛出。这是我正在使用的代码。
.....
APIProfile apiProfile = ProfileFactory.createSignatureAPIProfile();
apiProfile.setAPIUsername(paypalAccount.getApiLogin());
apiProfile.setAPIPassword(paypalAccount.getApiPassword());
apiProfile.setSignature(paypalAccount.getApiSignature());
apiProfile.setEnvironment(paypalAccount.getApiEnvironment());
// caller
NVPCallerServices callerServices = new NVPCallerServices();
callerServices.setAPIProfile(apiProfile);
// encoder
NVPEncoder encoder = new NVPEncoder();
encoder.add(METHOD, METHOD_VALUE);
encoder.add(RETURNURL, paypalAccount.getReturnUrl());
encoder.add(CANCELURL, paypalAccount.getCancelUrl());
encoder.add(CURRENCYCODE, CURRENCYCODE_VALUE);
encoder.add(PAYMENTACTION, PAYMENTACTION_VALUE);
encoder.add(AMT, payment.getPaymentOrder().getPrice().toString());
encoder.add(L_NAME0, L_NAME0_VALUE);
encoder.add(L_AMT0, payment.getPaymentOrder().getPrice().toString());
// call
String NVPRequest = encoder.encode();
String NVPResponse = callerServices.call(NVPRequest);
NVPDecoder decoder = new NVPDecoder();
decoder.decode(NVPResponse);
String ack = decoder.get(ACK);
payment.setPaymentTransaction(decoder.get(TOKEN));
...
任何帮助都会很棒!
答案 0 :(得分:0)
如果您使用快速结账,则需要拨3个电话:
一旦'DoExpressCheckout'通过,您应该能够看到沙箱买家和商家帐户中记录的交易。
查看:https://www.x.com/devzone/excerpts/chapter-2-express-checkout