Android PaymentActivity.EXTRA_付款无效

Android PaymentActivity.EXTRA_付款无效,android,paypal,Android,Paypal,我正在开发一个安卓应用程序,我试图创建一个贝宝按钮来获取一些感谢金:),因为有规定,我不使用捐款。无论如何,我尝试使用PayPal Android SDK(),当我使用ENV_NONE、ENV_SANDBOX、ENV_LIVE:PaymentActivity.EXTRA_付款无效时,我总是在日志中收到一个错误 我使用以下代码 protected void onCreate(Bundle savedInstanceState) { ... Intent intent = new Intent(th

我正在开发一个安卓应用程序,我试图创建一个贝宝按钮来获取一些感谢金:),因为有规定,我不使用捐款。无论如何,我尝试使用PayPal Android SDK(),当我使用ENV_NONE、ENV_SANDBOX、ENV_LIVE:PaymentActivity.EXTRA_付款无效时,我总是在日志中收到一个错误

我使用以下代码

protected void onCreate(Bundle savedInstanceState) {
...
Intent intent = new Intent(this, PayPalService.class);

intent.putExtra(PaymentActivity.EXTRA_PAYPAL_ENVIRONMENT, CONFIG_ENVIRONMENT);
intent.putExtra(PaymentActivity.EXTRA_CLIENT_ID, CONFIG_CLIENT_ID);
intent.putExtra(PaymentActivity.EXTRA_RECEIVER_EMAIL, CONFIG_RECEIVER_EMAIL);
startService(intent);
initLibrary();
showPayPalButton();
}

public void initLibrary() {
PayPal pp = PayPal.getInstance();
if (pp == null) {  // Test to see if the library is already initialized
// This main initialization call takes your Context, AppID, and target server
pp = PayPal.initWithAppID(this,"<mycode/deleted from post>", PayPal.ENV_NONE);
// Required settings:
// Set the language for the library
pp.setLanguage("en_US");
// Some Optional settings:
// Sets who pays any transaction fees. Possible values are:
// FEEPAYER_SENDER, FEEPAYER_PRIMARYRECEIVER, FEEPAYER_EACHRECEIVER, and       FEEPAYER_SECONDARYONLY
pp.setFeesPayer(PayPal.FEEPAYER_EACHRECEIVER);
// true = transaction requires shipping
pp.setShippingEnabled(true);
_paypalLibraryInit = true;
}
}


private void showPayPalButton() {
// Generate the PayPal checkout button and save it for later use
PayPal pp = PayPal.getInstance();
launchPayPalButton = pp.getCheckoutButton(this, PayPal.BUTTON_278x43, CheckoutButton.TEXT_PAY);
// The OnClick listener for the checkout button
launchPayPalButton.setOnClickListener(this);

// Add the listener to the layout
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams     (LayoutParams.WRAP_CONTENT,
    LayoutParams.WRAP_CONTENT);
    params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
    params.bottomMargin = 10;
    launchPayPalButton.setLayoutParams(params);
    launchPayPalButton.setId(PAYPAL_BUTTON_ID);
((LinearLayout)     findViewById(R.id.insert_expense_layout)).addView(launchPayPalButton);
((LinearLayout) findViewById(R.id.insert_expense_layout)).setGravity(Gravity.CENTER_HORIZONTAL);
}

public void PayPalButtonClick(View arg0) {

// Create a basic PayPal payment
PayPalPayment payment = new PayPalPayment();

// Set the currency type
payment.setCurrencyType("USD");

// Set the recipient for the payment (can be a phone number)

// Set the payment amount, excluding tax and shipping costs
payment.setSubtotal(new BigDecimal(1));

Intent intent = new Intent(this, PaymentActivity.class);
intent.putExtra(PaymentActivity.EXTRA_CLIENT_ID, CONFIG_CLIENT_ID);
intent.putExtra(PaymentActivity.EXTRA_RECEIVER_EMAIL, CONFIG_RECEIVER_EMAIL);
//intent.putExtra(PaymentActivity.EXTRA_PAYER_ID, ""); //with this line uncommented it also fails
intent.putExtra(PaymentActivity.EXTRA_PAYMENT, payment);
startActivityForResult(intent, 0);

}

public void PayPalActivityResult(int requestCode, int resultCode, Intent intent) {
....        
}

@Override
public void onClick(View v) {
PayPalButtonClick(v);
}
创建时受保护的void(Bundle savedInstanceState){
...
Intent Intent=新Intent(这个,PayPalService.class);
intent.putExtra(PaymentActivity.EXTRA\u PAYPAL\u环境,CONFIG\u环境);
intent.putExtra(PaymentActivity.EXTRA\u CLIENT\u ID,CONFIG\u CLIENT\u ID);
intent.putExtra(PaymentActivity.EXTRA\u RECEIVER\u EMAIL,CONFIG\u RECEIVER\u EMAIL);
startService(意向);
initLibrary();
showPayPalButton();
}
公共图书馆(){
PayPal pp=PayPal.getInstance();
if(pp==null){//测试库是否已经初始化
//此主初始化调用接受您的上下文、AppID和目标服务器
pp=PayPal.initWithAppID(此“”,PayPal.ENV_NONE);
//所需设置:
//设置库的语言
pp.setLanguage(“en_US”);
//一些可选设置:
//设置支付任何交易费用的人。可能的值为:
//付款人发送人、付款人主要接收人、付款人各接收人、付款人次要接收人
pp.setFeesPayer(PayPal.FEEPAYER\u每个接收者);
//true=事务需要发送
pp.setShippingEnabled(真);
_paypalLibraryInit=true;
}
}
私有void showPayPalButton(){
//生成PayPal结帐按钮并将其保存以供以后使用
PayPal pp=PayPal.getInstance();
launchPayPalButton=pp.getCheckButton(这是PayPal.BUTTON\u 278x43,CheckButton.TEXT\u PAY);
//签出按钮的OnClick侦听器
launchPayPalButton.setOnClickListener(此);
//将侦听器添加到布局中
RelativeLayout.LayoutParams params=新的RelativeLayout.LayoutParams(LayoutParams.WRAP_内容,
LayoutParams.WRAP_内容);
params.addRule(RelativeLayout.ALIGN\u PARENT\u BOTTOM);
参数bottomMargin=10;
启动PayPalButton.setLayoutParams(参数);
启动PayPalButton.setId(PAYPAL_按钮_ID);
((线性布局)findViewById(R.id.insert_expense_layout)).addView(launchPayPalButton);
((线性布局)findViewById(R.id.insert\u expense\u layout)).setGravity(重心、中心、水平);
}
公共无效PayPalButtonClick(视图arg0){
//创建一个基本的贝宝支付
PayPalPayment付款=新PayPalPayment();
//设置货币类型
付款。设置货币类型(“美元”);
//设置付款的收件人(可以是电话号码)
//设置付款金额,不包括税费和运费
付款。设置总额(新的大小数(1));
意向意向=新意向(此,PaymentActivity.class);
intent.putExtra(PaymentActivity.EXTRA\u CLIENT\u ID,CONFIG\u CLIENT\u ID);
intent.putExtra(PaymentActivity.EXTRA\u RECEIVER\u EMAIL,CONFIG\u RECEIVER\u EMAIL);
//intent.putExtra(PaymentActivity.EXTRA\u PAYER\u ID,“”;//此行未注释时,也会失败
意向。额外支付(PaymentActivity.EXTRA_PAYMENT,PAYMENT);
startActivityForResult(意向,0);
}
public void PayPalActivityResult(int请求代码、int结果代码、意图){
....        
}
@凌驾
公共void onClick(视图v){
PayPalButtonClick(v);
}
我没有主意了,我还没有找到任何有用的文件


提前谢谢你的帮助

请检查您是否导入了正确的付款类别:

com.paypal.android.sdk.payments.PayPalPayment

显示了应如何实例化此类:


PayPalPayment thingToBuy=新的PayPalPayment(新的大十进制(“1.75”),“美元”,“时髦牛仔裤”)

谢谢,伙计!paypal.android.MEP.PayPalPayment以前是导入的,一旦我更改了它,我就可以进入paypal的页面。谢谢!