It might sound a little odd but I am in the final phases of finishing up my app that would pay users.
There is an activity in the app where as and when the users use the app, money keeps accruing. I have a button in that activity called Cash Out which when the user reaches a certain amount can be clicked and is supposed to let the users take the money accrued from the app.
I have contacted Google Checkout and Paypal so far and Paypal suggested personal payments can be integrated in my case and sent me the Paypal for Android API doc. The doc itself is very useful but does not describe this kind of a scenario that I am looking for. Any clues how to integrate such a functionality. I appreciate anyone willing to help me out.
Wow!! Big challenge now. Paypal Technical Support and my conversation thread below: They don't support this functionality yet. So I guess I have something in my hand that has not been done.
Customer 11/03/2010 01:05 PM
I had a feeling that this feature is not supported by any vendor like PayPal or Google Checkout since it is payment processing the other way round which has never been done before in an App.
So let me ask you this since this is a major functionality in the app and we have to do this ASAP here is the question.
We have data of the users' email address and how much cash needs to be sent to each one of them. Can we run a batch job from the server and send data to Paypal with the User email addresses and amounts to process the payments. If yes please let me know how is that possible?
Thanks for your help.
Response (Vivek) 11/03/2010 12:42 PM
Hi ,
As mentioned in the "MPL Developer Guide and Reference - Android OS Edition" (that comes in Documentation with Library package), Page 32, which has only to do with Fees.
Unfortunately, right now it is not possible to functionally achieve the requirement of being able to initiate receive transaction from ones own device and being able to receive money via the app.
However, your idea is very thought provoking and it would be great if you could give more information on businesswise what you are trying to achieve and I can escalate this and see if it qualifies for future feature request.
Thanks, Vivek
Customer () 11/03/2010 10:57 AM
By the way we are using the Mobile Payments Library for Android and Type Personal Payments which was suggested by a Paypal Tech Rep w.r.t my last question.
Here is the code snippet.
CheckoutButton launchPayPalButton = ppObj.getPaymentButton(PayPal.BUTTON_278x43, this, PayPal.PAYMENT_TYPE_PERSONAL);
Thanks.
Customer () 11/03/2010 10:53 AM
Your question#1
You had mentioned that you want to send user (user of the android app) the money from the Android device the user himself is using and the money comes from the your account. Is this true? -
Answer #1 That is CORRECT.
Your Question # 2
"If this is the case, why cannot you set the above android user and recipient and you login and send money. But if I am right you want the above android user to initiate the operation and to take money from your account. Technically speaking, you want to do retrieve money and not a send money in some way, is this true?"
My Answer # 2
Since the Android App user initiates the transaction from his phone app there is no way I can login at that time from his phone. So your understanding is CORRECT that we want the user to initiate the operation and to take money from our account and we will set how much and what email address gets it programmatically from the App. So basically YES we want the App user to retrieve money from our account and not pay us.
Response (Vivek) 11/03/2010 10:46 AM
Hi ,
Thank you for contacting us and we are glad to be of assistance to you.
I am currently researching on your question and will give you an update ASAP. Meanwhile, I have a few clarifications on your question:
Q: When testing the code in Paypal Sandbox environment we notice that everytime the button is clicked the recipient and the amount is set as we want but it brings up the login screen. * Yes, you set the amount and recipient in the code programmatically. The login it asks for is the sender of the transaction. Can you please verify which button or operation you are trying to do?
The whole purpose of having an Android app for business
You had mentioned that you want to send user (user of the android app) the money from the Android device the user himself is using and the money comes from the your account. Is this true? If this is the case, why cannot you set the above android user and recipient and you login and send money. But if I am right you want the above android user to initiate the operation and to take money from your account. Technically speaking, you want to do retrieve money and not a send money in some way, is this true?
Please clarify.
Thanks, Vivek
Customer () 11/03/2010 08:19 AM
Hi,
We are currently testing Paypal Integration functionality for our Android Application where we want Users to use paypal to receive accrued cash from our account.
We have set up the Sandbox environment and following is the code we have used.
Here is the problem.
Once the user of the App clicks the Paypal button we want to programatically set the amount and the recipient email from the App as to who and how much can be taken out from our bank account.
newPayment.setAmount("10.00"); //lets say 10USD.
newPayment.setRecipient(""); //sandbox email setup as a personal account.
When testing the code in Paypal Sandbox environment we notice that everytime the button is clicked the recipient and the amount is set as we want but it brings up the login screen. I dont understand how can we make this work? Remember in this case we want to preauthorize the recipient to take accrued money from our account through paypal checkout button and not the other way round.
This is basically a personal payment situation where we want to send money to the user and not receive from the user of the App. Please let us know what is a possible resolution to our problem?
If this does not work is there any other way we can use Paypal to pay Android App Users using their email address. Once again this is not a normal checkout situation where the person checking out pays the business.
PayPal ppObj = PayPal.initWithAppID(this.getBaseContext(), "APP-80W284485P519543T", PayPal.ENV_SANDBOX);
CheckoutButton launchPayPalButton = ppObj.getPaymentButton(PayPal.BUTTON_278x43, this, PayPal.PAYMENT_TYPE_PERSONAL);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.BELOW, R.id.refresh);
params.bottomMargin = 10;
launchPayPalButton.setLayoutParams(params);
launchPayPalButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
PayPalPayment newPayment = new PayPalPayment();
newPayment.setAmount("10.00");
newPayment.setCurrency("USD");
newPayment.setRecipient("");
newPayment.setTax("0.00");
newPayment.setShipping("0.00");
newPayment.setItemDescription("Your Payment");
newPayment.setSenderEmail("");
newPayment.setMerchantName("My Test Store");
Intent paypalIntent = new Intent(getApplicationContext(), PayPalActivity.class);
paypalIntent.putExtra(PayPalActivity.EXTRA_PAYMENT_INFO, newPayment);
UrMoney.this.startActivityForResult(paypalIntent, 1);
}
});
((RelativeLayout)findViewById(R.id.urmoney1)).addView(launchPayPalButton);
Thanks for the help.