导航:首页 > 操作系统 > android支付宝支付流程图

android支付宝支付流程图

发布时间:2022-05-13 00:11:23

⑴ 支付宝给支付宝怎样付款

支付宝给支付宝付款属于转账到支付宝账户功能,支持支付宝账户余额、储蓄卡快捷支付、网银等方式。

安全小贴士:即时到账的付款不是担保交易,付款后,资金将直接进入对方账户,无法退款,谨防诈骗。转账到支付宝账户是基于您对交易对方的信任,通过支付宝自愿付款给对方的行为,转账到支付宝账户,属于即时到账转款

通过手机支付宝,转账到支付宝账户流程

1手机登录支付宝, 点击【转账】

⑵ 银联在线和支付宝,android应用怎么调用

一、 支付宝平台的集成

在技术集成之前,商户需要在https://ms.alipay.com进行注册,并签约安全支付服务。签约成功后可获取支付宝分配的合作商户ID(PartnerID),账户ID(SellerID),调用接口时使用。

支付细节的实现,主要通过支付宝提供的一个支付安全服务安装包alipay_plugin_20120428msp.apk,首次使用,首先检查是否安装此插件,没有会提示安装。具体的支付细节,在这个插件内完成。大部分的支付平台也都是采用的这种方式。

调用支付宝的接口进行支付,主要有以下几个步骤

1. 将商户ID,收款帐号,外部订单号,商品名称,商品介绍,价格,通知地址封装成订单信息

2. 对订单信息进行签名

3. 将订单信息,签名,签名方式封装成请求参数

4. 调用pay方法。

主要流程图如下:

支付接口pay方法的调用如下:

。。。

// start pay for this order.

// 根据订单信息开始进行支付

try {

// prepare the order info.

// 准备订单信息

String orderInfo = getOrderInfo(position);

// 这里根据签名方式对订单信息进行签名

String signType = getSignType();

String strsign = sign(signType, orderInfo);

Log.v("sign:", strsign);

// 对签名进行编码

strsign = URLEncoder.encode(strsign);

// 组装好参数

String info = orderInfo + "&sign=" + "\"" + strsign + "\"" + "&"

+ getSignType();

Log.v("orderInfo:", info);

// start the pay.

// 调用pay方法进行支付

MobileSecurePayer msp = new MobileSecurePayer();

boolean bRet = msp.pay(info, mHandler, AlixId.RQF_PAY,this);if (bRet) {

// show the progress bar to indicate that we have started

// paying.

// 显示“正在支付”进度条

closeProgress();

mProgress = BaseHelper.showProgress(this,null, "正在支付",false,

true);

} else

;

} catch (Exception ex) {

Toast.makeText(AlixDemo.this, R.string.remote_call_failed,

Toast.LENGTH_SHORT).show();

}

。。。

/**

* 向支付宝发送支付请求

*

* @param strOrderInfo

* 订单信息

* @param callback

* 回调handler

* @param myWhat

* 回调信息

* @param activity

* 目标activity

* @return

*/

public boolean pay(final String strOrderInfo,final Handler callback,

final int myWhat, final Activity activity) {

if (mbPaying)

return false;

mbPaying = true;//

mActivity = activity;// bind the service.

// 绑定服务

if (mAlixPay ==null) {

// 绑定安全支付服务需要获取上下文环境,

// 如果绑定不成功使用mActivity.getApplicationContext().bindService

// 解绑时同理

mActivity.getApplicationContext().bindService(

new Intent(IAlixPay.class.getName()),mAlixPayConnection,

Context.BIND_AUTO_CREATE);

}

// else ok.// 实例一个线程来进行支付

new Thread(new Runnable() {

public void run() {

try {

// wait for the service bind operation to completely

// finished.

// Note: this is important,otherwise the next mAlixPay.Pay()

// will fail.

// 等待安全支付服务绑定操作结束

// 注意:这里很重要,否则mAlixPay.Pay()方法会失败

synchronized (lock) {

if (mAlixPay ==null)

lock.wait();

}// register a Callback for the service.

// 为安全支付服务注册一个回调

mAlixPay.registerCallback(mCallback);// call the MobileSecurePay service.

// 调用安全支付服务的pay方法

String strRet =mAlixPay.Pay(strOrderInfo);

BaseHelper.log(TAG,"After Pay: " + strRet);// set the flag to indicate that we have finished.

// unregister the Callback, and unbind the service.

// 将mbPaying置为false,表示支付结束

// 移除回调的注册,解绑安全支付服务

mbPaying = false;

mAlixPay.unregisterCallback(mCallback);

mActivity.getApplicationContext().unbindService(

mAlixPayConnection);// send the result back to caller.

// 发送交易结果

Message msg = new Message();

msg.what = myWhat;

msg.obj = strRet;

callback.sendMessage(msg);

} catch (Exception e) {

e.printStackTrace();// send the result back to caller.

// 发送交易结果

Message msg = new Message();

msg.what = myWhat;

msg.obj = e.toString();

callback.sendMessage(msg);

}

}

}).start();return true;

}调用了支付服务之后,有两种方式返回交易结果:

1. 支付结果作为接口返回的字符串返回。返回的参数包含在result字符串中,具体再进行解析。

2. 支付宝服务器通知。商户需要提供一个http协议的接口,包含在参数里传递给安全支付,即notify_url。支付宝服务器在支付完成后,会用POST方法调用notufy_url,以xml为数据格式传输支付结果。需要注意的是,商户服务器收到支付宝发的通知之后,需要返回一个纯字符串“success”,不然支付宝的服务器会持续调用七次回调url提供的接口。

集成需要的交易费用方面0-1万元内是2.5%的费率,1-10万是2.4%,10-100万是2.2%,100万以上2.0%。
PS :亲测

AliPayInfo aliPayInfo=new AliPayInfo();
AliPay aliPay=new AliPay((Activity)OtherPayDlg.this.mContext, mHandler);
aliPay.pay(aliPayInfo.toString());
OtherPayDlg.this.dismiss();

出现问题一:按照说明文档导入alipay.jar 出现AliPay 找不到,然后项目根目录下新建一个 libs文件夹,把要加的包放到这个目录下,右键 Build Path -> Use as source folder

成功可以引用,但是没有弹出界面二、 财付通平台的集成

财付通的集成和支付宝的非常相似(腾讯的传统?→_→)。财付通也是提供了一个财付通安全支付服务应用TenpayService.apk用于处理交易的细节。对于此支付应用,财付通和支付宝的使用方式是一样的。一种是捆绑预置,即打包在assets目录下,另一种是放到自己的服务器中,通过检查更新的方式动态加载。实际集成中可采用二者结合方式,初次使用使用预置apk,之后检查更新动态下载。

但是调用支付接口之前,增加了一个获取tokenid的过程,tokenid用于同财付通service进行交互。过程如下:

1. 用户在商户APP 选择商品,使用财付通支付

2. 商户APP向商户server 请求使用财付通支付

3. 商户server按照“支付初始化接口”的要求组织数据请求财付通“支付初始化接口”,接收初始化成功后返回的tokenid

4. 商户server将生成的tokenid 返回给商户APP

5. 商户APP使用tokenid 调用财付通支付service

6. 财付通支付service 在验证tokenid 后向用户展示支付中心,显示订单信息及相关用户信息

7. 用户在支付中心输入支付密码执行支付

8. 财付通支付service 向财付通后台server 请求执行支付,并实时接收支付结果

9. 支付成功后财付通支付service 向用户展示支付成功UI,在用户点击“返回商户网站”后回调商户App

10. 财付通后台server 在支付成功后会通过“支付成功通知接口”在后台通知商户server 支付状态。

接收支付接口返回结果方面,财付通对于方法返回值,不是直接返回的,而是通过handler回调,handler和msgId作为一个参数传入接口,支付接口pay()方法的返回值只是个true false,用于区分调用成功或者失败。其实跟淘宝的方式大同小异。对于notify_url,是财付通是通过get方式调用回调url,只返回支付成功的订单。同样的,商户服务器在接收到财付通的调用之后,需要返回纯字符串“success”“fail”表示处理成功或失败。

调用支付接口的代码如下:

//构造支付参数

HashMap<String, String> payInfo = new HashMap<String, String>();

payInfo.put("token_id",mTokenId); //财付通订单号token_id

payInfo.put("bargainor_id","1234567890"); //财付通合作商户ID,此为演示示例

// payInfo.put("order_type", "1");

payInfo.put("caller","com.tenpay.android.appDemo");//去支付

tenpayHelper.pay(payInfo,mHandler, MSG_PAY_RESULT);

财付通的服务费率是1%,另外有相关的套餐可以优惠。

三、 易宝支付平台集成

与支付宝和财付通不同的是,易宝集成时,并没有提供一个支付应用apk,只有一个jar包。是一个library project。因为在集成时,需要在manifest文件里面声明支付页面的activity。同时在调用支付页面时,需要用startActivityForResult方式进入,支付结果会通过onActivityResult方法返回。易宝同样支持服务端回调,但比较纠结的是,易宝的服务端回调url,不能在代码中传入,需要在易宝的网站进行配置。只有支付成功时才会触发此回调,以get方式调用。

调用支付接口的代码如下:其中customerNumber参数是签约之后才能获取到的。requestId为调用方自定义的订单流水号。

private void startPay(String customerNumber, String chennal) {

String amount = etAmount.getText().toString();

String proctName = etProctName.getText().toString();

String proctDesc = etProctDesc.getText().toString();if(TextUtils.isEmpty(proctName) || TextUtils.isEmpty(amount)) {

Toast.makeText(YeepayExampleActivity.this,"", Toast.LENGTH_SHORT);

}Intent intent = new Intent(getBaseContext(), YeepayPlugin.class);

intent.putExtra("customerNumber", customerNumber);Random random = new Random();

String time = "" + System.currentTimeMillis();

String requestId = time + random.nextInt() % 10000;intent.putExtra("requestId", requestId);

intent.putExtra("amount", amount);

intent.putExtra("proctName", proctName);

intent.putExtra("time", time);

intent.putExtra("proctDesc", (proctDesc ==null) ? "" : proctDesc);

intent.putExtra("support", chennal);

intent.putExtra("environment","ENV_TEST" );

StringBuilder builder = new StringBuilder();

builder.append(CUSTOMER_NUMBER).append("$");

builder.append(requestId).append("$");

builder.append(amount).append("$");

builder.append(proctName).append("$");

builder.append(time);String hmac = YeepayUtils.hmacSign(builder.toString(),KEY);Log.e("YeepayExampleActivity","hmac" + hmac);intent.putExtra("hmac", hmac);

startActivityForResult(intent, 200);

}

易宝集成后的费率需要和易宝的客户经理面谈决定

四、 银联在线支付集成

银联的支付应用同支付宝和财付通相同,采用的是独立apk的方式提供服务。调用支付接口采用的startActivity的方式,相关参数通过bundle传递,调用示例如下:

bundle.putBoolean(USE_TEST_MODE,true);bundle.putString(SP_ID,"0009");

bundle.putString(SECURITY_CHIP_TYPE,null);

bundle.putString(SYS_PROVIDE,"00000001");

bundle.putString(PAY_DATA, payData);



Intent startIntent = new Intent();

// startIntent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);

startIntent.putExtras(bundle);

startIntent.setClassName(UPPayUtils.PACKAGE_NAME,

UPPayUtils.ACTIVITY_NAME);

// activity.startActivityForResult(startIntent, UPPayUtils.STARTE_UPPAY);

activity.startActivity(startIntent);

与以上三种支付平台不同的是,银联支付接口的返回值是通过广播的形式发送的。不支持商户服务端的回调url。

⑶ 支付宝交易程序是怎样的

如果您想通过“支付宝”支付并购买某商品,最安全的选择就是使用支付宝交易。使用“支付宝交易”,只有在您收到卖家的商品,对其满意后才向卖家支付货款。

支付宝交易流程图

好处

货款先支付在支付宝,收货满意后才付钱给卖家,安全放心
不必跑银行汇款,网上在线支付,方便简单
付款成功后,即时到帐,卖家可以立刻发货,快速高效
B2C在线支付,交易手续费全免
4、如何安装安全控件?

什么是安全控件

为了提升支付宝账号的安全性,防止账号密码被木马程序或病毒窃取,支付宝公司隆重推出支付宝安全控件,该安全控件实现了对关键数据进行SSL加密,可以有效防止木马截取键盘记录。

如果我没有安装控件会有什么现象

为了保障您支付宝账户的安全,如果您使用的是IE浏览器,我们会自动提示您安装。如果没有正确安装,会出现如下图所示的情况:

这时候您只要按照我们的提示,下载安装我们的安全控件并刷新,就可以正常使用了。

如果您使用的是非IE浏览器(如Netscape、Firefox、opera),将无法安装本控件,此时您也可以照常访问我们的网站,但是,为了您的账户安全,我们强烈建议您改用IE浏览器并下载安装安全控件后,再访问我们的网站!

如何安装控件

当您登录支付宝网站,系统会自动弹出的提示窗口,如下图:

点击“是”,安装完成后就可以正常使用了!
如果您使用的是windows xp系统(sp2),IE浏览器会屏蔽上面的弹出窗口,这时候您只要按照下面的步骤安装就可以了: 第一步:登录支付宝网站时,IE窗口会出现下图所示的提示,此时点击“单击此处”
提醒:请不要关闭此提示框,否则,您就不能正常安装我们的插件了!

第二步:选择“安装ActiveX控件”:

提醒:选择并点击“安装ActiveX控件”,我们保证选择此控件对您的计算机没有任何风险!

第三步:弹出如下图所示安全警告窗口,选择“安装”

如果您的网络忙,安装可能会花几分钟时间,请稍等片刻!完成后您就可以享受支付宝的安全支付服务了

为什么我按上面的操作还是无法安装,或是安装后也无法正常使用

① 请检查您的电脑是否安装了3721或其他拦截广告的插件,如果是,请将其设置为不要拦截ActivX控件!
② 请检查您的IE设置,并按以下步骤修改您的IE设置

第一步:打开IE浏览器,选择“工具”-〉“Internet选项”,出现如下窗口:
第二步: 按一下“设置”按钮,出现如下画面,将“检查所存网页的较新版本”设置为“每次访问此页时检查(E)”,然后按“确定”按钮。
第三步: 进入“安全”设置画面,按一下“自定义级别”按钮:
第四步: 将ActiveX控件和插件中相关参数设置成下图红线特别标注的一样即可。
第五步: 将IE编码设置为“简体中文(GB2312)”,如下图:
5、 如何开通网上银行?

a) 什么是网上银行?

网上银行是指银行通过电脑和互联网(或其他公用网)向客户提供金融服务的业务处理系统。它是一种全新的业务渠道和客户服务平台,客户不用前往银行柜台,就可以享受到全天候、跨地域的银行服务。

b) 如何申请网上银行服务?

申请网上银行服务可以持本人有效证件和银行卡到相应银行的营业网点办理申请网上银行服务的相关手续,也可到相应的银行网站在线申请网上银行服务,值得注意的是有些银行要求在线申请后本人持有效证件和银行卡到银行柜台签约才能开通在线支付等网上银行的全部服务,具体细节请查看银行帮助中相应银行的帮助文档。

使用网上银行安全吗?

c) 使用网上支付安全吗?

网民在支付宝支付时选择任一银行卡支付通道后立即进入银行网关,银行卡资料全部在银行网关加密页面上填写,无论是支付平台还是网站都无法看到或了解到任何银行卡资料,更不会被黑客通过技术手段盗取。
网民输入卡资料提交过程全部采用国际通用的SSL或SET及数字证书进行加密传输,安全性由银行全面提供支持和保护,各银行网上支付系统完全可以确保网上支付的安全。银行和首信以及商家之间是通过数字签名和加密验证传送信息的,提供层层安全保护,绝对不用担心您的卡片信息外泄。

d) 在线支付要在消费者银行卡上扣除手续费吗?

不需要。同样,用户登录到银行网站注册“网上银行”,银行不会收取用户任何手续费用。

使用网上银行应该注意什么?

e) 重复多次付款该怎么办?

由于您的支付信息银行没有即时传输给我们,造成您的银行重复扣款,我们感到非常抱歉。不过请放心,我们会在第二个工作日和银行对帐后,确认您的汇款,并在下一个工作日起给您原路退回到您的付款银行帐户的。对于工行和招行请您支付后的第三个工作日查看您的银行是否收到了这笔退款。对于建行异地重复汇款目前还无法做到自动退款,我们需要提交建设银行手工处理,所以您需要5个工作日后查看您的银行是否收到了这笔退款。

f) 打开支付页面,提示"该页无法显示"或空白页,可能是什么原因?

A. 没有升级IE浏览器,导致加密级别过低,无法进入银行系统。查看及下载方法
B. 上网环境或上网方式受限,可能是网络服务商限制,如有条件更换一种上网方式或环境。
C. 瞬间网络不通,尝试刷新页面;如果刷新不能解决问题,可能由于如果浏览器设置缓存,请在IE菜单--工具--Internet选项--点击“删除cookies”和“删除文件”,用以清除临时文件。

g) 我可以用关闭窗口的方式退出网上银行网页吗?

A. 请不要用关闭浏览器窗口的方式退出。为确保网上银行的连接被安全地终止,在完成所有交易后,使用系统中的"退出"功能退出网上理财服务。

h) 怎样创建和保护我的网上银行密码?

您在创建自己的密码的时候,请注意以下几点:
·请选择一个较难被别人猜到的密码。不要把密码和您的个人资料如:生日,名字,电话号码或其他常用的信息联系起来。
·不要使用与其他网站或电子邮件相同的密码。
·创建个人密码时,请交叉使用文字和数字并加入大小写,如W121fd1Q。避免使用重复的字符或连续的数字,如12345678,aaaabbbb。

6、 如何给支付宝充值?

我可以使用家人的卡给我的“支付宝账户”充值吗

可以,只要是您可以使用,并且开通了网上银行业务的中国工商银行,招商银行,中国建设银行,中国农业银行,兴业银行,广东发展银行,上海浦东发展银行的卡,都可以给您的“支付宝账户”进行充值。

我在充值到“支付宝账户”时需要输入的支付密码是什么

在充值到“支付宝账户”时,需要输入的支付密码是您相对应的网上银行的支付密码。

通过网上银行对“支付宝账户”在线充值银行会向我收取手续费吗

不会,通过网上银行对“支付宝账户”在线充值,不收取任何手续费。

可以不可以通过银行柜台汇款给“支付宝账户”充值

不可以,给“支付宝账户”充值,只能在网上操作。目前可以向“支付宝账户”在线充值的银行有中国工商银行,招商银行,中国建设银行,中国农业银行,VISA,兴业银行,广东发展银行,上海浦东发展银行。

我通过网上银行给“支付宝账户”充值了,银行也显示扣款了,可为什么我“支付宝账户”里面还是没钱

由于银行信息传输问题,您的这笔支付信息银行没有即时传输给我们,我们会在第二个工作日和银行对账后给您进行确认的,请您放心。

⑷ 支付宝支付流程

流程如下
1、进入手机支付宝,可以看到在很多领域都开通了支付宝,网络支付、转账、信用卡还款、手机充值、水电煤缴费、个人理财等多个领域。
2、点击上面的付款,进入付款。
3、使用时,用户在“支付宝钱包”内点击“付款码”,收银员使用条码枪扫描该条码,完成付款。
4、为了安全起见,我们可以扫描对方的二维码进行付款。
5、输入密码或进行指纹支付就可以了。
拓展资料
关于支付宝
1、8月21日,支付宝发布延时到账功能全面升级,被骗资金有望追回。8月29日,支付宝(中国)信息技术有限公司法人发生变更,由马云变更为叶郁青。9月12日,在蚂蚁开放日小程序专场上,支付宝宣布结束小程序公测并正式上线并成立小程序事业部。
2、10月13日,在印尼巴厘岛举行的世界银行年会上,世界银行成员国际金融公司(IFC)和支付宝联合宣布:启动10x1000科技普惠计划,计划在未来10年,每年为新兴市场国家培训1000名科技领军者。11月19日,澳大利亚国民银行(NAB)宣布,将与中国电子支付平台支付宝合作,于2019年初在为客户提供的POS机上开通支付宝收付款服务。NAB是澳大利亚四大银行中首家推出这一服务的银行。支付宝于2018年底在巴基斯坦开始运行。
3、2019年1月,发布的《移动政务服务报告(2018)——重构与智慧》显示,全国已有442座城市(含县级市和省直辖县)将政务服务搬上了支付宝平台。1月10日,陆家嘴与支付宝公司签署了办公楼的《预售合同》,根据与浙江蚂蚁小微金融服务集团股份有限公司、支付宝公司签署的《合作协议》等相关法律文件,将该办公楼转让给支付宝公司,转让暂定总价为人民币22.62亿元。
4、1月14日,蚂蚁金服公告称,支付宝积极落实中国人民银行关于支付机构客户备付金集中存管和断直连等相关要求,到2019年1月14日,已经完成了断直连、备付金集中存管和备付金账户销户。2月2日,支付宝成为首批获得国家认证的企业。支付宝针对用户个人信息安全和隐私保护的体系已达到国家最严格的标准。2月21日,支付宝对外发布公告表示,自3月26日起,通过支付宝给信用卡还款将收取服务费。
(操作环境:手机型号:苹果12,ios14,电脑端:macbookpro mos14;浏览器:google版本 92.0.4515.131;支付宝版本号:10.2.38.8200)

⑸ android ping++ 怎么调用支付宝

在技术集成之前,商户需要进行注册,并签约安全支付服务。签约成功后可获取支付宝分配的合作商户ID(PartnerID),账户ID(SellerID),调用接口时使用。

支付细节的实现,主要通过支付宝提供的一个支付安全服务安装包alipay_plugin_20120428msp.apk,首次使用,首先检查是否安装此插件,没有会提示安装。具体的支付细节,在这个插件内完成。大部分的支付平台也都是采用的这种方式。

调用支付宝的接口进行支付,主要有以下几个步骤

1. 将商户ID,收款帐号,外部订单号,商品名称,商品介绍,价格,通知地址封装成订单信息

2. 对订单信息进行签名

3. 将订单信息,签名,签名方式封装成请求参数

4. 调用pay方法。

主要流程图如下:

支付接口pay方法的调用如下:

。。。

// start pay for this order.

// 根据订单信息开始进行支付

try {

// prepare the order info.

// 准备订单信息

String orderInfo = getOrderInfo(position);

// 这里根据签名方式对订单信息进行签名

String signType = getSignType();

String strsign = sign(signType, orderInfo);

Log.v("sign:", strsign);

// 对签名进行编码

strsign = URLEncoder.encode(strsign);

// 组装好参数

String info = orderInfo + "&sign=" + "\"" + strsign + "\"" + "&"

+ getSignType();

Log.v("orderInfo:", info);

// start the pay.

// 调用pay方法进行支付

MobileSecurePayer msp = new MobileSecurePayer();

boolean bRet = msp.pay(info, mHandler, AlixId.RQF_PAY,this);if (bRet) {

// show the progress bar to indicate that we have started

// paying.

// 显示“正在支付”进度条

closeProgress();

mProgress = BaseHelper.showProgress(this,null, "正在支付",false,

true);

} else

;

} catch (Exception ex) {

Toast.makeText(AlixDemo.this, R.string.remote_call_failed,

Toast.LENGTH_SHORT).show();

}

。。。

/**

* 向支付宝发送支付请求

*

* @param strOrderInfo

* 订单信息

* @param callback

* 回调handler

* @param myWhat

* 回调信息

* @param activity

* 目标activity

* @return

*/

public boolean pay(final String strOrderInfo,final Handler callback,

final int myWhat, final Activity activity) {

if (mbPaying)

return false;

mbPaying = true;//

mActivity = activity;// bind the service.

// 绑定服务

if (mAlixPay ==null) {

// 绑定安全支付服务需要获取上下文环境,

// 如果绑定不成功使用mActivity.getApplicationContext().bindService

// 解绑时同理

mActivity.getApplicationContext().bindService(

new Intent(IAlixPay.class.getName()),mAlixPayConnection,

Context.BIND_AUTO_CREATE);

}

// else ok.// 实例一个线程来进行支付

new Thread(new Runnable() {

public void run() {

try {

// wait for the service bind operation to completely

// finished.

// Note: this is important,otherwise the next mAlixPay.Pay()

// will fail.

// 等待安全支付服务绑定操作结束

// 注意:这里很重要,否则mAlixPay.Pay()方法会失败

synchronized (lock) {

if (mAlixPay ==null)

lock.wait();

}// register a Callback for the service.

// 为安全支付服务注册一个回调

mAlixPay.registerCallback(mCallback);// call the MobileSecurePay service.

// 调用安全支付服务的pay方法

String strRet =mAlixPay.Pay(strOrderInfo);

BaseHelper.log(TAG,"After Pay: " + strRet);// set the flag to indicate that we have finished.

// unregister the Callback, and unbind the service.

// 将mbPaying置为false,表示支付结束

// 移除回调的注册,解绑安全支付服务

mbPaying = false;

mAlixPay.unregisterCallback(mCallback);

mActivity.getApplicationContext().unbindService(

mAlixPayConnection);// send the result back to caller.

// 发送交易结果

Message msg = new Message();

msg.what = myWhat;

msg.obj = strRet;

callback.sendMessage(msg);

} catch (Exception e) {

e.printStackTrace();// send the result back to caller.

// 发送交易结果

Message msg = new Message();

msg.what = myWhat;

msg.obj = e.toString();

callback.sendMessage(msg);

}

}

}).start();return true;

}调用了支付服务之后,有两种方式返回交易结果:

1. 支付结果作为接口返回的字符串返回。返回的参数包含在result字符串中,具体再进行解析。

2. 支付宝服务器通知。商户需要提供一个http协议的接口,包含在参数里传递给安全支付,即notify_url。支付宝服务器在支付完成后,会用POST方法调用notufy_url,以xml为数据格式传输支付结果。需要注意的是,商户服务器收到支付宝发的通知之后,需要返回一个纯字符串“success”,不然支付宝的服务器会持续调用七次回调url提供的接口。

⑹ 支付宝支付方式的主要流程

一般就是扫码支付,然后付款有使用密码的,有使用指纹 刷脸支付的。

⑺ 支付宝是一种网上支付工具,请用简洁的语言介绍下图所示的支付宝交易流程。

此题解答,先审视图意,理清思路,尤其结合“箭头”方向,明了图意内容,最后形成自已的表达的顺序.

答案:
交易开始之后,买家将钱汇给支付宝,然后支付宝通知卖家发货,卖家发货且买家收货并通知支付宝之后,支付宝将钱付给卖家,此次交易成功.

⑻ 如何在app应用中添加支付宝支付功能

  1. 下载开发包,下载压缩包,并将里面的Android使用支付宝的JAR和Demo解压出来。

⑼ android开发支付宝付款实时通知是怎么实现的

到支付宝官网,下载支付宝集成开发包,看懂里面的关键代码

由于android设备一般用的都是无线支付,所有我们申请的就是支付宝无线快捷支付接口。


如果链接失效,你可以到支付宝官网商家服务模块中找到 快捷支付(无线)这个服务。

下载集成开发包,解压发现里面有客户端的demo即说明文档,在客户端的demo中找到Android_SDK,这个就是你要用到的支付宝接口及demo。


把demo(alipay_sdk_demo)和(alipay_lib)导入到你的eclipse里面,然后你可以试着运行一遍demo(alipay_sdk_demo),只要把这个demo搞懂了,你就会调用这个支付宝接口了。至于到时候如何集成到你的项目里面,文档上说明很详细,按着文档上一步一步来就行了。我的建议是先把这个demo弄懂再设计你的项目,看看调用接口时需要哪些数据,这样也有利于你一开始设计数据。

下面来简单的介绍下接口demo里面的结构。

你打开项目会发现里面有5个类。

java">kagecom.alipay.android.msp.demo;

importjava.io.IOException;
........
........
importcom.alipay.android.app.sdk.AliPay;

,
OnClickListener{
publicstaticfinalStringTAG="alipay-sdk";

privatestaticfinalintRQF_PAY=1;

privatestaticfinalintRQF_LOGIN=2;

privateEditTextmUserId;
privateButtonmLogon;

@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.external_partner);

initProcts();
initListView();
}

/*
*(non-Javadoc)
*
*@seeandroid.app.Activity#onCreateOptionsMenu(android.view.Menu)
*/
@Override
(Menumenu){
menu.add(Menu.NONE,Menu.FIRST,1,"快速登录");
returntrue;
}

/*
*(non-Javadoc)
*
*@seeandroid.app.Activity#onOptionsItemSelected(android.view.MenuItem)
*/
@Override
(MenuItemitem){
switch(item.getItemId()){
caseMenu.FIRST:
setContentView(R.layout.trustlogin);
mUserId=(EditText)findViewById(R.id.user_id);
mLogon=(Button)findViewById(R.id.get_token);
mLogon.setOnClickListener(this);
break;
}
returnfalse;
}

privatevoidinitProcts(){
if(sProcts!=null)
return;

XmlResourceParserparser=getResources().getXml(R.xml.procts);
ArrayList<Proct>procts=newArrayList<Proct>();
Proctproct=null;

try{
inteventType=parser.getEventType();

while(eventType!=XmlPullParser.END_DOCUMENT){
if(eventType==XmlPullParser.START_TAG
&&parser.getName().equalsIgnoreCase("proct")){
proct=newProct();
proct.subject=parser.getAttributeValue(0);
proct.body=parser.getAttributeValue(1);
proct.price=parser.getAttributeValue(2);
procts.add(proct);
}
eventType=parser.next();
}

sProcts=newProct[procts.size()];
procts.toArray(sProcts);

}catch(XmlPullParserExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
}
//listview点击事件,里面调用的支付宝接口
@Override
publicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intposition,
longarg3){
try{
Log.i("ExternalPartner","onItemClick");
Stringinfo=getNewOrderInfo(position);//这个是订单信息
Stringsign=Rsa.sign(info,Keys.PRIVATE);//签名加密订单信息什么的
sign=URLEncoder.encode(sign);
info+="&sign=""+sign+""&"+getSignType();
Log.i("ExternalPartner","startpay");
//startthepay.
Log.i(TAG,"info="+info);

finalStringorderInfo=info;
newThread(){
publicvoidrun(){
AliPayalipay=newAliPay(ExternalPartner.this,mHandler);//这个应该就是支付宝接口了,哈哈,支付宝现在把很多功能都封装了,所以省了很多代码

//设置为沙箱模式,不设置默认为线上环境
//alipay.setSandBox(true);

Stringresult=alipay.pay(orderInfo);//这个是返回的结果,你到时候可以根据这个结果加以操作你想操作的,然后基本就完了,其他的你想附加的功能你看着写吧,现在Key.java配置好就能调用快捷支付了
//后面的这些代码可以改成你自己的,也可以在它们的基础上改
Log.i(TAG,"result="+result);
Messagemsg=newMessage();
msg.what=RQF_PAY;
msg.obj=result;
mHandler.sendMessage(msg);
}
}.start();

}catch(Exceptionex){
ex.printStackTrace();
Toast.makeText(ExternalPartner.this,R.string.remote_call_failed,
Toast.LENGTH_SHORT).show();
}
}
//获得订单信息的方法
privateStringgetNewOrderInfo(intposition){
StringBuildersb=newStringBuilder();
sb.append("partner="");
sb.append(Keys.DEFAULT_PARTNER);//合作身份者id
sb.append(""&out_trade_no="");
sb.append(getOutTradeNo());//这个是订单编号
sb.append(""&subject="");
sb.append(sProcts[position].subject);//这个应该是商品名称
sb.append(""&body="");
sb.append(sProcts[position].body);//这个应该是商品的描述,具体你可以参考demo
sb.append(""&total_fee="");
sb.append(sProcts[position].price.replace("一口价:",""));//这个是要付款的金额,到时候你调用的时候改下就行了
sb.append(""¬ify_url="");
//网址需要做URL编码
sb.append(URLEncoder.encode("http://notify.java.jpxx.org/index.jsp"));//服务器异步通知页面,完成交易后通知商家服务器的页面,以post的形式将商品订单信息发送到指定页面,手机客户端不需要可以先放在这不管。是不是,这个类很简单看懂吧,就一listview。调用支付宝接口的方法就在onItemClick()方法里面,如果你是一个按钮的话换成按钮点击事件就行了,主要的细节我注释已写。现在你要想的是,需要哪些数据,提供给onItemClick()方法里面的Stringinfo。demo里面的数据是getNewOrderInfo(intposition)这个方法提供的,你可以自己提供或者在上面修改下。
现在,你已经知道代码是如何调用支付宝接口了。接下来,是如何把这些集成到你的项目中去。

阅读全文

与android支付宝支付流程图相关的资料

热点内容
苹果解压专家账号 浏览:840
度晓晓app为什么关闲 浏览:226
net文件是伪编译码吗 浏览:149
伴随矩阵的matlab编程 浏览:63
单片机和h桥是什么意思 浏览:312
51单片机光控设计论文 浏览:652
涡旋式压缩机无油 浏览:729
企业网搭建及应用pdf 浏览:744
symanteclinux 浏览:878
程序员朋友化妆改造 浏览:493
应用被加密但不知道密码 浏览:586
百度云黑马android 浏览:773
java格式化long 浏览:893
汽车如何加密文档 浏览:625
公司理财第9版pdf 浏览:524
微信个人表情在文件夹 浏览:833
加密狗密码监控 浏览:437
重载发生在编译时 浏览:417
怎么用app买东西 浏览:532
ug后处理多坐标宏命令 浏览:34