【问题标题】:How to integrate paypal to android app using webview如何使用 webview 将 paypal 集成到 android 应用程序
【发布时间】:2013-05-10 19:22:54
【问题描述】:

我想将 paypal 集成到我的应用程序中。在我看到这个之前,我已经快到了:https://developer.paypal.com/webapps/developer/support/faq#non-US-dev Paypal 不允许非美国开发人员使用 REST API。所以我剩下的选择是经典的api。这就是问题所在。我不知道如何使用它们。

我打算使用 NVP api。我不知道该怎么做,但下面是我计划做的流程图。我需要在 checkout.java 中设置商品编号、描述、价格等,然后发送到 www.domain.com/setsessions.php

我不确定它是否会起作用。但即使可以,那我想新的“意图”如何检测用户是否支付成功、支付失败或取消支付。

我需要这方面的帮助。真是令人沮丧..已经尝试整合贝宝将近 2 周。感觉太没效率了。。

这样可以吗?或者有没有更好的方法? 我的要求是设置发票编号,货号,描述,价格,位置,所有这些都是应用程序所必需的。

【问题讨论】:

    标签: android android-intent paypal paypal-nvp


    【解决方案1】:

    MainActivity.java

    public class PizzaMain extends Activity implements OnClickListener {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    
            PayPal ppObj = PayPal.initWithAppID(this.getBaseContext(), "APP-80W284485P519543T", PayPal.ENV_NONE);
    
            CheckoutButton launchPayPalButton = ppObj.getCheckoutButton(this, PayPal.BUTTON_152x33, CheckoutButton.TEXT_PAY);
            RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    
            params.addRule(RelativeLayout.CENTER_HORIZONTAL);
    
            launchPayPalButton.setLayoutParams(params);
            launchPayPalButton.setOnClickListener(this);
    
            ((RelativeLayout) findViewById(R.id.mRlayout1)).addView(launchPayPalButton);
        }
    
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            PayPalPayment newPayment = new PayPalPayment();
            char val[] = { '5', '0' };
            BigDecimal obj_0 = new BigDecimal(val);
            newPayment.setSubtotal(obj_0);
            newPayment.setCurrencyType("USD");
            newPayment.setRecipient("my@email.com");
            newPayment.setMerchantName("My Company");
            Intent paypalIntent = PayPal.getInstance().checkout(newPayment, this);
            this.startActivityForResult(paypalIntent, 1);
        }
    
        @SuppressWarnings("unused")
        @Override
        public void onActivityResult(int requestCode, int resultCode, Intent data) {
            switch (resultCode) {
                case Activity.RESULT_OK:
                // The payment succeeded
                String payKey = data.getStringExtra(PayPalActivity.EXTRA_PAY_KEY);
                // Tell the user their payment succeeded
                break;
                case Activity.RESULT_CANCELED:
                // The payment was canceled
                // Tell the user their payment was canceled
                break;
                case PayPalActivity.RESULT_FAILURE:
                // The payment failed -- we get the error from the EXTRA_ERROR_ID
                // and EXTRA_ERROR_MESSAGE
                String errorID = data.getStringExtra(PayPalActivity.EXTRA_ERROR_ID);
                String errorMessage = data.getStringExtra(PayPalActivity.EXTRA_ERROR_MESSAGE);
                // Tell the user their payment was failed.
                break;
            }
        }
    }
    

    并在您的 AndroidManifest.xml 文件中授予以下权限。

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    

    并将 Activity 添加到您的 AndroidManifest.xml 文件中。

    <activity
        android:name="com.paypal.android.MEP.PayPalActivity"
        android:configChanges="keyboardHidden|orientation"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" />
    

    将 PayPal_MPL.jar Jar 文件作为参考库添加到您的应用程序中

    【讨论】:

    猜你喜欢
    • 2013-08-18
    • 2011-11-29
    • 2011-12-20
    • 2014-01-29
    • 2014-08-08
    • 1970-01-01
    • 2017-07-05
    • 2016-05-27
    • 2012-05-05
    相关资源
    最近更新 更多