Android支付接入(一):支付宝
相信相同过App获取利润的都会需要接入计费SDK,下边就跟大家走一遍完整的支付宝SDK接入,支付系列均通过计费Button触发,计费所有代码均放到一个java文件实现,这样虽然会有点违背java面向对象及封装性,但这样做的一个好处是可以快速集成到不同的游戏中,将改动的文件降到最低,各有利弊吧,如果大家有什么更好的方法,望一起交流,好了,废话不多说了,开始干活。PS:初次写博文,各方面还不够完善,看到此博文的朋友有什么意见或者建议请回复或者留言,你们的支持是我最大的动力。
注意事项:1.添加android.permission.INTERNET权限和android.permission.ACCESS_NETWORK_STATE权限2.代码中出现注释的地方重点看,没注释的地方可以不看3.参考下边代码及附带demo足以让你完成支付宝支付,若想了解支付宝更多相关问题请参考附带文档,demo及文档下载地址:http://pan.baidu.com/share/link?shareid=421254&uk=4731931314.想获取支付宝合作商户ID,及支付宝公钥请点击支付宝链接,生成密钥及PKCS8转码工具在文档中
好了,开始贴代码MainActivity(程序入口文件)package com.example.blogforzfb;import android.os.Bundle;import android.view.View;import android.app.Activity;
public class MainActivity extends Activity {
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub//拿到Fiap对象并传入容器Fiap fiap = new Fiap(MainActivity.this);//调用支付方法,并传入支付金额fiap.android_pay(0.01);}});}
}
Fiap.java(支付逻辑所在文件)package com.example.blogforzfb;
// 支付宝应用支付// 2012-09-20 14:41:47// (c) 2012 Catcap
import java.io.BufferedReader;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.InetSocketAddress;import java.net.Proxy;import java.net.URL;import java.net.URLEncoder;import java.security.KeyFactory;import java.security.PrivateKey;import java.security.PublicKey;import java.security.spec.PKCS8EncodedKeySpec;import java.security.spec.X509EncodedKeySpec;import java.util.ArrayList;import java.util.List;import javax.net.ssl.HostnameVerifier;import javax.net.ssl.HttpsURLConnection;import javax.net.ssl.SSLSession;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.message.BasicNameValuePair;import org.json.JSONException;import org.json.JSONObject;import com.alipay.android.app.IAlixPay;import com.alipay.android.app.IRemoteServiceCallback;import android.annotation.SuppressLint;import android.app.Activity;import android.app.AlertDialog;import android.app.ProgressDialog;import android.content.ComponentName;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.content.ServiceConnection;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.net.Uri;import android.os.Bundle;import android.os.Handler;import android.os.IBinder;import android.os.Looper;import android.os.Message;import android.os.RemoteException;import android.util.Log;import android.view.KeyEvent;import android.widget.Toast;
@SuppressLint ("HandlerLeak")public class Fiap{
//以下配置涉及到公司内容,所以略去,需自己配置