用支付宝付款时间在APP里购买,结果付款时被拒绝,怎么个情况

标签:至少1个,最多5个
本次讲述的是关于如何在自己app中集成支付宝的支付功能的解说性文章,由于此类文章过多,所以我想想还是讲一些看完这些文章之后,自己的想法跟套路,这也更贴近跟我一样第一次看别人教程的人的思维,让我们开始吧。
开发之前的准备工作
-&1 下载开发包
下载压缩包,并将里面的Android使用支付宝的JAR和Demo解压出来。-&2 签约移动支付在支付宝开放平台申请签约移动支付(这步骤需要公司的执照证件,所以需要运营配合注册)支付宝平台的移动支付签约仅限于公司实名认证用户该步骤的目的是为了获取商户PID和商户收款账号,商户公钥的写入配置,以及查看支付宝公钥,这四个细节。-&3 AndriodMainfest.xml增加(所需权限,界面注册)
切记配置,不然有些莫名其妙的问题就会找上门,不要错的浑然不知,留意配置文件,细心!
-&4 获取开发所需要的四个参数
商户PID和商户收款账号 都是在支付宝申请上都有商户私钥和商户公钥都是需要通ssl文件夹下的bin目录下的OpenSSL程序生成(特别注意MAC自带openssl),支付宝公钥是所有应用都一样,在支付宝申请里面点击查看支付宝公钥里面就有,也没有什么卵用,商户公钥是要在支付宝申请里面放入,来呼应app中的私钥,从而验证一致有效性。命令如下:
生成私钥图
将RSA私钥转换成PKCS8格式(特别注意,在java开发环境它要的商户私钥是PKCS8格式的,不要直接用原始的私钥)
生成RSA公钥(就是商户公钥,要在支付宝申请里面配置进去,这样私钥跟公钥才能一起验证有效性)
开发者的私钥1、必须保证只有一行文字,即,没有回车、换行、空格等2、去掉“-----BEGIN RSA PRIVATE KEY-----”、“-----END RSA PRIVATE KEY-----”,只保存这两条文字之中的部分
◆开发者的公钥1、必须保证只有一行文字,即,没有回车、换行、空格等2、去掉“-----BEGIN PUBLIC KEY-----”、“-----END PUBLIC KEY-----”,只保存这两条文字之中的部分3、保存到一个临时的记事本中。
参数设置完成-&5 加载Jar文件将开发包中的alipay-sdk-common文件夹下面的jar文件复制到项目的libs目录下并加载
-&6、添加混淆规则
1、创建订单信息
* create the order info. 创建订单信息
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=\"\"";
// 调用银行卡支付,需配置此参数,参与签名, 固定值 (需要签约《无线银行卡快捷支付》才能使用)
// orderInfo += "&paymethod=\"expressGateway\"";
return orderI
2、调用SDK支付
* call alipay sdk pay. 调用SDK支付
public void pay(View v) {
String orderInfo = getOrderInfo("测试的商品", "该测试商品的详细描述", "0.01");
// 对订单做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(PayDemoActivity.this);
// 调用支付接口,获取支付结果
String result = alipay.pay(payInfo);
Message msg = new Message();
msg.what = SDK_PAY_FLAG;
mHandler.sendMessage(msg);
// 必须异步调用
Thread payThread = new Thread(payRunnable);
payThread.start();
3、支付结果获取和处理
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(PayDemoActivity.this, "支付成功",
Toast.LENGTH_SHORT).show();
// 判断resultStatus 为非“9000”则代表可能支付失败
// “8000”代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认,最终交易是否成功以服务端异步通知为准(小概率状态)
if (TextUtils.equals(resultStatus, "8000")) {
Toast.makeText(PayDemoActivity.this, "支付结果确认中",
Toast.LENGTH_SHORT).show();
// 其他值就可以判断为支付失败,包括用户主动取消支付,或者系统返回的错误
Toast.makeText(PayDemoActivity.this, "支付失败",
Toast.LENGTH_SHORT).show();
case SDK_CHECK_FLAG: {
Toast.makeText(PayDemoActivity.this, "检查结果为:" + msg.obj,
Toast.LENGTH_SHORT).show();
4、其它功能代码
* check whether the device has authentication alipay account.
* 查询终端设备是否存在支付宝认证账户
public void check(View v) {
Runnable checkRunnable = new Runnable() {
public void run() {
// 构造PayTask 对象
PayTask payTask = new PayTask(PayDemoActivity.this);
// 调用查询接口,获取查询结果
boolean isExist = payTask.checkAccountIfExist();
Message msg = new Message();
msg.what = SDK_CHECK_FLAG;
msg.obj = isE
mHandler.sendMessage(msg);
Thread checkThread = new Thread(checkRunnable);
checkThread.start();
* get the sdk version. 获取SDK版本号
public void getSDKVersion() {
PayTask payTask = new PayTask(this);
String version = payTask.getVersion();
Toast.makeText(this, version, Toast.LENGTH_SHORT).show();
思路条理分析
关于支付宝的配置其实就是这些,只要细心不出错,功能就能实现,那么究竟它是如何结合我们自己的业务来完成对应的功能呢,待我细细道来,支付宝的支付功能的本质是调用我们手机用户的支付宝去往商户的支付宝付款,而不是直接往有些应用中的账号充值。之所以我们能通过支付宝付款的方式,来对自己应用的账户充值,或者买到对应的商品,这真正的玄机就在
这个创建订单中服务器异步通知页面,它会在支付宝付款成功或失败的时候发送订单信息以及是否支付成功信息一起给服务器(注意这个服务器就是自己的业务服务器,这里根据支付宝的反馈过来的支付是否成功信息和订单信息,来后台完成业务的实现)这也就完成了。
因为很多步骤性的操作没法避免,所以我这边文章也借鉴了一些他人的文章,汇总了一些看完文章后自己疑惑的地方,然后研究,理解,从而完善起来,应该会对大家有些许的帮助(PS:官方的教程其实比较全,但是看起来也是有点累,所以写这篇实战性的文章,减少大家的阅读量,快速理解每一步的用意,以及一些易犯错的细节提前预防)。最后奉上我的个人技术订阅号,锵哥的觉悟,微信号:DY_suixincq 我的博客最新文章会在这里同步推出,欢迎关注交流
0 收藏&&|&&10
你可能感兴趣的文章
2 收藏,263
4 收藏,1.6k
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
我要该,理由是:
扫扫下载 App[支付宝怎么买东西]支付宝app中怎么购买恋爱保险?
当前位置:
& [支付宝怎么买东西]支付宝app中怎么购买恋爱保险?
[支付宝怎么买东西]支付宝app中怎么购买恋爱保险?
篇一 : 支付宝app中怎么购买恋爱保险?最近支付宝恋爱保险出现,那么支付宝恋爱保险在哪,要如何打开使用呢? 软件名称:支付宝钱包 for android 10.0.2 安卓官方免费版软件大小:58.5MB更新时间: 1、打开支付宝--点击我的
2、点击保险服务
3、点击财产&
4、里面就可以看到 恋爱保险
注意事项: 自购买之日起3年以后,13年以后的任意一天,投保人和指定心上人首次领取结婚证后,即可领取结婚祝福金,三个计划可选,祝福金1999元、5997元、及9995元三个计划。(投保3年内领取结婚证则不能获得)
礼金有3款: 分99元,297元,495元。 相关推荐: 支付宝app怎么购买电瓶车畅行意外险?
支付宝怎么购买跑步无忧险和手机爆炸险?
支付宝app大学英语四六级意外险怎么免费购买? 篇二 : 支付宝app怎么购买电瓶车畅行意外险?上班族骑电瓶车上下班途中,难免会有以外发生,支付宝手机APP上有购买出行保险的,其中就有电瓶车畅行意外险,可保障一年。保障的范围有:意外残疾、以外医疗费用、以外身故保险、个人第三者责任、第三者责任意外医疗。 软件名称:支付宝钱包 for android 10.0.2 安卓官方免费版软件大小:58.5MB更新时间: 1、手机打开支付宝的APP,点击&全部&
2、全部是指支付宝的全部应用,应用中包括保险服务的应用,点击&保险服务&
3、然后上滑下拉到最下方,点击&全部产品&
4、就会看到&电瓶车畅行意外险&,并点击
5、因为个人支付宝会绑定自己的个人身份证,因此被保人会默认为被自己的名字,生效日期需要自行选择是什么时候开始生效。然后点击&我要投保&
6、点击我要投保之后直接确认付款就好,付款方式可以自行选择是账户余额、余额宝或者个人绑定的银行卡付款。这步是看个人的选择
7、投保之后最好是看一下c产品详情,了解自己投保的保障范围
8、当然,对于理赔流程也需要了解,最好是记好报案电话
注意事项: 个人建议上班族不管是骑自行车还是电瓶车,都可以为自己投保,祝愿所有人出行平安。 相关推荐: 支付宝app怎么购买父母防电信诈骗险?
支付宝怎么购买跑步无忧险和手机爆炸险?
支付宝app大学英语四六级意外险怎么免费购买? 篇三 : 支付宝app怎么购买父母防电信诈骗险?支付宝使用的方便快捷,让朋友们的父母亲也逐渐加入了这一行列。但是由于父母亲们辩别诈骗的能力下降,朋友们耽心父母亲是否会陷入电信诈骗的圈里的话,现在可以通过支付宝购买&防电信诈骗险&了。那要怎样购买呢?小编就与朋友们具体交流如下。 软件名称:支付宝钱包 for android v9.9.5. 安卓官方免费版软件大小:46.1MB更新时间: 1、点击手机桌面的支付宝钱包图标,打开进入下一步操作,如下图示。
2、进入支付宝首页以后,点击菜单下方的&我的&按钮,打开进入下一步操作,如下图示。
3、进入&我的&菜单以后,在页面上找到&保险服务&按钮,点击打开进入下一步操作,如下图示。
4、在保险服务菜单页面上,往下拉就可以看到&父母防电信诈骗险&这个险种了,点击打开进入下一步操作,如下图示。
5、进入如下页面以后,需要选择保险期限、父母亲一方并填入姓名,点击&立即投保&进入下一步操作,如下图示。小编选择了为母亲购保了保险。
6、来到付款页面后,再次核对一下填写的信息是否正确,就可以进行保险服务的付款了。付款成功以后,保险是从投保的次日就生效了。
注意事项:要求本人芝麻信用分在580以上。 相关推荐:
支付宝9.0怎么开启账户安全险?
支付宝怎么购买跑步无忧险和手机爆炸险?
手机怎么买保险?支付宝钱包购买保险的方法篇四 : 支付宝怎么购买中国各大景点门票?支付宝是我们常用的支付工具,但是我们在买门票的时候,可能习惯于在官方购买或者其他渠道购买,但是如果你只携带手机没我wifi的情况去打开官方就很麻烦,其实在支付宝的界面就可以购买门票,下面我们就来看看操作方法吧。 软件名称:支付宝钱包 for android v9.9.5. 安卓官方免费版软件大小:46.1MB更新时间: 1、首先我们打开支付宝,登录自己的帐号,点击【城市服务】
2、然后在城市定位那选择你需要购买门票的所在地
3、先选择省份再选择地方
4、选择好之后,将页面往下拉,然后在文化生活那就有【景点门票】,我们点击进去
5、在这里就可以选择景点
6、在这里可以进行成人票、学生票、老人票和儿童票的选择
7、在预定之前我们可以先看看票型说明,然后再点击【预定】
8、选择预定的日期
9、然后选择好数量,核对一下,然后点击右下角的【确认】,再进行支付价款就可以了。
相关推荐:
设置支付宝交易提醒通知的步骤
支付宝招联好期待贷款怎么申请?
手机怎么买保险?支付宝钱包购买保险的方法
花呗资格怎么申请?支付宝花呗资格申请方法
欢迎转载:
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12

我要回帖

更多关于 支付宝付款到账时间 的文章

 

随机推荐