我想有一个集成了 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/