如何将自己做的手机游戏添加支付宝第三方登录接口接口

需求发布后1小时内收到服务商响应每个需求平均有10个服务商参与95%以上的需求得到了圆满解决所有需求不向雇主收取任何佣金双11电商狂欢 爆款服务超乎你想像
给DEDE做的手机站加一个支付宝手机版的接口
有相似问题想解决?专业顾问来帮助您
已投标服务商
综合评分:5颗星
速度:5.00
服务:5.00
态度:4.97
好评率:100%
做过相似案例3个
共有3个服务商参与报价,查看更多服务商报价
参与报价,开始赚钱
提交你的报价和方案
中标后交付作品
获得任务赏金
极速:10分钟急速响应
高品质:精选服务商提供服务
放心:不满意可退款
根据浏览的需求为您推荐
交易成功的需求
关注猪八戒微信02:16 提问
Android手机APP怎么调用支付宝支付接口?
Android手机APP怎么调用支付宝支付接口?最近在做一个手机APP,需要进行支付,希望可以调用支付宝的支付接口,请问有现成免费的sdk吗?大致怎么实现,给个思路,非常感谢!
按赞数排序
嗯,很感谢,我刚看了这篇文章,但是实际支付的时候需要企业实名认证,我现在是学生,自己开发软件,没有什么自己的公司执照,该怎么办?
你查查AliPay的官方文档吧
其他相关推荐Android 集成支付宝支付详解
一说到支付宝,相信没有人不知道,生活中付款,转账都会用到。
今天来详细介绍下在android中如何集成支付宝支付到自己的APP中去。让APP能够拥有方便,快捷的支付功能。
准备工作:
商户在里进行产品签约
RSA私钥及公钥生成
上传RSA公钥,签名验证
一.商户在里进行产品签约
商户或者开发者到进行产品签约,获取商户的PID。
二.RSA私钥及公钥生成
生成方式一(推荐):使用支付宝提供的一键生成工具:
解压打开文件夹,直接运行&支付宝RAS密钥生成器SHAwithRSA.bat&(WINDOWS)或&SHAwithRSA1024_mand&(MACOSX),点击&生成RSA密钥&,会自动生成公私钥,然后点击&打开文件位置&,即可找到工具自动生成的密钥。
生成方式二:也可以使用OpenSSL工具命令生成
首先进入OpenSSL工具,再输入以下命令。
OpenSSL& genrsa -out rsa_private_key.pem
OpenSSL& pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out rsa_private_key_pkcs8.pem #开发者需要将私钥转换成PKCS8格式
OpenSSL& rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem #生成公钥
OpenSSL& exit #退出OpenSSL程序
经过以上步骤,开发者可以在当前文件夹中(OpenSSL运行文件夹),看到rsa_private_key.pem(RSA私钥)、rsa_private_key_pkcs8.pem(pkcs8格式RSA私钥)和rsa_public_key.pem(对应RSA公钥)3个文件。开发者将私钥保留,将公钥提交给支付宝网关,用于验证签名。以下为私钥文件和公钥文件示例。
注意:对于使用Java的开发者,将pkcs8在console中输出的私钥去除头尾、换行和空格,作为开发者私钥,对于.NET和的开发者来说,无需进行pkcs8命令行操作。
PKCS8处理后的私钥文件示例:
-----BEGIN PRIVATE KEY-----
MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAN0yqPkLXlnhM+2H/57aHsYHaHXazr9pFQun907TMvmbR04wHChVsKVgGUF1hC0FN9hfeYT5v2SXg1WJSg2tSgk7F29SpsF0I36oSLCIszxdu7ClO7c22mxEVuCjmYpJdqb6XweAZzv4Is661jXP4PdrCTHRdVTU5zR9xUByiLSVAgMBAAECgYEAhznORRonHylm9oKaygEsqQGkYdBXbnsOS6busLi6xA+iovEUdbAVIrTCG9t854z2HAgaISoRUKyztJoOtJfI1wJaQU+XL+U3JIh4jmNx/k5UzJijfvfpT7Cv3ueMtqyAGBJrkLvXjiS7O5ylaCGuB0Qz711bWGkRrVoosPM3N6ECQQD8hVQUgnHEVHZYtvFqfcoq2g/onPbSqyjdrRu35a7PvgDAZx69Mr/XggGNTgT3jJn7+2XmiGkHM1fd1Ob/3uAdAkEA4D7aE3ZgXG/PQqlm3VbE/+4MvNl8xhjqOkByBOY2ZFfWKhlRziLEPSSAh16xEJ79WgY9iti+guLRAMravGrs2QJBAOmKWYeaWKNNxiIoF7/4VDgrcpkcSf3uRB44UjFSn8kLnWBUPo6WV+x1FQBdjqRviZ4NFGIP+KqrJnFHzNgJhVUCQFzCAukMDV4PLfeQJSmna8PFz2UKva8fvTutTryyEYu+PauaX5laDjyQbc4RIEMU0Q29CRX3BA8WDYg7YPGRdTkCQQCG+pjU2FB17ZLuKRlKEdtXNV6zQFTmFc1TKhlsDTtCkWs/xwkoCfZKstuV3Uc5J4BNJDkQOGm38pDRPcUDUh2/
-----END PRIVATE KEY-----
公钥文件示例:
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQWiDVZ7XYxa4CQsZoB3n7bfxLDkeGKjyQPt2FUtm4TWX9OYrd523iw6UUqnQ+Evfw88JgRnhyXadp+vnPKP7unormYQAfsM/CxzrfMoVdtwSiGtIJB4pfyRXjA+KL8nIa2hdQy5nLfgPVGZN4WidfUY/QpkddCVXnZ4bAUaQjXQIDAQAB
-----END PUBLIC KEY-----
三.上传RSA公钥,签名验证
登录支付宝官方网站,点击导航栏中&我的商家服务&,点击&查询PID、Key&,在&合作伙伴密钥管理&下(根据不同的产品选择对应的入口),点击&RSA&后的&添加密钥&,把自己的公钥复制进去
注意:上传的公钥是一行格式,不允许有注释、空格、换行等!
点击&确认上传&,提示:上传成功,说明已经成功上传。
四.接口调用
首先,导入需要的支付宝SDK资源放入商户应用工程的libs目录下
右键 Build Path,将libs目录下的alipaySDK-.jar导入,选中Order and Export,勾选alipaySDK-.jar
拷贝sdk提供的类到工程下:
这几个类也很简单,不需要做打的修改,只改动pay.java里面的就好了
// 商户PID
public static final String PARTNER = &&;
// 商户收款账号
public static final String SELLER = &&;
// 商户私钥,pkcs8格式
public static final String RSA_PRIVATE = &&;
添加上对应的参数,java私钥一定要是pkcs8格式的。
public class Pay {
// 商户PID
public static final String PARTNER = &&;
// 商户收款账号
public static final String SELLER = &&;
// 商户私钥,pkcs8格式
public static final String RSA_PRIVATE = &&;
private static final int SDK_PAY_FLAG = 1;
public Pay(Activity activity) {
this.activity =
* call alipay sdk pay. 调用SDK支付
public void pay(String name, String msg, String orderno, String money,
final Handler handler) {
String orderInfo = getOrderInfo(name, msg, orderno, money);
// 对订单做RSA 签名
String sign = sign(orderInfo);
// 仅需对sign 做URL编码
sign = URLEncoder.encode(sign, &UTF-8&);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
// 完整的符合支付宝参数规范的订单信息
final String payInfo = orderInfo + &&sign=\&& + sign + &\&&&
+ getSignType();
Runnable payRunnable = new Runnable() {
public void run() {
// 构造PayTask 对象
PayTask alipay = new PayTask(activity);
// 调用支付接口,获取支付结果
String result = alipay.pay(payInfo);
Message msg = new Message();
msg.what = SDK_PAY_FLAG;
handler.sendMessage(msg);
// 必须异步调用
Thread payThread = new Thread(payRunnable);
payThread.start();
* create the order info. 创建订单信息
public String getOrderInfo(String subject, String body, String orderno,
String price) {
// 签约合作者身份ID
String orderInfo = &partner=& + &\&& + PARTNER + &\&&;
// 签约卖家支付宝账号
orderInfo += &&seller_id=& + &\&& + SELLER + &\&&;
// 商户网站唯一订单号
orderInfo += &&out_trade_no=& + &\&& + orderno + &\&&;
// 商品名称
orderInfo += &&subject=& + &\&& + subject + &\&&;
// 商品详情
orderInfo += &&body=& + &\&& + body + &\&&;
// 商品金额
orderInfo += &&total_fee=& + &\&& + price + &\&&;
// 服务器异步通知页面路径
orderInfo += &&ify_url=& + &\&& + &notify_URL& + &\&&;
// 服务接口名称, 固定值
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=\&\&&;
// 调用银行卡支付,需配置此参数,参与签名, 固定值 (需要签约《无线银行卡快捷支付》才能使用)
// orderInfo += &&paymethod=\&expressGateway\&&;
return orderI
* get the out_trade_no for an order. 生成商户订单号,该值在商户端应保持唯一(可自定义格式规范)
public String getOutTradeNo() {
SimpleDateFormat format = new SimpleDateFormat(&MMddHHmmss&,
Locale.getDefault());
Date date = new Date();
String key = format.format(date);
Random r = new Random();
key = key + r.nextInt();
key = key.substring(0, 15);
* sign the order info. 对订单信息进行签名
* @param content
待签名订单信息
public String sign(String content) {
return SignUtils.sign(content, RSA_PRIVATE);
* get the sign type we use. 获取签名方式
public String getSignType() {
return &sign_type=\&RSA\&&;
其中public void pay(String name, String msg, String orderno, String money,final Handler handler) 方法是调用支付是用到的,传的参数为商户的名字,商品计费名称,订单号和价格,最后一个Handler handler参数是用来接收支付回调发送消息的。
支付的线程必须异步调用。
// 服务器异步通知页面路径
orderInfo += &?ify_url=& + &\&& + &notify_URL& + &\&&; 这里要填写真实的回到地址,是支付宝回调通知服务器的。
orderInfo += &&it_b_pay=\&30m\&&; 交易的超时时间默认30分钟,可以自己设置。 其余地方不用太大改动。
public class AppActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn_pay = (Button) findViewById(R.id.btn_pay);
btn_pay.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Pay pay = new Pay(AppActivity.this);
pay.pay(&商户名称&, &商品计费名称&, &订单号&, &1&, handler);
Handler handler = new Handler() {
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
PayResult payResult = new PayResult((String) msg.obj);
// 支付宝返回此次支付结果及加签,建议对支付宝签名信息拿签约时支付宝提供的公钥做验签
// String resultInfo = payResult.getResult();
String resultStatus = payResult.getResultStatus();
if (TextUtils.equals(resultStatus, &9000&)) {
Toast.makeText(AppActivity.this, &支付成功&,
Toast.LENGTH_SHORT).show();
// &8000&代表支付结果因为支付渠道原因或者原因还在等待支付结果确认,最终交易是否成功以服务端异步通知为准(小概率状态)
if (TextUtils.equals(resultStatus, &8000&)) {
Toast.makeText(AppActivity.this, &支付结果确认中&,
Toast.LENGTH_SHORT).show();
Toast.makeText(AppActivity.this, &支付失败&,
Toast.LENGTH_LONG).show();
这里是模拟调用支付,点击按钮开始跳转支付,handler收到消息后判断支付状态。9000为支付成功,8000为支付确认中,其余支付失败。
支付时出现偶尔出现java.security.spec.InvalidKeySpecException: java.lang.RuntimeException错误,需要调整一下RSA签名私钥,SignUtils 类
把KeyFactory keyf = KeyFactory.getInstance(&RSA&);
改成KeyFactory keyf = KeyFactory.getInstance(&RSA&, &BC&);
public class SignUtils {
private static final String ALGORITHM = &RSA&;
private static final String SIGN_ALGORITHMS = &SHA1WithRSA&;
private static final String DEFAULT_CHARSET = &UTF-8&;
public static String sign(String content, String privateKey) {
PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec(
Base64.decode(privateKey));
KeyFactory keyf = KeyFactory.getInstance(&RSA&, &BC&);
PrivateKey priKey = keyf.generatePrivate(priPKCS8);
java.security.Signature signature = java.security.Signature
.getInstance(SIGN_ALGORITHMS);
signature.initSign(priKey);
signature.update(content.getBytes(DEFAULT_CHARSET));
byte[] signed = signature.sign();
return Base64.encode(signed);
} catch (Exception e) {
e.printStackTrace();
公钥私钥一定要传正确才能签名成功。
另外的Base64.java和PayResult.java两个类就不用做修改了。
常见的支付错误码如下:
在商户应用工程的Manifest.xml文件里面添加声明:
特别注意事项:
测试场景一定注意,安装支付宝钱包则直接跳转app支付,没安装则进入H5网页支付。
未安装支付宝钱包测试如下:
Button btn_pay = (Button) findViewById(R.id.btn_pay);
btn_pay.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Pay pay = new Pay(AppActivity.this);
pay.pay(&商户名称&, &商品计费名称&, &&, &1&, handler);
传入参数是我任意填写的。
点击&支付按钮&,开始支付,未安装支付宝钱包,会自动跳转H5网页支付,第一次会输入手机号获取验证码,自动记录。再次进入时直接到确认付款页面,支付中途取消返回结果码为6001。Hi,欢迎来到华清远见移动互联网学院官网!国内王牌JAVAEE培训、Android培训、HTML5培训、UI培训、JAVA培训、VR培训机构!
400-611-6270
您当前的位置: >
> Android开发教程:Android集成支付宝接口
Android开发教程:Android集成支付宝接口
时间: 13:24 来源:Android开发学习网
Android平台上该如何集成支付宝接口? android怎么和支付宝实现接口对接?本文中小编将对Android集成支付宝支付接口的接入开发过程做一个整理与总结。
相比微信支付,支付宝支付简单了许多,它的交互过程如图:
首先导入jar包:alipaySdk-.jar,可以去官网上下个demo,里面就有这个jar包。
然后在AndroidManifest中配置:
android:name=&com.alipay.sdk.app.H5PayActivity&
android:configChanges=&orientation|keyboardHidden|navigation|screenSize&
android:exported=&false&
android:screenOrientation=&behind&
android:windowSoftInputMode=&adjustResize|stateHidden&&
android:name=&com.alipay.sdk.app.H5AuthActivity&
android:configChanges=&orientation|keyboardHidden|navigation&
android:exported=&false&
android:screenOrientation=&behind&
android:windowSoftInputMode=&adjustResize|stateHidden&&
然后还是app传递商品的信息请求自己的服务器,服务端开发人员会根据支付宝服务端的sdk提供的方法将订单信息加密成一个字符串orderstr返回给app,拿到这个加密的订单信息的字符串后,调起支付宝支付界面:
private void handleResult(final String payInfo) {
Runnable payRunnable = new Runnable() {
public void run() {
// 构造PayTask 对象
PayTask alipay = new PayTask(SelectPayWayActivity.this);
// 调用支付接口,获取支付结果
Map result = alipay.payV2(payInfo, true);
Message msg = new Message();
msg.what = SDK_PAY_FLAG;
sendUiMessage(msg);
// 必须异步调用
Thread payThread = new Thread(payRunnable);
payThread.start();
alipay调用的方法有pay和payV2两个,返回值的类型不一样,一个String,一个是Map类型,如果使用了demo中的PayResult,就用payV2方法。
支付回调的处理:
case SDK_PAY_FLAG:
PayResult payResult = new PayResult((Map) msg.obj);
String resultInfo = payResult.getResult();// 同步返回需要验证的信息
String resultStatus = payResult.getResultStatus();
// 判断resultStatus 为&9000&则代表支付成功,具体状态码代表含义可参考接口文档
if (TextUtils.equals(resultStatus, &9000&)) {
showToast(&支付成功&);
// &8000&代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认,最终交易是否成功以服务端异步通知为准(小概率状态)
if (TextUtils.equals(resultStatus, &8000&)) {
showToast(&支付结果确认中&);
// 其他值就可以判断为支付失败,包括用户主动取消支付,或者系统返回的错误
showToast(&支付失败&);
以上就是android集成支付宝接口的接入开发过程总结,希望对学习的伙伴有所帮助!
主讲人:Xena|共238人观看
主讲人:Scorpio|共5501人观看
主讲人:Wing|共121人观看}

我要回帖

更多关于 支付宝接口下载 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信