支付宝支付demo官方怎么把文档和demo结合看

支付宝APP支付集成文档 - 简书
支付宝APP支付集成文档
一、开发前提
适用于商家在App应用中集成支付宝支付功能。商家APP调用支付宝提供的SDK调用支付宝客户端内的支付模块,商家APP会跳转到支付宝中完成支付,支付完后跳回到商家APP内,最后展示支付结果。
本文档旨在指导开发者快速集成支付宝APP支付,包括开签约APP支付、服务器配置以及安卓端配置。
1、签约APP支付
APP要想接入支付宝支付功能需要签约支付宝的APP支付,签约要符合申请的条件,根据操作提示完成申请,等待审核通过即可
签约链接:
APP支付申请条件
2、创建应用并获取APPID
然后创建应用,创建成功后即可获取到APPID创建应用地址:
3、添加功能
创建应用之后,还有给应用添加APP支付功能
勾选APP支付,确定即可
添加APP支付
4、上线应用
根据提示提交审核,等待审核通过即可,注意:测试APP支付必须上线应用,因为沙箱测试不能测试APP支付,可能出现ALI40247错误,见链接:
点击上线,按照提示完成操作即可,如图:
5、配置密钥
参考链接:
生成之后,Java开发找到pkcs8格式的私钥签名,去除头尾、换行和空格,作为开发者私钥
将公钥去除头尾、换行和空格,填入如图所示的地方
填写之后,可以验证公钥的正确性, 根据图示操作即可:
验证公钥正确性
6、了解业务流程
支付宝支付交互流程
二、服务器配置
参考文档:
1、下载SDK
服务器SDK有不同的开发语言版本,下载相应的版本,如图:
不同版本服务器SDK
2、引入jar包
下面以java为例
集成支付宝接口需要引入的文件是:alipay-sdk-java*.jarcommons-logging-1.1.1.jar
若进一步了解代码实现请引入文件:alipay-sdk-java*-source.jarcommons-logging-1.1.1-sources.jar
3、调用示例
传入服务器创建订单所需参数参考文档:
参考事例代码:
//实例化客户端
AlipayClient client = new DefaultAlipayClient("/gateway.do",APP_ID,APP_PRIVATE_KEY,"json","GBK",ALIPAY_PUBLIC_KEY);
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
//SDK已经封装掉了公共参数,这里只需要传入业务参数
//此次只是参数展示,未进行字符串转义,实际情况下请转义
request.setBizContent("
"primary_industry_name":"IT科技/IT软件与服务",
"primary_industry_code":"",
"secondary_industry_code":"",
"secondary_industry_name":"IT科技/IT软件与服务"
AlipayTradeAppPayResponse response = client.execute(request);
//调用成功,则处理业务逻辑
if(response.isSuccess()){
三、Android端配置
参考文档:
1、下载SDK并导入
下载地址:下载后导入工程中
2、注册Activity并添加权限
android:name="com.alipay.sdk.app.H5PayActivity"
android:configChanges="orientation|keyboardHidden|navigation"
android:exported="false"
android:screenOrientation="behind"&
&/activity&
android:name="com.alipay.sdk.auth.AuthActivity"
android:configChanges="orientation|keyboardHidden|navigation"
android:exported="false"
android:screenOrientation="behind"&
&/activity&
&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"/&
3、添加混淆规则
-libraryjars libs/alipaySDK-.jar
-keep class com.alipay.android.app.IAlixPay{*;}
-keep class com.alipay.android.app.IAlixPay$Stub{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback$Stub{*;}
-keep class com.alipay.sdk.app.PayTask{ public *;}
-keep class com.alipay.sdk.app.AuthTask{ public *;}
4、调用支付接口
需要在新线程中调用支付接口(可参考实现)获取PayTask支付对象调用支付(支付行为需要在独立的非ui线程中执行),代码示例:
final String orderInfo =
// 订单信息
Runnable payRunnable = new Runnable() {
public void run() {
PayTask alipay = new PayTask(DemoActivity.this);
String result = alipay.payV2(orderInfo,true);
Message msg = new Message();
msg.what = SDK_PAY_FLAG;
mHandler.sendMessage(msg);
// 必须异步调用
Thread payThread = new Thread(payRunnable);
payThread.start();
5、支付结果获取和处理
(1)、同步返回
商户应用客户端通过当前调用支付的Activity的Handler对象,通过它的回调函数获取支付结果。(可参考alipay_demo实现)
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
Result result = new Result((String) msg.obj);
Toast.makeText(DemoActivity.this, result.getResult(), Toast.LENGTH_LONG).show();
(2)、异步通知
商户需要提供一个http协议的接口,包含在请求支付的入参中,其key对应notify_url。支付宝服务器在支付完成后,会以POST方式调用notify_url传输数据。
记录生活,分享技术~
个人博客:/3700人阅读
Android应用层(29)
先给出可用demo吧
前段时间公司项目需要集成支付宝支付,蚂蚁金服的文档和demo可以说是非常清晰的,经过一些时间的摸索,也是把支付宝支付集成到了项目中。不可缺少的是去蚂蚁金服申请产品签约,这些就不多说了,按照文档一步一步来,应该是没有什么问题的。我们会得到下面几个参数
public static final String PARTNER = "";
public static final String SELLER = "";
public static final String RSA_PRIVATE = "";
public static final String RSA_PUBLIC = "";
准备工作做好了,接下来就是开发了。先把支付宝jar包导进去,然后需要在manifest注册一一下
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="android.permission.INTERNET" /&
android:name="android.permission.ACCESS_NETWORK_STATE" /&
android:name="android.permission.ACCESS_WIFI_STATE" /&
android:name="android.permission.READ_PHONE_STATE" /&
android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&
把支付宝demo中的类拷贝到自己的项目中
下一步就是通过线程调起支付了,请注意,这里签名都是在本地,私钥都是放在本地,实际开发中都是要在服务端完成的。
* 支付宝支付异步任务
private class AliPayThread extends Thread {
public void run() {
String result = AlipayAPI.pay(MainActivity.this, "测试的商品",
"测试商品的详细描述", "0.01");
Message msg = new Message();
msg.what = SDK_PAY_FLAG;
mHandler.sendMessage(msg);
支付的结果
private Handler mHandler=new Handler()
public void handleMessage(Message msg) {
switch (msg.what) {
case SDK_PAY_FLAG: {
PayResult payResult = new PayResult((String) msg.obj);
* 同步返回的结果必须放置到服务端进行验证(验证的规则请看https://doc./doc2/
* detail.htm?spm=0.0.0.0.xdvAU6&treeId=59&articleId=103665&
* docType=1) 建议商户依赖异步通知
String resultInfo = payResult.getResult();
String resultStatus = payResult.getResultStatus();
if (TextUtils.equals(resultStatus, "9000")) {
Toast.makeText(MainActivity.this, "支付成功",
Toast.LENGTH_SHORT).show();
if (TextUtils.equals(resultStatus, "8000")) {
Toast.makeText(MainActivity.this, "支付结果确认中",
Toast.LENGTH_SHORT).show();
Toast.makeText(MainActivity.this,
"支付失败" + resultStatus, Toast.LENGTH_SHORT)
下面贴出整个代码
package com.alpha.
import com.ali.alipay.AlipayAPI;
import com.ali.alipay.PayR
import android.app.A
import android.os.B
import android.os.H
import android.os.M
import android.text.TextU
import android.view.V
import android.view.View.OnClickL
import android.widget.B
import android.widget.T
public class MainActivity extends Activity {
private static final int SDK_PAY_FLAG = 1;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button) findViewById(R.id.bt_submit);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
new AliPayThread().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);
* 同步返回的结果必须放置到服务端进行验证(验证的规则请看https://doc./doc2/
* detail.htm?spm=0.0.0.0.xdvAU6&treeId=59&articleId=103665&
* docType=1) 建议商户依赖异步通知
String resultInfo = payResult.getResult();
String resultStatus = payResult.getResultStatus();
if (TextUtils.equals(resultStatus, "9000")) {
Toast.makeText(MainActivity.this, "支付成功",
Toast.LENGTH_SHORT).show();
if (TextUtils.equals(resultStatus, "8000")) {
Toast.makeText(MainActivity.this, "支付结果确认中",
Toast.LENGTH_SHORT).show();
Toast.makeText(MainActivity.this,
"支付失败" + resultStatus, Toast.LENGTH_SHORT)
* 支付宝支付异步任务
private class AliPayThread extends Thread {
public void run() {
String result = AlipayAPI.pay(MainActivity.this, "测试的商品",
"测试商品的详细描述", "0.01");
Message msg = new Message();
msg.what = SDK_PAY_FLAG;
mHandler.sendMessage(msg);
运行下,就可以调起支付宝了。
另外需要微信支付的可以看我的另一篇博客。多谢
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:62651次
积分:1085
积分:1085
排名:千里之外
原创:41篇
评论:102条
(1)(1)(2)(5)(11)(7)(3)(1)(2)(2)(2)(2)(6)(1)(3)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
需要在手机浏览器使用支付宝,如果手机端有支付宝APP话,调用支付宝没有的话,启用网页版的,这样可以实现吗?具体应该怎么实现?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
可以的,支付有相应的api
可以参考:
历史版本:
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:Android支付宝支付开发实例
投稿:lijiao
字体:[ ] 类型:转载 时间:
这篇文章主要为大家详细介绍了Android支付宝支付开发实例的相关资料,感兴趣的小伙伴们可以参考一下
在移动应用满天飞的时代,随着移动支付的盛行,很多应用中都集成了支付功能。之前的支付一直不是我负责,近期这个项目我负责订单模块少不了要做支付,每每提起支付就觉得怕怕,觉得很难,但当真正做的时候却远远没有想象中的那么难。支付宝的SDK提供了demo,我们只需要配置好一些基本信息,这个demo就可以正常支付。说了这么多,我们还是来看看完整的集成步骤吧!
1、首先得申请支付宝的商家用户,并签约支付宝的相关服务。
移动支付肯定是需要签约 移动支付 了,好像是废话。
2、支付宝商家账号有了之后就好办了,去支付宝开发平台下载支付宝sdk及demo。
下载地址:
3、制作RSA公钥并上传到支付宝平台(未提供Mac版openSSL,只能在Windows系统完成)
  解压下载的SDK,里面有 openssl ,进入到bin目录,不要选中任何文件,按住 SHIFT 再点击右键,选择 此处打开命令窗口 (只适合Windows7+),依次复制并执行以下三条命令,会在bin目录下生成 rsa_private_key.pem 和 rsa_public_key.pem 两个文件。
生成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
登录支付宝商家账号:
点击 查询PID、Key
输入 支付密码 到合作伙伴密钥管理 添加RSA密钥(用记事本打开 rsa_public_key.pem)
  -----BEGIN PUBLIC KEY-----
  MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDe/85yn9aH5UPnzxuVbMs7AMt
  G57hy4NkVWKh3+r7B8fA/yNqsDacHL53Kc/D9u2cMN7jnQnrMY2DavVQOXpIeE1z
  rBzKqBVFYoRjLCI2/NPccsYzQ8vsiTjui9jHLS9KEjGa9m4RnxewQDT/DNMGO7qh
  6iXa6ocsNF2pthweewIDAQAB
  -----END PUBLIC KEY-----
RSA密钥如上所示,我们去掉里面的换行,只复制橙色的字符粘贴保存(这个就不上图了)。
4、基本搞定,这时看看命令提示符窗口中的字符串,复制出来同样去掉换行粘到demo的 RSA_PRIVATE。
修改修改代码这个demo就可以支付了。
5、别忘记这之前要到 支付宝开放平台 登记一下应用,审核通过就可以使用支付功能了。
登记地址:
以上就是本文的全部内容,希望对大家的学习有所帮助。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具支付宝开放平台-文档中心
我的图书馆
支付宝开放平台-文档中心
接口名称:AlipaySDK 接口描述:提供支付功能。
Alipay接口主要为商户提供订单支付功能。接口所提供的方法,如下表所示:
+(Alipay *)defaultS
获取服务实例。
-(BOOL)isL
检测本地是否曾登录使用过。
-(void)payOrder:(NSString *)orderStr fromScheme:(NSString *)schemeStr callback:(CompletionBlock)completionB
支付并通过回调返回结果。
快捷订单支付iOS
方法名称:pay方法 方法原型:(void)payOrder:(NSString *)orderStr fromScheme:(NSString *)schemeStr callback:(CompletionBlock)completionB 方法功能:提供给商户快捷订单支付功能。
参数名称 参数描述
NSString* scheme
商户程序注册的URL protocol,供支付完成后回调商户程序使用。
(CompletionBlock)completionBlock
快捷支付开发包回调函数,返回免登、支付结果。相应的结果参考“”。
NSString* orderStr
主要包含商户的订单信息,key=“value”形式,以&连接。
支付参数示例如下,参数说明见“”: 1partner='8171'&seller_id=''&out_trade_no='-6177'&subject='测试'&body='测试测试'&total_fee='0.01'&notify_url=''&service='mobile.securitypay.pay'&payment_type='1'&_input_charset='utf-8'&it_b_pay='30m'&sign='lBBK%2F0w5LOajrMrji7DUgEqNjIhQbidR13GovA5r3TgIbNqv231yC1NksLdw%2Ba3JnfHXoXuet6XNNHtn7VE%2BeCoRO1O%2BR1KugLrQEZMtG5jmJIe2pbjm%2F3kb%2FuGkpG%2BwYQYI51%2BhA3YBbvZHVQBYveBqK%2Bh8mUyb7GM1HxWs9k4%3D'&sign_type='RSA' 处理客户端返回url
方法名称:处理客户端方法 方法原型:-(void)processOrderWithPaymentResult:(NSURL*)resultUrl standbyCallback:(CompletionBlock)completionB 方法功能:设备已安装支付宝客户端情况下,处理支付宝客户端返回的url。
注意:该方法必须实现,否则将会导致在安装手机支付宝的情况下,支付结果无法正常同步返回。
参数名称 参数描述
NSURL *resultUrl
支付宝客户端回传的url
CompletionBlock completionBlock
当支付宝客户端在操作时,商户app进程在后台被结束,只能通过这个block输出支付结果。
备注:请在APPDelegate的- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation中调用该方法,具体可参见。
回调接口 在支付过程结束后,会通过callbackBlock同步返回支付结果。 返回结果需要通过resultStatus以及result字段的值来综合判断并确定支付结果。在resultStatus=9000,并且success=“true”以及sign=“xxx”校验通过的情况下,证明支付成功。其它情况归为失败。较低安全级别的场合,也可以只通过检查resultStatus以及success=“true”来判定支付结果。以下为订单支付成功的完成信息示例: 1ResultStatus={9000};memo={};result={partner='8171'&seller_id=''&out_trade_no='-6177'&subject='测试'&body='测试测试'&total_fee='0.01'&notify_url=''&service='mobile.securitypay.pay'&payment_type='1'&_input_charset='utf-8'&it_b_pay='30m'&success='true'&sign_type='RSA'&sign='hkFZr+zE9499nuqDNLZEF7W75RFFPsly876QuRSeN8WMaUgcdR00IKy5ZyBJ4eldhoJ/2zghqrD4E2G2mNjs3aE+HCLiBXrPDNdLKCZgSOIqmv46TfPTEqopYfhs+o5fZzXxt34fwdrzN4mX6S13cr3UwmEV4L3Ffir/02RBVtU='} 注意:
支付结果的提取,必须通过CompletionBlock获取,禁止开发者私自解析支付结果返回的URL。获取值的Key对应resultStatus、memo与result(result中的值,开发者可以自行解析); 为了保障已有商户的正常使用,返回参数ResultStatus首字母为大写。在新的SDK中已经用统一的工具类实现了ResultStatus到resultStatus的转换,商户从CompletionBlock中获取resultStatus即可。
FAQ 关于此文档暂时还没有FAQ
TA的最新馆藏[转]&
喜欢该文的人也喜欢}

我要回帖

更多关于 java支付宝接口demo 的文章

更多推荐

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

点击添加站长微信