2012-02-29 73 views
3

我在Mobile Express Checkout LIbrary上工作。我只是我的應用程序重定向到PayPal但是,我有這樣的 -Android:我如何通過付款細節?

Transaction Invalid

可我現在該做些什麼?我沒有通過任何付款細節PayPal如何通過它,我如何完成它。任何人都可以幫我做到這一點?

+0

更重要的是,在完成developer.paypal.com上的註冊之後,我們需要再執行兩項任務才能在代碼中使用它們。 1.驗證帳戶 2.然後創建一個測試帳戶用於我們的代碼。 – 2012-03-01 05:31:26

+0

@SpK:我正在爲我的應用程序實現MECL,如果您已經完成集成,請指導我解決此問題,我想知道在SetExpressCheckout方法中發送哪些參數以從我的服務器獲取身份驗證令牌? – 2012-08-17 06:45:18

+0

@mirroredAbstraction你見過[this](http:// stackoverflow。com/a/9665324/940096) – Praveenkumar 2012-08-17 06:49:51

回答

0

我已經通過Sandbox生成的WebService傳遞了付款詳細信息。現在,我的付款過程出現新問題。檢查我更新的問題。

0

這是完整的代碼,它可以幫助您執行此PayPal功能。你剩下的工作只是在https://developer.paypal.com/

{ 

     CheckoutButton launchSimplePayment; 
     PayPal pp; 
     pp = PayPal.getInstance(); 

    if (pp == null) 
    { 
     createPaypalObject(); 
     //pp = PayPal.initWithAppID(this, "APP-80W284485P519543T",PayPal.ENV_SANDBOX); 
    } 
    else 
    { 
     pp.setShippingEnabled(false); 
     launchSimplePayment = pp.getCheckoutButton(this,PayPal.BUTTON_118x24, CheckoutButton.TEXT_PAY); 
     launchSimplePayment.setOnClickListener(this); 
     yourLayout.addView(launchSimplePayment);   

    } 

} 

    public void createPaypalObject() 
    { 
    pp = PayPal.initWithAppID(this, "APP-80W284485P519543T",PayPal.ENV_SANDBOX); 
    pp.setShippingEnabled(false); 
    launchSimplePayment = pp.getCheckoutButton(this,PayPal.BUTTON_118x24, CheckoutButton.TEXT_PAY); 
    launchSimplePayment.setOnClickListener(this); 
    handler1.sendEmptyMessage(0); 

    } 

    //do this onClick of that payment button 
    { 
     PayPalPayment payment = new PayPalPayment(); 
     payment.setSubtotal(new BigDecimal(price_of_song)); 
     payment.setCurrencyType("USD"); 
     payment.setRecipient("[email protected]"); //this id must be created by you on payment.paypal.com, this is trial id. 
     payment.setPaymentType(PayPal.PAYMENT_TYPE_GOODS); 
     Intent checkoutIntent = PayPal.getInstance().checkout(payment, this); 
     startActivityForResult(checkoutIntent, 1); 
    } 



/**This function shows the action by payment paypal*/ 
@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
switch(resultCode) { 
case Activity.RESULT_OK: 
//The payment succeeded 

     Toast.makeText(this,"Payment has done successfully",Toast.LENGTH_SHORT).show(); 

break; 
case Activity.RESULT_CANCELED: 

    Toast.makeText(this,"Payment has cancled",Toast.LENGTH_SHORT).show(); 
    //The payment was canceled 

break; 
case PayPalActivity.RESULT_FAILURE: 

    Toast.makeText(this,"Sorry Payment failed",Toast.LENGTH_SHORT).show(); 
    //The payment failed -- we get the error from the EXTRA_ERROR_ID and EXTRA_ERROR_MESSAGE 

} 
super.onActivityResult(requestCode, resultCode, data); 
} 

創建一個帳戶,如果有任何疑問,然後隨時隨時問我。

+0

老兄,你給我[移動支付庫](HTTPS: //www.x.com/developers/paypal/documentation-tools/sdk#7)我已經這樣做了。現在,我正在爲[Mobile Express Checkout Library](https://www.x.com/developers/paypal/documentation-tools/sdk#6)工作,爲什麼要使用此功能,因爲它支持信用卡和借記卡交易。 – Praveenkumar 2012-03-01 05:31:28

2

所以你從paypal獲得一個devicetoken,並從你的web服務獲得一個令牌?

你用PayPal URL重定向到PayPal頁面? ,因爲我在沙盒模式同樣的問題..沒有解決問題,但直播的網址爲我工作:

String url = "https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout-mobile&useraction=commit&token=" + token + "&drt=" + deviceToken 

令牌PARAM =交易令牌至極從web服務接收

deviceToken =令牌ü來自PayPal

拿到仍然想不通爲什麼我的沙箱沒有工作..

+0

只有使用此代碼才能從PayPal獲得設備令牌。看到我的[代碼](http://pastebin.com/raw.php?i=h9sqTWMc) – Praveenkumar 2012-03-06 04:45:30

+0

我認爲你的網址的參數是不正確的。我編輯我的答案上面的完整url – Luciano 2012-03-06 09:12:50

+0

而且你是否從你的web服務獲得令牌,我無法在你的代碼中找到它。 – Luciano 2012-03-06 09:21:38

1

所以,integration guide是信息實現這個時候的極好來源。基本上,你可以通過它傳遞你正在尋找的所有物品的URL。第16-17頁包含你想要的。基本上你想要一個URL傳遞給看起來是這樣的貝寶的服務器:

API_SERVER_ADDRESS METHOD = SetExpressCheckout & VERSION = XX.0 & USER = API_username & PWD = API_password & SIGNATURE = API_signature & PAYMENTREQUEST_0_AMT =量& PAYMENTREQUEST_0_CURRENCYCODE = currencyID

這很可能API服務器地址

https://www.paypal.com/cgi-bin/webscr

但是,如果您不想在文件中包含您的用戶名和密碼,通常的做法是通過網絡服務器搭載。