我正在完成我的应用程序以进行 PayPal 付款。这只是一次性付款,所以我真的不需要 PayPal 提供的所有提示。我只想点击一个按钮进行付款,然后让 PayPal 完成剩下的工作。 现在一切正常,但我想调整 PayPal 提供的 UI。 具体来说:
1)。我不想看到授权金额超过付款金额,它们将始终相同,因为没有运费。我已经将送货偏好设置为“NO-SHIPPING”,这确实删除了送货地址信息。
2)。我想删除 PayPal Credit 作为一个选项。
3)。理想情况下,我不希望用户在这个阶段向钱包添加新卡。如果他们愿意,他们可以在其他地方这样做
我的结账设置和示例屏幕如下:
paymentButtonContainer.setup(
new CreateOrder() {
@Override
public void create(@NotNull CreateOrderActions createOrderActions) {
ArrayList<PurchaseUnit> purchaseUnits = new ArrayList<>();
purchaseUnits.add(
new PurchaseUnit.Builder()
.amount(new Amount.Builder()
.currencyCode(CurrencyCode.GBP)
.value("6.00")
.build()
).shipping(new Shipping.Builder()
.address(null)
.build()
).build()
);
OrderRequest order = new OrderRequest(
OrderIntent.CAPTURE,
new AppContext.Builder()
.userAction(UserAction.PAY_NOW)
.shippingPreference(ShippingPreference.NO_SHIPPING)
.build(),
purchaseUnits
);
createOrderActions.create(order, (CreateOrderActions.OnOrderCreated) null);
}
}, new OnApprove() {
@Override
public void onApprove(@NotNull Approval approval) {
approval.getOrderActions().capture(new OnCaptureComplete() {
@Override
public void onCaptureComplete(@NotNull CaptureOrderResult result) {
Log.i(TAG, String.format("CaptureOrderResult: %s", result));
Toast.makeText(MainActivity.this, "Payment Approved", Toast.LENGTH_SHORT).show();
}
});
}
},
null,
new OnCancel() {
@Override
public void onCancel() {
Log.d(TAG, "Buyer cancelled the PayPal experience.");
Toast.makeText(MainActivity.this, "Payment Cancelled", Toast.LENGTH_SHORT).show();
}
}, new OnError() {
@Override
public void onError(@NonNull ErrorInfo errorInfo) {
Log.d(TAG, String.format("Error: %s", errorInfo));
Toast.makeText(MainActivity.this, "Payment Error", Toast.LENGTH_SHORT).show();
}
}
);
以及在应用程序中
returnURL = BuildConfig.APPLICATION_ID + "://paypalpay";
paypalConfig = new CheckoutConfig(this,
CLIENT_ID,
Environment.SANDBOX,
CurrencyCode.GBP,
UserAction.PAY_NOW,
returnURL);
PayPalCheckout.setConfig(paypalConfig);
对于 (1),如果结账时的授权金额高于请求的订单金额,则可能会由于 PSD2 超额捕获要求而添加该缓冲。您无法自行调整;联系 PayPal 咨询此事。
如果“稍后付款”在到达 PayPal 之前显示为按钮/操作,则应该有办法忽略它。但是,如果 (2) 和 (3) 是对 PayPal 页面/活动的更改,即付款人基本上从您的应用程序转到 PayPal 后,则不可能也不保证进行更改。