【CSDN博客迁移】支付宝——手机网站支付接口研究

一 API版本说明

下面是官网的说明:


api版本.png

做个简单说明: API1.0接口主要用于网站(包括手机端的网站)的调用;API2.0主要用于手机app的调用。根据我们做的手机端网站的接口开发,主要使用API1.0接口。
API1.0接口的请求参数如下:

api请求参数.png

根据上面的请求参数做开发前的准备工作。

二 开发准备工作

2.1 首先需要注册支付宝企业账户

详细步骤参考支付宝企业版官网注册。

2.2 PID(partner_id的简称),合作伙伴身份

由于我没有注册企业账户,就用一下官网的截图

pid.png

2.3 密钥(签名)

由于支付宝接口的开发涉及到RMB,所以在请求前后,都要加密,合作伙伴身份的密匙主要有三种方式签名(MD5、RSA、DSA),api1.0版本只支持MD5、RSA。但由于无线快捷支付只支持RSA,所以手机网站支付签名只能采用RSA。
RSA签名由公匙和私匙组成,公匙是开放的,私匙一定要保存好。

2.3.1商户(开发者)的RSA签名生成

https://doc.open.alipay.com/doc2/detail.htm?spm=0.0.0.0.gf8Q4m&treeId=115&articleId=103242&docType=1)详细参考生成签名的网站。
(1)下载并安装OpenSSL工具

ssl安装.png

(2)java开发时注意事项


RAS钥匙.png

2.4上传商户(开发者)密匙

开发的产品要和支付宝交互,吧商户自己的公匙上传到支付宝平台,使支付宝平台对请求的订单解密。和上传本地的公匙到github上面的原理一样,参考下面的网站
https://doc.open.alipay.com/doc2/detail.htm?spm=0.0.0.0.95uDlm&treeId=58&articleId=103578&docType=1

上传公匙.png

三 手机网站支付交互流程

3.1 手机网站支付流程

手机网站支付流程图.png

(1)商户(开发者产品)根据上文提到的请求参数构造数据集合
(2)把构造完成的数据集合,通过页面链接跳转的方式传递给支付宝。注意这里在发送之前用到我们前面提到RSA,用商户自己的私匙去加密。
(3)支付宝平台首先对得到的数据集合,用商户上传的公匙去解密,看有没有人拦截。然后进行数据处理,吧处理完成的数据用支付宝的私匙去加密。
(4)返回处理的结果数据。(官网给了两种方法,如下图)

支付处理结果.png

(5)对获取的返回结果数据进行处理

3.2 退款流程(后续研究)

对通过即时到账等接口付款完成的交易进行部分或全部的退还。商户(开发者账号)需输入支付密码。
即时到账有密退款网址如下:
https://doc.open.alipay.com/doc2/detail.htm?spm=0.0.0.0.99u19c&treeId=66&articleId=103571&docType=1
Demo下载地址:
https://doc.open.alipay.com/doc2/detail?treeId=54&articleId=103419&docType=1

退款下载地址.png

四 手机网站支付官网Demo

4.1 Demo下载及简单说明

我们对照支付宝提供的手机网站支付Demo,来做个简单说明
(1)手机网站支付下载页面:
https://doc.open.alipay.com/doc2/detail?treeId=54&articleId=103419&docType=1

手机网页支付demo下载.png

(2)demo提供了三个版本php、java、c#、asp,我么选用java版本

demo版本.png

4.2 代码分析

4.2.1 请求参数(和我们前面提到的一样)

请求参数.png

4.2.2 签名文件

果然是RSA签名


签名文件.png

4.2.3 主要功能

支付核心模块.png

下面可证明手机网址支付使用的是API1.0版本


支付请求api版本.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 之前由于项目需要,我所负责的产品有接入支付宝,今天抽出时间整理了出了与支付宝对接的流程。文章大部分内容都是直接引用...
    耳东叔阅读 5,950评论 0 6
  • 支付宝集成过程详解——运行DEMO 前言,梦想是需要坚持的,在路上,一路前行。加油。 这两天软件需要集成支付宝了,...
    改昵称已被占用阅读 19,103评论 2 39
  • 此项目已开源 赶快来围观 Start支持下吧 【客户端开源地址-JPay】【服务端端开源地址-在com.javen...
    LucasAdam阅读 1,975评论 0 3
  • iOS支付 iOS支付分为两类,第三方支付和应用内支付(内购)。 第三方支付包括:支付宝支付、微信支付、银联支付、...
    请输入账号名阅读 6,278评论 3 22
  • iOS支付 iOS支付分为两类,第三方支付和应用内支付(内购)。 第三方支付包括:支付宝支付、微信支付、银联支付、...
    sillen阅读 1,413评论 0 1