android - Paypal 整合 - 如何?

标签 android paypal

我想有一个集成了 Paypal 服务的应用程序,但我总是出错

E/AndroidRuntime: FATAL EXCEPTION: main
                                               Process: com.example.roxy.asdasd, PID: 28355
                                               android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.roxy.asdasd/com.paypal.android.sdk.payments.PayPalPayment}; have you declared this activity in your AndroidManifest.xml?

这是我的 MainActivity.class

public class MainActivity extends AppCompatActivity {
    PayPalConfiguration config;
    String paypalclient =        "AUekxf3GDMWcMQVJwTQXMn6OVZL5uiiL7feATc3_ZxLjfS6Wg4qL7nMcoRcSB10Jpniq1277H6jCIJ1";
    Intent service;
    int payrequestcode = 99;
    Button k;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    k = (Button)findViewById(R.id.k);

    config = new PayPalConfiguration()
            .environment(PayPalConfiguration.ENVIRONMENT_SANDBOX)
            .clientId(paypalclient);

    service = new Intent(this, PayPalService.class);
    service.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, config);
    startService(service);
    k.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
           get();
        }
    });

}

public void get(){
   PayPalPayment payment = new PayPalPayment(new 
    java.math.BigDecimal(10),"USD", "Test payment with paypal",
           PayPalPayment.PAYMENT_INTENT_SALE);

    Intent intent = new Intent(this, PayPalPayment.class);
    intent.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, config);




intent.putExtra(com.paypal.android.sdk.payments.PaymentActivity.EXTRA_PAYMENT, payment);
   startActivityForResult(intent, payrequestcode);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == payrequestcode){
        if (resultCode == Activity.RESULT_OK){
            PaymentConfirmation confirmation = data.getParcelableExtra(PaymentActivity.EXTRA_RESULT_CONFIRMATION);

            if (confirmation != null){
                String state = confirmation.getProofOfPayment().getState();;
                if (state.equals("approved")){
                    Toast.makeText(getApplicationContext(),"Success!", Toast.LENGTH_SHORT).show();
                }else {
                    Toast.makeText(getApplicationContext(),"Error!", Toast.LENGTH_SHORT).show();
                }
            }else {
                Toast.makeText(getApplicationContext(),"Null!", Toast.LENGTH_SHORT).show();
            }


        }
    }
}
}

这是我的 Manifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.roxy.asdasd">

<user-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".PaymentActivity" />

    <service
        android:name="com.paypal.android.sdk.payments.PayPalService"
        android:exported="false" />
</application>

</manifest>

我希望有人能帮助我,对不起,我不擅长编码,只是一个新手

最佳答案

检查你的 get 方法:

public void get(){
   PayPalPayment payment = new PayPalPayment(new 
    java.math.BigDecimal(10),"USD", "Test payment with paypal",
           PayPalPayment.PAYMENT_INTENT_SALE);

    Intent intent = new Intent(this, PayPalPayment.class);
    intent.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, config);

那里有一个错误,PayPalPayment 类不是 Activity 类,您必须改用 PaymentActivity

public void get(){
   PayPalPayment payment = new PayPalPayment(new 
    java.math.BigDecimal(10),"USD", "Test payment with paypal",
           PayPalPayment.PAYMENT_INTENT_SALE);

    Intent intent = new Intent(this, PaymentActivity.class);
    intent.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, config);

请参阅此文档:https://github.com/paypal/PayPal-Android-SDK/blob/master/docs/single_payment.md

关于android - Paypal 整合 - 如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47511550/

相关文章:

Android - 谷歌地图 +-180 经度和 90 纬度

PayPal 已收费,但付款响应为 "INVALID"

paypal - Doexpresscheckoutpayment 支付未被用户授权

Magento 版1.4.1.1 一页结账不显示paypal支付信息

xamarin - Xamarin 中的信用卡支付

java - 我的 Java Web 服务返回一个包裹在 html 中的 JSON 字符串,我如何删除 HTML

php - 图片存储在mysql数据库中

android - 在android中从C2DM获取注册ID的问题

android - 在 ant 中使用密码自动签署应用程序

php - 提交 Paypal 表单时的变量