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
- package com.example.blogforzfb;
- import android.os.Bundle;
- import android.view.View;
- import android.app.Activity;
- public class MainActivity extends Activity
- @Override
- protected void onCreate(Bundle savedInstanceState)
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- findViewById(R.id.button1).setOnClickListener(
- new View.OnClickListener()
- @Override
- public void onClick(View v)
- // TODO Auto-generated method stub
- // 拿到Fiap对象并传入容器
- Fiap fiap = new Fiap(MainActivity.this);
- // 调用支付方法,并传入支付金额
- fiap.android_pay(0.01);
- );
Fiap.java(支付逻辑所在文件) [java] view plain copy
- 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
- Activity mActivity = null;
- // ===================================
- // JAVA 的接口
- // ===================================
- public Fiap(Activity activity)
- mActivity = activity;
- //这里传过来的是想支付多少钱(最好定义成double的,方便调试,毕竟每次测试都支付几元大洋不是每个人都负担的起的)
- public void android_pay (CodeDay#8:支付宝都在用的容器技术了解一下