Android——支付宝

Posted 张先森的云

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android——支付宝相关的知识,希望对你有一定的参考价值。

相信相同过App获取利润的都会需要接入计费SDK,下边就跟大家走一遍完整的支付宝SDK接入,支付系列均通过计费Button触发,计费所有代码均放到一个java文件实现,这样虽然会有点违背java面向对象及封装性,但这样做的一个好处是可以快速集成到不同的游戏中,将改动的文件降到最低,各有利弊吧,如果大家有什么更好的方法,望一起交流,好了,废话不多说了,开始干活。

PS:初次写博文,各方面还不够完善,看到此博文的朋友有什么意见或者建议请回复或者留言,你们的支持是我最大的动力。 注意事项 1.添加android.permission.INTERNET权限和android.permission.ACCESS_NETWORK_STATE权限 2.代码中出现注释的地方重点看,没注释的地方可以不看 3.想获取支付宝合作商户ID,及支付宝公钥请点击支付宝链接,生成密钥及PKCS8转码工具在文档中 代码   MainActivity:

 

[java]  view plain copy
  1. package com.example.blogforzfb;  
  2.   
  3. import android.os.Bundle;  
  4. import android.view.View;  
  5. import android.app.Activity;  
  6.   
  7. public class MainActivity extends Activity   
  8.   
  9.  @Override  
  10.  protected void onCreate(Bundle savedInstanceState)   
  11.   super.onCreate(savedInstanceState);  
  12.   setContentView(R.layout.activity_main);  
  13.   findViewById(R.id.button1).setOnClickListener(  
  14.     new View.OnClickListener()   
  15.      @Override  
  16.      public void onClick(View v)   
  17.       // TODO Auto-generated method stub  
  18.       // 拿到Fiap对象并传入容器  
  19.       Fiap fiap = new Fiap(MainActivity.this);  
  20.       // 调用支付方法,并传入支付金额  
  21.       fiap.android_pay(0.01);  
  22.        
  23.     );  
  24.    
  25.   
  26.   

Fiap.java(支付逻辑所在文件)   [java]  view plain copy
  1. package com.example.blogforzfb;  
  2.   
  3.   
  4. // 支付宝应用支付  
  5. // 2012-09-20 14:41:47  
  6. // (c) 2012 Catcap  
  7.   
  8.   
  9. import java.io.BufferedReader;  
  10. import java.io.File;  
  11. import java.io.FileOutputStream;  
  12. import java.io.IOException;  
  13. import java.io.InputStream;  
  14. import java.io.InputStreamReader;  
  15. import java.io.OutputStream;  
  16. import java.net.HttpURLConnection;  
  17. import java.net.InetSocketAddress;  
  18. import java.net.Proxy;  
  19. import java.net.URL;  
  20. import java.net.URLEncoder;  
  21. import java.security.KeyFactory;  
  22. import java.security.PrivateKey;  
  23. import java.security.PublicKey;  
  24. import java.security.spec.PKCS8EncodedKeySpec;  
  25. import java.security.spec.X509EncodedKeySpec;  
  26. import java.util.ArrayList;  
  27. import java.util.List;  
  28. import javax.net.ssl.HostnameVerifier;  
  29. import javax.net.ssl.HttpsURLConnection;  
  30. import javax.net.ssl.SSLSession;  
  31. import org.apache.http.client.entity.UrlEncodedFormEntity;  
  32. import org.apache.http.message.BasicNameValuePair;  
  33. import org.json.JSONException;  
  34. import org.json.JSONObject;  
  35. import com.alipay.android.app.IAlixPay;  
  36. import com.alipay.android.app.IRemoteServiceCallback;  
  37. import android.annotation.SuppressLint;  
  38. import android.app.Activity;  
  39. import android.app.AlertDialog;  
  40. import android.app.ProgressDialog;  
  41. import android.content.ComponentName;  
  42. import android.content.Context;  
  43. import android.content.DialogInterface;  
  44. import android.content.Intent;  
  45. import android.content.ServiceConnection;  
  46. import android.content.pm.PackageInfo;  
  47. import android.content.pm.PackageManager;  
  48. import android.net.ConnectivityManager;  
  49. import android.net.NetworkInfo;  
  50. import android.net.Uri;  
  51. import android.os.Bundle;  
  52. import android.os.Handler;  
  53. import android.os.IBinder;  
  54. import android.os.Looper;  
  55. import android.os.Message;  
  56. import android.os.RemoteException;  
  57. import android.util.Log;  
  58. import android.view.KeyEvent;  
  59. import android.widget.Toast;  
  60.   
  61.   
  62.   
  63.   
  64. @SuppressLint ("HandlerLeak")  
  65. public class Fiap  
  66.     Activity mActivity = null;  
  67.       
  68.     // ===================================  
  69.     // JAVA 的接口  
  70.     // ===================================  
  71.      
  72.       
  73.     public Fiap(Activity activity)  
  74.      
  75.     mActivity = activity;  
  76.      
  77.       
  78.       
  79.     //这里传过来的是想支付多少钱(最好定义成double的,方便调试,毕竟每次测试都支付几元大洋不是每个人都负担的起的)  
  80.     public void android_pay (CodeDay#8:支付宝都在用的容器技术了解一下

    复旦研究小程序漏洞获顶会杰出论文奖,微信支付宝都中枪

    单个APP接入多个微信支付宝支付的一种解决方案

    刷脸支付的奥秘解析

    支付宝,微信支付如何安全扫码

    银联与支付宝