【发布时间】:2019-03-12 19:10:57
【问题描述】:
我正在使用 firebase 为客户制作电子商务 Android 应用程序。我需要整合贝宝,以便从客户的贝宝中扣除付款并收到商家(即我的客户)贝宝账户。 对于贝宝集成,我查看了教程并在我的客户贝宝上创建了两个沙盒帐户。我测试了应用程序,付款成功从我客户的沙箱(买家帐户)中扣除。
但是现在我对一件事感到困惑:由于这将是一个电子商务应用程序,因此客户将在世界任何地方都是随机的,他将从他的贝宝账户中支付一笔金额,这笔款项将转入贝宝商家的我的客户的帐户。我将在主要活动中设置我客户的客户 ID,这是由贝宝在他的贝宝业务帐户中提供给他的,但是客户从他的贝宝帐户登录并支付购物账单的编码是什么?是否需要单独编写一些代码让客户支付他的贝宝帐户或这会自动完成?
例如,我有两个沙盒帐户:1-) Saboorsiddiuque880-buyer@gmail.com 2-) Saboorsiddique880-facilitator@gmail.com
我的买家帐户中有 10000 美元,我的促进者帐户中有 100 美元。
我希望当我购物时,例如从我的买家账户中购买 5 美元,然后应该从我的买家账户中扣除 5 美元并添加到商家账户中,从而使商家的余额为 105 美元。问题是款项已成功从买家账户中扣除,但并未添加到商家账户。我做错了什么吗?
下面是我的代码:
// this config variable is declared and defined in class scope
private static PayPalConfiguration config = new
PayPalConfiguration().environment(PayPalConfiguration.ENVIRONMENT_SANDBOX)
.clientId("My sandbox client ID");
// this code is in onCreateView Method of my fragment to start the paypal
//service
Intent intent = new Intent(getActivity(), PayPalService.class);
intent.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, config);
getActivity().startService(intent);
// this code is for the checkout button
PayPalPayment payment = new PayPalPayment(new BigDecimal("1.75"), "USD",
"hipster jeans",PayPalPayment.PAYMENT_INTENT_SALE);
Intent intent = new Intent(getActivity(),
PaymentActivity.class);
// send the same configuration for restart resiliency
intent.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION,
config);
intent.putExtra(PaymentActivity.EXTRA_PAYMENT, payment);
startActivityForResult(intent, 0);
// this code is in OnActivityResult Method
if (resultCode == Activity.RESULT_OK) {
PaymentConfirmation confirm =
data.getParcelableExtra(PaymentActivity.EXTRA_RESULT_CONFIRMATION);
if (confirm != null) {
try {
Log.i("paymentExample", confirm.toJSONObject().toString(4));
} catch (JSONException e) {
Log.e("paymentExample", "an extremely unlikely failure
occurred: ", e);
}
}
}
else if (resultCode == Activity.RESULT_CANCELED) {
Log.i("paymentExample", "The user canceled.");
Toast.makeText(getActivity(),"The user
canceled.",Toast.LENGTH_SHORT).show();
}
else if (resultCode == PaymentActivity.RESULT_EXTRAS_INVALID) {
Log.i("paymentExample", "An invalid Payment or PayPalConfiguration
was submitted. Please see the docs.");
}
【问题讨论】: