【发布时间】:2020-10-26 01:35:38
【问题描述】:
我已经完成了这个项目的一半,但我遇到了一些问题。我正在尝试使用贝宝集成在我的 android 应用上接受付款。当我付款的时候,我得到了两个错误。当我尝试使用我的贝宝登录信息付款时,出现系统错误,请稍后再试,然后当我尝试使用卡信息付款时,我收到付款失败:商家不接受此类付款。我不确定发生了什么。有人可以帮帮我吗。提前致谢。这是我的代码
public class PaymentPageActivity extends AppCompatActivity {
private static final int PAYPAL_REQUEST_CODE=7777;
private static PayPalConfiguration config=new PayPalConfiguration().environment(PayPalConfiguration.ENVIRONMENT_SANDBOX)
.clientId(Config.PAYPAL_CLIENT_ID);
Button btnpaynow;
EditText edtamount;
String amount;
@Override
protected void onDestroy() {
stopService(new Intent(this, PayPalService.class));
super.onDestroy();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_payment_page);
getWindow().setStatusBarColor(ContextCompat.getColor(this, R.color.black));
//start paypal service
Intent intent=new Intent(this,PayPalService.class);
intent.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION,config);
startService(intent);
btnpaynow=findViewById(R.id.btnPayNow);
edtamount=findViewById(R.id.edtAmount);
btnpaynow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
processPayment();
}
});
}
private void processPayment() {
amount=edtamount.getText().toString();
PayPalPayment payPalPayment = new PayPalPayment(new BigDecimal("1.75"), "USD", "ad",PayPalPayment.PAYMENT_INTENT_SALE);
Intent intent=new Intent(this, PaymentActivity.class);
intent.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION,config);
intent.putExtra(PaymentActivity.EXTRA_PAYMENT,payPalPayment);
startActivityForResult(intent,PAYPAL_REQUEST_CODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
if(requestCode==PAYPAL_REQUEST_CODE){
if(resultCode==RESULT_OK){
PaymentConfirmation confirmation=data.getParcelableExtra(PaymentActivity.EXTRA_RESULT_CONFIRMATION);
if(confirmation!=null){
try {
String paymentDetails=confirmation.toJSONObject().toString(4);
startActivity(new Intent(this, PayPalPaymentDetails.class).
putExtra("Payment Details",paymentDetails)
.putExtra("Amount",amount)
);
} catch (JSONException e) {
e.printStackTrace();
}
}
}else if(resultCode== Activity.RESULT_CANCELED){
Toast.makeText(this, "Cancel", Toast.LENGTH_SHORT).show();
}else if(resultCode==PaymentActivity.RESULT_EXTRAS_INVALID){
Toast.makeText(this, "Invalid", Toast.LENGTH_SHORT).show();
}
}
super.onActivityResult(requestCode, resultCode, data);
}
}
【问题讨论】:
-
为什么是
.toString(4)? -
我正在关注本教程,他们把它放了,所以我放了它。没有必要吗?
标签: android paypal paypal-rest-sdk