Android支付宝支付的示例代码

上一篇,我们已经详细讲解了Android微信支付,今天接着为大家带来支付宝支付,支付宝支付相对微信支付要简单一些,吐槽一下,而且支付宝文档确实比微信的文档好了不少,下面开始讲解支付流程。

1、首先给出官方文档的地址

Android集成支付宝流程

2、在开始集成和开发前,首先了解一下常用的接入方式和架构建议:

支付流程.png

在开始下一步之前,给大家看看网上的很多操作.

网上的代码.png

这一大堆代码,后面还有,百来行吧,而且支付宝Demo貌似也是这么干的,估计一些新司机就有点懵逼了,至于吗?集成一个第三方的,不应该是调用越简洁越好吗,而且还是大厂的第三方,不应该啊?所以,笔者有必要出面说明一下,那些老司机,你们弄好了,也不能这么吓唬新司机啊,说正经的,网上代码那么长,是因为他们在本地区生成的订单签名,这个订单签名也就是一个字符串,他由订单信息,支付金额,订单号,商户信息等拼接起来的

下面是APP支付请求所需的参数

APP支付请求所需的参数

App支付请求参数说明.png

然而笔者告诉你,这一大堆,你并不需要,你只要了解一下就行了。因为实际开发中几乎都是在服务器端生成支付的订单签名和订单信息,因为在后台的安全性比前端要好,在APP生成,危险性很高,如果你们后台大哥不给你弄,让你自己生成,我建议你找他喝点小酒,唠唠嗑,好好说说,他估计就同意了。所以网上那种写一大堆代码的,实际上是在本地去生成签名

接下来的事情嘛,就比较简单了,

3、清单文件做如下配置

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<activity
  android:name="com.alipay.sdk.app.H5PayActivity"
  android:configChanges="orientation|keyboardHidden|navigation|screenSize"
  android:exported="false"
  android:screenOrientation="behind"
  android:windowSoftInputMode="adjustResize|stateHidden" />

 <activity
  android:name="com.alipay.sdk.app.H5AuthActivity"
  android:configChanges="orientation|keyboardHidden|navigation"
  android:exported="false"
  android:screenOrientation="behind"
  android:windowSoftInputMode="adjustResize|stateHidden" />

4、请求自己服务器,获取订单签名字符串,然后调用支付宝SDK,发起支付请求

/**
   * 显示支付宝签名
   *
   * @param aliPayBean 自己服务器返回的订单签名字符串
   */
public void aliPayData(AliPayBean aliPayBean) {
    //支付宝支付请求所需的签名字符串
    final String orderInfo = aliPayBean.getResult().getMessage();
    Runnable payRunnable = new Runnable() {
      @Override
      public void run() {
        PayTask alipay = new PayTask(PaymentActivity.this);
        Map<String, String> result = alipay.payV2(orderInfo, true);
        Log.i("msp", result.toString());

        Message msg = new Message();
        msg.what = SDK_ALI_PAY_FLAG;
        msg.obj = result;
        mHandler.sendMessage(msg);
      }
    };
    // 必须异步调用
    Thread payThread = new Thread(payRunnable);
    payThread.start();
  }

5、支付宝支付结果的回调

//支付宝返回数据handler
  @SuppressLint("HandlerLeak")
  private Handler mHandler = new Handler() {
    @SuppressWarnings("unused")
    public void handleMessage(Message msg) {
      switch (msg.what) {
        case SDK_ALI_PAY_FLAG: {
          @SuppressWarnings("unchecked")
          PayResult payResult = new PayResult((Map<String, String>) msg.obj);
          /**
           对于支付结果,请商户依赖服务端的异步通知结果。同步通知结果,仅作为支付结束的通知。
           */
          String resultInfo = payResult.getResult();// 同步返回需要验证的信息
          String resultStatus = payResult.getResultStatus();
          String result = "";
          // 判断resultStatus 为9000则代表支付成功
          Log.i(TAG, resultStatus);
          if (TextUtils.equals(resultStatus, "9000")) {
            //支付成功
            result = "支付成功";
            aliPaySuccess();
          } else if ("6001".equals(resultStatus)) {
            result = "您取消了支付";
          } else {
            // 该笔订单真实的支付结果,需要依赖服务端的异步通知。
            result = "支付失败";
          }
          ToastUtils.showToast(mContext, result);
          break;
        }
      }
    }
  };

注意:这里支付成功,我只是以客户端作为标准,实际传支付结果,最好以服务端为标准,我们调用支付宝支付的时候,支付宝会有2个回调,一个是APP的回调,就是我们上面这个,9000代表支付成功,一个是支付宝服务器通知我们自己的服务器,所以,我们自己的服务器也有个回调。所以APP可以请求后台的接口来获取支付结果。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android仿支付宝支付密码输入框

    本文实例为大家分享了Android实现一个仿支付宝支付密码的输入框,主要实现如下: PasswordView.java package com.jackie.alipay.password; import android.annotation.TargetApi; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphic

  • Android支付宝支付设计开发

    在移动支付领域,支付宝支付占用巨大份额,根据艾瑞咨询公布的报告数据:2014Q3,支付宝斩获了82.6%的市场份额,在移动支付的霸主地位越来越稳固.财付通支付的发力点在微信支付和手Q支付,在移动支付格局中取得了10.0%的市场份额,排名第二. 支付宝在移动支付领域的统治地位,使得我们有必要梳理支付宝移动开发流程.本文写作的目的就是梳理支付流程,从架构层面讲述如何在移动应用中嵌入支付宝支付功能,以及指出哪些地方存在开发陷阱. 准备       按照说明,首先需要申请支付宝支付账号.这方面根据网站说

  • Android app第三方支付宝支付接入教程

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

  • Android仿支付宝支付从底部弹窗效果

    我们再用支付宝支付的时候,会从底部弹上来一个对话框,让我们选择支付方式等等,今天我们就来慢慢实现这个功能 效果图 实现 主界面很简单,就是一个按钮,点击后跳到支付详情的Fragment中 package com.example.hfs.alipayuidemo; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.wi

  • Android接入支付宝实现支付功能实例

    我本来是想直接讲Android支付这一块的,包括支付宝,微信,其他第三方整合支付等,但是微信开放平台他对我的账号做了限制,所有我今天就先把重心放在支付宝的支付上,也算是写得尽可能详细些吧,毕竟是第三方的SDK,只要我们耐心的阅读文档和开发引导,这个其实不是很难的,我也是没有用过支付宝的支付,但是我相信,你看完这篇博客,也会对他了如指掌的,好的,我们正文开始 一.准备步骤 1.登录官网 他的官网就是蚂蚁金服的开放平台了,我们可以访问 蚂蚁金服开放平台 ,并且注册账号进行登录 创建应用 如果你是现有

  • Android支付宝和微信支付集成

    场景 随着移动支付的兴起,在我们的app'中,会经常有集成支付的需求.这时候一般都会采用微信和支付宝的sdk 来集成 (一)支付宝支付 在使用支付宝支付的过程中,我们是在服务器端生成订单,客户端访问接口,并得到订单信息,调用接口支付,支付成功后支付宝会分别 异步调用服务器端,并向客户端返回支付结果. 开发步骤: ①注册支付宝账号--进行实名认证--提交审核资料--审核通过 支付宝无线快捷支付接口: b.alipay.com/order/productDetail.htm?productId=20

  • Android支付宝支付封装代码

    在做Android支付的时候肯定会用到支付宝支付, 根据官方给出的demo做起来非常费劲,所以我们需要一次简单的封装. 封装的代码也很简单,就是将官网给的demo提取出一个类来方便使用. public class Alipay { // 商户PID public static final String PARTNER = "123456789"; // 商户收款账号 public static final String SELLER = "qibin0506@gmail.co

  • Android支付宝支付的示例代码

    上一篇,我们已经详细讲解了Android微信支付,今天接着为大家带来支付宝支付,支付宝支付相对微信支付要简单一些,吐槽一下,而且支付宝文档确实比微信的文档好了不少,下面开始讲解支付流程. 1.首先给出官方文档的地址 Android集成支付宝流程 2.在开始集成和开发前,首先了解一下常用的接入方式和架构建议: 支付流程.png 在开始下一步之前,给大家看看网上的很多操作. 网上的代码.png 这一大堆代码,后面还有,百来行吧,而且支付宝Demo貌似也是这么干的,估计一些新司机就有点懵逼了,至于吗?

  • springboot 集成支付宝支付的示例代码

    最简单的springboot集成支付宝 1 注册沙箱 沙箱是一个模拟环境登录,百度蚂蚁金服开放平台,支付宝扫码登录如下 然后沙箱需要注册一下,非常之简单,注册好以后进入到如下页面,选沙箱工具,然后下载一个生成密钥的工具.然后解压按照里面的readme生成公私密钥, 选择沙箱应用 上传公钥即可..沙箱到这里就基本完成了,里面还有沙箱版本的的android app可以下载下来. java 程序 1 新建一个springboot项目 因为我们创建的是一个web工程,所以,仅仅演示支付宝的demo,只需

  • php实现微信和支付宝支付的示例代码

    php实现微信支付 微信支付文档地址:https://pay.weixin.qq.com/wiki/doc/api/index.html 在php下实现微信支付,这里我使用了EasyWeChat 这里我是在Yii框架实现的,安装EasyWeChat插件 composer require jianyan74/yii2-easy-wechat 一:配置EasyWeChat 1:在config/main.php 的 component中添加EasyWeChat的SDK 'components' =>

  • Laravel使用支付宝进行支付的示例代码

    本文介绍了Laravel使用支付宝进行支付的示例代码,分享给大家,也给自己留个笔记 /* 支付 */ public function pay() { header("content-type:text/html;charset=utf8"); //echo 1;die; // ******************************************************配置 start********************************************

  • Vue+SpringBoot实现支付宝沙箱支付的示例代码

    首先去下载支付宝沙箱的一系列东西,具体的配置什么的我就不说了,有很多博客都讲了,还有蚂蚁金服官方也说的很详细,我就直接说怎么样把后端的支付页面显示到Vue前端来: 在你配置好AlipayConfig这个文件后,就可以写前端的逻辑了,前端是采用支付宝的页面如下: 下面展示一些 内联代码片. /* 以下是支付确认html */ <div style="text=#000000 bgColor=#ffffff leftMargin=0 topMargin=4"> <head

  • python修改微信和支付宝步数的示例代码

    项目意义 如果你想在支付宝蚂蚁森林收集很多能量种树,为环境绿化出一份力量,又或者是想每天称霸微信运动排行榜装逼,却不想出门走路,那么该python脚本可以帮你实现. 实现方法 手机安装第三方软件乐心健康,注册账号登录,将运动数据同步到微信和支付宝.用python脚本远程修改乐心健康当前登录账号的步数即可. 第一步:在手机上安装乐心健康app. 安卓版下载地址:乐心健康安卓版 苹果版下载地址:乐心健康iOS版 乐心运动app for android v3.0 安卓版 第二步:注册账号登录,并设置登

  • ImageView 实现Android colorPikcer 选择器的示例代码

    本文介绍了ImageView 实现Android colorPikcer 选择器的示例代码,分享给大家,具体如下: Android colorPikcer 选择器 环形的ColorPicker,主要思路是: Color 选在放在ImageView 的background上面,根据点击的位置判断选择的颜色. 重写onTouch,在onTouch 里面判断点击点的颜色. 根据当前选择的颜色设置图片的src. 获取Bitmap 在 ColorPickerView 构造函数中初始化 Bitmap.因为g

  • Android 支付宝支付、微信支付、银联支付 整合第三方支付接入方法(后台订单支付API设计)

    客户端获取后台支付API请求参数的设计 参数样例: { data: { method: 1, platform: 1, version:"1.0", relate_orders:"B201602031023,B2016020310231", order_no: "BZY201604200952100", order_type: 1, total_fee: 1, description: "商品购买", client_ip:'1

随机推荐