android基于PayPal实现移动在线付款

在开发有关于购物的app时经常需要涉及到有关付费的方式,这里我只实现了利用paypal实现用户在线付款,使用的是第三方包

使用的流程是:

1、导入paypal所需要的包,通过paypal提供的类库,创建Pay with  PayPal显示在页面上。

2、点击PayPal按钮后,将进行PayPal的支付流程

3、当付款成功后回到应用程序中

 

好吧,不多说了,直接说下流程,导包之后,首先创建paypal按钮,页面上会出现如下图所示

1     //ENVIRONMENT_NO_NETWORK;测试平台
2     private static final String CONFIG_ENVIRONMENT = PaymentActivity.ENVIRONMENT_PRODUCTION;    //正式付款平台-------注意,测试的时候用测试平台就行了
3     //配置客户机id(app应用程序ID)
4     //private static final String CONFIG_CLIENT_ID = "APP-80W284485P519543T";//测试ID
5     private static final String CONFIG_CLIENT_ID = "AWA00hBR8almg0HGK-MZ9QP3VoWhilm1Vvs93bVcERdKZFr0jjlsrq4quQRc";
6     //收款人的邮箱
7     private static final String CONFIG_RECEIVER_EMAIL = "XXX@163.com"; 

 

要使用paypal就必须要先加载PayPal

1    //加载Paypal    
2    public void loadpaypal(){
3             Intent intent = new Intent(this, PayPalService.class);     
4             intent.putExtra(PaymentActivity.EXTRA_PAYPAL_ENVIRONMENT, CONFIG_ENVIRONMENT);//测试平台
5             intent.putExtra(PaymentActivity.EXTRA_CLIENT_ID, CONFIG_CLIENT_ID);//客户端id
6             intent.putExtra(PaymentActivity.EXTRA_RECEIVER_EMAIL, CONFIG_RECEIVER_EMAIL);//邮箱
7             startService(intent);
8     }

 

点击按钮后创建PayPal页面

 1     //点击事件(点击付费按钮)
 2     @Override
 3     public void onClick(View v) {
 4             //BigDecimal第一个参数是表示当前订单的总金额,第二个参数表示:当前付款的币种,第三个参数是订单的描述
 5             PayPalPayment paypalment = new PayPalPayment(new BigDecimal(payProductMoney), "HKD", "總額:");
 6             Intent intent = new Intent(this, PaymentActivity.class);
 7             intent.putExtra(PaymentActivity.EXTRA_PAYPAL_ENVIRONMENT, CONFIG_ENVIRONMENT);
 8             intent.putExtra(PaymentActivity.EXTRA_CLIENT_ID, CONFIG_CLIENT_ID);
 9             intent.putExtra(PaymentActivity.EXTRA_RECEIVER_EMAIL, CONFIG_RECEIVER_EMAIL);
10             //app应用程序ID
11             intent.putExtra(PaymentActivity.EXTRA_CLIENT_ID, CONFIG_CLIENT_ID);
12             //客户端ID
13             intent.putExtra(PaymentActivity.EXTRA_PAYER_ID, "AQO6LxC7oVspFUW24bXk57W0ZOjcSDOr4lCnwL4WVQhZm_yZBlhQcLv31iNs");
14             intent.putExtra(PaymentActivity.EXTRA_PAYMENT, paypalment);
15             startActivityForResult(intent, 0);
16     }

如下图所示:

 

有PayPal账户的直接选择付款方式,然后来到此处

只要输入你的电子邮件和密码就能实现付款了,申明一下,这里的电子邮件是PayPal账户的电子邮件,大家如果在PayPal官网注册用过就知道了,这里我不多讲了。

付款成功后,自动回到程序,此时可以上网查看自己的paypal账户是否产生了一条交易记录

 

这里我贴上付款成功的代码,以供参考

 1     @Override
 2     protected void onActivityResult (int requestCode, int resultCode, Intent data) {
 3         if (resultCode == Activity.RESULT_OK) {
 4             PaymentConfirmation confirm = data.getParcelableExtra(PaymentActivity.EXTRA_RESULT_CONFIRMATION);
 5             if (confirm != null) {
 6                 try {
 7                     //付款成功之后,才开始下订单
 8                     insertOrder();//下单                   
 9                     
10                     Toast.makeText(ConfirmOrderActivity.this, "付款成功", Toast.LENGTH_LONG).show();
11                     getName.paymoneyFlag=null;
12                     Intent in=new Intent(ConfirmOrderActivity.this,UserOrderListActivity.class);
13                     startActivity(in);
14                     finish();       
15                     Log.i("paymentExample", confirm.toJSONObject().toString(4));
16                 } catch (JSONException e) {
17                    System.out.println("==========支付失败=============");
18                 }
19             }
20         }
21         else if (resultCode == Activity.RESULT_CANCELED) {
22                  getName.paymoneyFlag=null;
23                  System.out.println("===========取消订单===============");
24                  getName.paymoneyFlag=null;
25 //                 int ooid=getName.ooid;
26 //                 if(ooid>0){
27 //                     //改變訂單狀態
28 //                     new updateorderstatus(ooid).execute();
29 //                 }else{
30 //                     System.out.println("您還沒有下單哦!");
31 //                 }
32         }
33         else if (resultCode == PaymentActivity.RESULT_PAYMENT_INVALID) {           
34                  System.out.println("=============无效的支付============");
35         }
36     }

 

当以上步骤都实现了之后别忘记了在AndroidMainifest.xml中配置相关代码,如:

 1         <!-- PayPal付款 -->
 2         <service android:name="com.paypal.android.sdk.payments.PayPalService"
 3            android:exported="false" />
 4         <activity android:name="com.paypal.android.sdk.payments.PaymentActivity" />
 5         <activity android:name="com.paypal.android.sdk.payments.LoginActivity" />
 6         <activity android:name="com.paypal.android.sdk.payments.PaymentMethodActivity" />
 7         <activity android:name="com.paypal.android.sdk.payments.PaymentConfirmActivity" />
 8         <activity android:name="com.paypal.android.sdk.payments.PaymentCompletedActivity" />
 9      
10         <activity android:name="io.card.payment.CardIOActivity"
11                   android:configChanges="keyboardHidden|orientation" />
12         <activity android:name="io.card.payment.DataEntryActivity" />

 

好了以上便是我在项目中用到的整个付款流程....

              

 

 

 

 

posted @ 2013-12-14 17:36  小小缘  阅读(1930)  评论(1编辑  收藏  举报