【问题标题】:paypal system error/merchant not accepting payments of this type贝宝系统错误/商家不接受此类付款
【发布时间】: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


【解决方案1】:

当我尝试使用信用卡信息付款时,我收到付款失败:商家不接受此类付款。我不知道发生了什么

事情就是这样。该帐户不接受“卡”类型的付款。您正在使用非常旧的已弃用 SDK。它不会起作用。

如果您需要通过原生 SDK 接受 PayPal 付款,Braintree Mobile SDK 是唯一受支持的 SDK:https://developer.paypal.com/docs/accept-payments/express-checkout/ec-braintree-sdk/get-started/。此集成的服务器端部分需要 Web 服务。


否则,集成非原生 JavaScript PayPal 结账,https://developer.paypal.com/docs/checkout/

【讨论】:

  • 感谢您的回复。我正在为我的网络服务器使用 firebase,所以我不确定 Braintree 移动 sdk 将如何工作。你能告诉我我需要做什么吗?
  • 了解如何实现 Braintree 集成,包括服务器端部分,然后去做
猜你喜欢
  • 2017-10-14
  • 2017-08-22
  • 2018-03-27
  • 2018-03-27
  • 2016-07-31
  • 2013-02-26
  • 2018-02-24
  • 2016-06-13
  • 2014-12-11
相关资源
最近更新 更多