android支付宝支付开发过程

支付宝开发流程:

1、在支付宝申请一个账号并开通开发者功能和移动支付的功能。

支付宝地址:https://auth.alipay.com/login/index.htm?goto=https%3A%2F%2Fopenhome.alipay.com%2Fdeveloper%2FisvApply.htm%3Fflag%3Daop

支付宝移动支付地址:https://b.alipay.com/order/productDetail.htm?productId=2014110308141993

2、上面步骤完成后下载支付宝集成文档和SDK。

3、

命令:

RSA密钥生成命令

生成RSA私钥

openssl>genrsa -out rsa_private_key.pem 1024

生成RSA公钥

openssl>rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

将RSA私钥转换成PKCS8格式

openssl>pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt

打开openssl按照上面的命令生成个密钥rsa_private_key.pem 和 rsa_public_key.pem。

根据rsa_private_key.pem 和 rsa_public_key.pem生成pkcs8密钥。

4、然后把rsa_public_key.pem里的内容组装成一个字符串(去掉空格、换行、-----BEGIN PUBLIC KEY-----、-----END PUBLIC KEY-----),复制到支付宝网站上生成支付宝公钥。

5、在工程里的androidManifest.xml里添加申明

<activity

android:name="com.alipay.sdk.app.H5PayActivity"

android:configChanges="orientation|keyboardHidden|navigation"

android:exported="false"

android:screenOrientation="behind"

android:windowSoftInputMode="adjustResize|stateHidden" >

</activity>

<activity

android:name="com.alipay.sdk.pay.demo.PayDemoActivity"

android:icon="@drawable/msp_icon"

android:label="@string/app_name">

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

6、把alipaySDK-20150602.jar拷贝到lib下,把alipay下的Base64.java和PayResult.java SignUtils,java拷贝到工程项目里。

7、首先获得订单信息getOrderInfo(),然后对订单用pkcs8密钥做RSA签名sign(getOrderInfo()),

生成订单数据String payInfo = getOrderInfo() + "&sign=\"" + sign(getOrderInfo()) + "\"&"

+ getSignType(); //getSignType为获取订单的签名方式,默认为"sign_type=\"RSA\""。

public String getOrderInfo(String subject, String body, String price) {

// 签约合作者身份ID

String orderInfo = "partner=" + "\"" + PARTNER + "\"";

// 签约卖家支付宝账号

orderInfo += "&seller_id=" + "\"" + SELLER + "\"";

// 商户网站唯一订单号

orderInfo += "&out_trade_no=" + "\"" + getOutTradeNo() + "\"";

// 商品名称

orderInfo += "&subject=" + "\"" + subject + "\"";

// 商品详情

orderInfo += "&body=" + "\"" + body + "\"";

// 商品金额

orderInfo += "&total_fee=" + "\"" + price + "\"";

// 服务器异步通知页面路径

orderInfo += "&notify_url=" + "\"" + "http://notify.msp.hk/notify.htm"

+ "\"";

// 服务接口名称, 固定值

orderInfo += "&service=\"mobile.securitypay.pay\"";

// 支付类型, 固定值

orderInfo += "&payment_type=\"1\"";

// 参数编码, 固定值

orderInfo += "&_input_charset=\"utf-8\"";

// 设置未付款交易的超时时间

// 默认30分钟,一旦超时,该笔交易就会自动被关闭。

// 取值范围:1m~15d。

// m-分钟,h-小时,d-天,1c-当天(无论交易何时创建,都在0点关闭)。

// 该参数数值不接受小数点,如1.5h,可转换为90m。

orderInfo += "&it_b_pay=\"30m\"";

// extern_token为经过快登授权获取到的alipay_open_id,带上此参数用户将使用授权的账户进行支付

// orderInfo += "&extern_token=" + "\"" + extern_token + "\"";

// 支付宝处理完请求后,当前页面跳转到商户指定页面的路径,可空

orderInfo += "&return_url=\"m.alipay.com\"";

// 调用银行卡支付,需配置此参数,参与签名, 固定值 (需要签约《无线银行卡快捷支付》才能使用)

// orderInfo += "&paymethod=\"expressGateway\"";

return orderInfo;

}

//对订单进行签名

public String sign(String content) {

return SignUtils.sign(content, RSA_PRIVATE);

}

8、在新线程中调用支付接口

Runnable payRunnable = new Runnable() {

@Override

public void run() {

// 构造PayTask 对象

PayTask alipay = new PayTask(this);

// 调用支付接口,获取支付结果

String result = alipay.pay(payInfo);

Message msg = new Message();

msg.what = SDK_PAY_FLAG;

msg.obj = result;

mHandler.sendMessage(msg);

}

};

// 必须异步调用

Thread payThread = new Thread(payRunnable);

payThread.start();

private Handler mHandler = new Handler() {

public void handleMessage(Message msg) {

switch (msg.what) {

case SDK_PAY_FLAG: {

PayResult payResult = new PayResult((String) msg.obj);

// 支付宝返回此次支付结果及加签,建议对支付宝签名信息拿签约时支付宝提供的公钥做验签

String resultInfo = payResult.getResult();

String resultStatus = payResult.getResultStatus();

// 判断resultStatus 为“9000”则代表支付成功,具体状态码代表含义可参考接口文档

if (TextUtils.equals(resultStatus, "9000")) {

Toast.makeText(this, "支付成功",

Toast.LENGTH_SHORT).show();

} else {

// 判断resultStatus 为非“9000”则代表可能支付失败

// “8000”代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认,最终交易是否成功以服务端异步通知为准(小概率状态)

if (TextUtils.equals(resultStatus, "8000")) {

Toast.makeText(this, "支付结果确认中",

Toast.LENGTH_SHORT).show();

} else {

// 其他值就可以判断为支付失败,包括用户主动取消支付,或者系统返回的错误

Toast.makeText(this, "支付失败",

Toast.LENGTH_SHORT).show();

}

}

break;

}

case SDK_CHECK_FLAG: {

Toast.makeText(this, "检查结果为:" + msg.obj,

Toast.LENGTH_SHORT).show();

break;

}

default:

break;

}

};

};

时间: 2024-10-09 12:03:32

android支付宝支付开发过程的相关文章

(转载)Android支付宝支付封装代码

Android支付宝支付封装代码 投稿:lijiao 字体:[增加 减小] 类型:转载 时间:2015-12-22我要评论 这篇文章主要介绍了Android支付宝支付封装代码,Android支付的时候肯定会使用支付宝进行支付,封装可以简化操作步骤,感兴趣的小伙伴们可以参考一下 在做Android支付的时候肯定会用到支付宝支付, 根据官方给出的demo做起来非常费劲,所以我们需要一次简单的封装. 封装的代码也很简单,就是将官网给的demo提取出一个类来方便使用. ? 1 2 3 4 5 6 7 8

android支付宝支付

1官网 支付宝文档地址:https://b.alipay.com/order/techService.htm 第一部,申请支付宝授权; http://act.life.alipay.com/shopping/before/help/index.html 第二部,在授权后使用文档中的openssl工具,生成密钥和公钥,和支付宝官网账号绑定; 第三部,复制出 RSA_密钥和RES_公钥; 第四部,看官方文档中的Demo和文档,仔细阅读; 第五部:运行demo //Parenter 合作者ID 208

Android 集成支付宝支付详解

一说到支付宝,相信没有人不知道,生活中付款,转账都会用到. 今天来详细介绍下在Android中如何集成支付宝支付到自己的APP中去.让APP能够拥有方便,快捷的支付功能. 准备工作: 商户在b.alipay.com里进行产品签约RSA私钥及公钥生成上传RSA公钥,签名验证接口调用 一.商户在b.alipay.com里进行产品签约 商户或者开发者到b.alipay.com进行产品签约,获取商户的PID. 二.RSA私钥及公钥生成 生成方式一(推荐):使用支付宝提供的一键生成工具: Windwos:

Android 支付宝以及微信支付快速接入流程

简介 随着移动支付的普及,越来越多的App采用第三发支付,在这里我们以支付宝为例,做一个快速集成! 一.Android快速实现支付宝支付 1.首先,我们需要前往支付宝开放平台,申请我们的支付功能:https://open.alipay.com/platform/home.htm 支付宝首页 这里 有两个需要注意的地方 一个是管理中心,另外一个是我的支付宝 管理中心: 管理中心 管理中心 我们需要 创建一个应用 提交给支付宝进行审核. 我的支付宝: 在这里我的支付宝 是一个商户版,一会我们会需要在

Android app 第三方支付宝支付接入

支付宝的接入相对比较简单,看看支付宝官网的文档基本都能搞定,但是切记一点让你们的后台也要搞清楚支付宝的流程,不然对接起来是一件很蛋疼的事情. 开始搬砖 注意事项 开发前一定要阅读支付宝官方文档 强烈建议签名等处理在后台处理,我这个是测试是在自己本地写的,不要吐槽 想获取支付宝合作商户ID,及支付宝公钥请点击支付宝链接,生成密钥及PKCS8转码工具在文档中 添加android.permission.INTERNET权限和android.permission.ACCESS_NETWORK_STATE

Android移动开发-集成调用支付宝支付开发的实现

如今移动支付比较火,尤其是在中国的市场.移动支付也称为手机支付,就是允许用户使用其移动终端(通常是手机)对所消费的商品或服务进行账务支付的一种服务方式.单位或个人通过移动设备.互联网或者近距离传感直接或间接向银行金融机构发送支付指令产生货币支付与资金转移行为,从而实现移动支付功能.移动支付将终端设备.互联网.应用提供商以及金融机构相融合,为用户提供货币支付.缴费等金融业务. 谈到移动支付,不得不说阿里旗下的蚂蚁金融的支付以及腾讯旗下的微信支付.那么现在在就谈谈如何Android项目里集成调用支付

Android H5调起原生微信或支付宝支付

Android H5调起原生微信或支付宝支付 WebView调用原生微信或支付宝回调:其原理就是在shouldOverrideUrlLoading(final WebView view, String url)方法中进行拦截处理. 由于支付宝的取消支付之后跳转的页面显示不太友好,所以集成支付宝SDK-手机网站支付转APP支付,说明文档参照https://docs.open.alipay.com/204/105695/.按照说明集成aliPaySdk. 初始化WebView: private vo

安卓Android轻松完成支付宝支付教程

介绍 参考安卓Dialog源码,他的builder设计模式实现方式是,使用内部类来实现功能,外部类的作用是通过build()函数,来对内部类进行参数设置,例如setter方法. Buidler设计模式它一般用于用户不知道内部构建细节的情况下更加精细地控制对象构建流程,例如安卓系统的AlertDialog类,它包括了icon.title.msg.button1.button2等,这些装配的部分是比较多的,代码实现过程也较为漫长.使用Builder模式,可以使得这些调用变得简单,在构建过程各个部件可

支付宝支付开发—当面付条码支付和扫码支付

关键字:支付宝 当面付 条码支付 扫码支付 二维码支付 订单查询 退款作者:方倍工作室 本文介绍支付宝中当面付下属的条码支付.扫码支付.订单查询.退款申请的集成开发过程. 本文分为以下五个部分: 条码支付和扫码支付介绍 申请应用 密钥生成及配置 API及SDK集成 条码支付.扫码支付.订单查询.退款申请 一.条码支付及二维码支付介绍 1. 条码支付 条码支付是支付宝给到线下传统行业的一种收款方式.商家使用扫码枪等条码识别设备扫描用户支付宝钱包上的条码/二维码,完成收款.用户仅需出示付款码,所有收