文档章节

项目实训-千寻-支付宝服务申请与使用

 手指点点-千寻
发布于 2017/06/04 20:55
字数 735
阅读 2
收藏 0
点赞 0
评论 0

1.服务申请
支付宝服务的申请还是有些麻烦的,幸好我们有提前准备,但是依旧持续了大约1个月的时间。各种审核,各种验证,甚至各种实名制,前前后后麻烦死了。这段历程就不提了,诸位要是想使用支付宝的商户接口,一定要提前准备啊。
附支付宝开放平台网址:https://open.alipay.com
支付宝商户版网址:https://shanghu.alipay.com
2.服务端部署
支付宝的服务端集成代码,就相对容易一些了,主要就是计算签名,然后返回给客户端。签名的计算方法也很简单,官方也给出了示例。这里附上核心计算方法,只要把其中的私钥换成在支付宝官方申请的私钥,就可以使用了。
当然,说简单,是因为我们没有使用支付结果回调接口。如果要考虑安全性的话,后期我们会考虑添加。

//加密规则  
private static final String ALGORITHM = "RSA";  
private static final String SIGN_ALGORITHMS = "SHA1WithRSA";  
private static final String DEFAULT_CHARSET = "UTF-8";  
// 私钥,pkcs8格式  
public static final String RSA_PRIVATE = "";  
//String content来自安卓端的签名内容  
public static String getAlipaySign(String content) {  
    try {  
        PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec(  
                Base64.decode(RSA_PRIVATE));  
        KeyFactory keyf = KeyFactory.getInstance(ALGORITHM);  
        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();  
    }  
    return "0";//错误标志  
}

3.安卓端配置
安卓端的处理就更加容易了,导入好jar包,剩下的工作就不多了。当然,虽然这么说,但是我们实际使用时,还是遇到了不少问题的。其中最大的问题就是,服务端返回的签名有问题。以下是安卓端的处理流程:

//构造支付信息  
private String build(String service_id, String service_name,  
                     String service_detail, String service_price) {  
    //service_price判断与处理,此处就用string,用double-try即可  
    // 商户网站唯一订单号  
    orderInfo += "&out_trade_no=" + "\"" + service_id + "\"";  
    // 商品名称  
    orderInfo += "&subject=" + "\"" + service_name + "\"";  
    // 商品详情  
    orderInfo += "&body=" + "\"" + service_detail + "\"";  
    // 商品金额  
    orderInfo += "&total_fee=" + "\"" + service_price + "\"";  
    return orderInfo;  
}  
  
//后台请求签名  
@Override  
protected String doInBackground(Void... params) {  
    // 构造PayTask 对象  
    PayTask alipay = new PayTask(activity);  
    // 调用支付接口,获取支付结果  
    String result = alipay.pay(payInfo, true);  
    return result;  
}
//拿到签名后,在安卓端发起支付请求  
@Override  
protected void onPostExecute(String result) {//result为签名  
    AlipayResult alipayResult = new AlipayResult(result);//其中会处理null  
    String resultStatus = alipayResult.getResultStatus();  
    //判断resultStatus 为“9000”则代表支付成功  
    //后续处理……  
}

4.调用测试
其实,测试一直是包含在整个配置的过程中的。还有,我们测试,每次都是一分钱一分钱的进行的,测试了好几毛钱呢。整体来说,效果还是不错的。不过有几次,需要用户进行登录,我们也没弄明白为什么,感觉可能是签名有问题吧,没有深入研究。


附录:支付宝官方文档:
https://openhome.alipay.com/developmentDocument.htm

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 14
码字总数 9640
作品 0
济南
PHP入门培训哪家机构教的好?就业靠谱么?

PHP 是一种 HTML内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛地运用。因此,PHP程序员也是同类编程语言中较多的,而PHP的市场需求量也越来...

PHP那些事 ⋅ 2017/12/19 ⋅ 0

为电子商务网站添加在线支付功能

网页制作Webjx文章简介:为了方便买家们在网站购物时能够在线支付货款并有效提升网站档次,作为购物网站的站长有必要给网站增添在线支付功能,这也是商务网站发展的大势所趋。拥有在线支付功...

james_laughing ⋅ 2015/01/15 ⋅ 0

微信和支付宝支付的二次封装--JPay

JPay 对微信App支付、支付宝App支付的二次封装,对外提供一个相对简单的接口以及支付结果的回调 使用方法 1、引入 2. Android Manifest配置 2.1权限声明 2.2注册activityapplication节点添加如...

Javen ⋅ 2017/04/09 ⋅ 4

【官方指南】教你如何快速成为CSDN博客专家

博客专家申请规则 申请过博客专家的博主们都阅读过以上规则了吧,其中有一条“在GitChat 成功分享过一次Chat,或者CSDN学院的成功发布过课程的博主可适当放宽要求。”不知道大家有木有仔细阅...

blogdevteam ⋅ 04/18 ⋅ 0

云计算--培训课程大纲

第一阶段 Linux系统管理实战 01 打开计算机世界的大门 行业分析、计算机基础、 Windows server基础、网络基础 02 Linux基本管理 Linux安装、Linux常规命令、文本编辑器 03 Linux软件与文件系...

wy125629 ⋅ 2017/10/11 ⋅ 0

JEECG支付服务窗专题 - 激活开发者模式

申请支付服务窗,二次开发首先要激活开发者模式 第一步:RSA私钥及公钥生成 window环境,下载生成工具,双击脚本文件“”支付宝RAS密钥生成器SHAwithRSA1024V1.0.bat”即可生成。 私钥(注意...

Jeecg ⋅ 2016/07/08 ⋅ 0

Docker Registry 和持续集成 (培训视频+Git代码)

6月17日,由cSphere希云(https://csphere.cn )携手腾讯云、开源中国主办的第二期Docker实训课程完美结束! 原计划课程报名截止时间是6月16日21点,但由于Docker爱好者热情高涨,不得不将报名...

oschina ⋅ 2015/06/18 ⋅ 9

构建无人机服务闭环:千寻位置发布知翼无人机监管平台

随着无人机行业的飞速发展,在满足了各行业需求的同时,也造成了一些「飞行隐患」,时至今日,相关部门对无人机监管要求日趋严格,保障飞行合规已成为无人机,特别是行业无人机运营者最迫切的...

新智造 ⋅ 04/24 ⋅ 0

哈尔滨大数据培训课程哪个好?从内容教你如何判断

导读 随着大数据飞速发展,大数据将对人类生活产生深远影响,大数据是未来科技浪潮发展不容忽视的巨大推动力量,加上人工智能对大数据技术的需要,使越来越多的人想要从事大数据,但却不知道哈...

hxl0009 ⋅ 04/16 ⋅ 0

银联支付-初次接触

银联开开放平台首页 1、注册 银联开发平台 https://open.unionpay.com 平台分为三个角色 我是商户 我是机构 我是开发者 第一反应我是开发者就直接申请我是开发者的角色。但并没有如愿以偿如下...

Javen205 ⋅ 2017/10/06 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

博客迁移到 https://www.jianshu.com/u/aa501451a235

博客迁移到 https://www.jianshu.com/u/aa501451a235 本博客不再更新

为为02 ⋅ 34分钟前 ⋅ 0

win10怎么彻底关闭自动更新

win10自带的更新每天都很多,每一次下载都要占用大量网络,而且安装要等得时间也蛮久的。 工具/原料 Win10 方法/步骤 单击左下角开始菜单点击设置图标进入设置界面 在设置窗口中输入“服务”...

阿K1225 ⋅ 今天 ⋅ 0

Elasticsearch 6.3.0 SQL功能使用案例分享

The best elasticsearch highlevel java rest api-----bboss Elasticsearch 6.3.0 官方新推出的SQL检索插件非常不错,本文一个实际案例来介绍其使用方法。 1.代码中的sql检索 @Testpu...

bboss ⋅ 今天 ⋅ 0

informix数据库在linux中的安装以及用java/c/c++访问

一、安装前准备 安装JDK(略) 到IBM官网上下载informix软件:iif.12.10.FC9DE.linux-x86_64.tar放在某个大家都可以访问的目录比如:/mypkg,并解压到该目录下。 我也放到了百度云和天翼云上...

wangxuwei ⋅ 今天 ⋅ 0

PHP语言系统ZBLOG或许无法重现月光博客的闪耀历史[图]

最近在写博客,希望通过自己努力打造一个优秀的教育类主题博客,名动江湖,但是问题来了,现在写博客还有前途吗?面对强大的自媒体站点围剿,还有信心和可能型吗? 至于程序部分,我选择了P...

原创小博客 ⋅ 今天 ⋅ 0

IntelliJ IDEA 2018.1新特性

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 本文转载自:netty技术内幕 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再...

Romane ⋅ 今天 ⋅ 0

浅谈设计模式之工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻...

佛系程序猿灬 ⋅ 今天 ⋅ 0

Dockerfile基础命令总结

FROM 指定使用的基础base image FROM scratch # 制作base image ,不使用任何基础imageFROM centos # 使用base imageFROM ubuntu:14.04 尽量使用官方的base image,为了安全 LABEL 描述作...

ExtreU ⋅ 昨天 ⋅ 0

存储,对比私有云和公有云的不同

导读 说起公共存储,很难不与后网络公司时代的选择性外包联系起来,但尽管如此,它还是具备着简单和固有的可用性。公共存储的名字听起来也缺乏专有性,很像是把东西直接堆放在那里而不会得到...

问题终结者 ⋅ 昨天 ⋅ 0

C++难点解析之const修饰符

C++难点解析之const修饰符 c++ 相比于其他编程语言,可能是最为难掌握,概念最为复杂的。结合自己平时的C++使用经验,这里将会列举出一些常见的难点并给出相应的解释。 const修饰符 const在c...

jackie8tao ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部