在当今的互联网时代,第三方支付已经成为了我们不可或缺的一个生活工具。强大的支付能力,在影响着我们的生活方式的同时,也成为了互联网公司必不可少的业务拼图。他可以为商家提供快速可靠的强大支付能力,拓展商家的业务范围。而在众多第三方支付产品中,支付宝无疑是其中最为重要的一个产品。
这个专题带大家快速将自己的应用接入到支付宝,给自己公司的应用增加支付宝的支付能力。
一、支付宝应用基础概念介绍1、支付宝的开放能力:首先我们需要对支付宝产品的整个开放能力有个大致的了解,才能理解我们要怎么将自己公司的应用与支付宝进行融合。在支付宝官方平台的文档中,对整个支付宝产品的开放能力有个完整的介绍。参看 https://opendocs.alipay.com/open/00 a0ut
我们这次重点关注的是其中的支付能力。这些支付能力针对不同的场景提供不同的支付方式,结合我们自己的生活经验,很容易理解。
当面付 这个场景就是我们到超市、商店进行购买支付时的场景。可以是商家提供一个二维码,客户用支付宝扫描支付,也可以是客户打开自己的付款码,给商家扫描完成支付。
APP支付 这个就是嵌入到APP移动应用当中的支付能力。比如可以在淘宝中快速使用支付宝支付。
2、支付宝应用开发模式:支付宝的支付能力有一个专门的管理平台 http://open.alipay.com。 这个平台是支付宝对外重要管理平台。而在这个开放平台下,还有两个重要的子平台: 面向商家的支付宝商家中心( https://mrchportalweb.alipay.com/ ) 和 面向开发者的支付宝开放平台( https://openhome.alipay.com/ )。这两个平台会共用支付宝的账户。
通常的开发模式需要由开发者在支付宝开放平台创建自己的应用,然后给应用定制一些特定的能力,比如支付、营销等。
然后由商家到支付宝商家中心的帐号中心绑定应用,这样商家就可以用上应用提供的能力。
当然,我们在开发学习时,可以用一个支付宝帐号同时登录两个平台。而我们作为开发者,重点就是关注开放平台中的程序开发。
在支付宝开放平台上,给开发者提供了一个测试用的沙箱环境。https://open.ali pay.com/platform/appDaily.htm?tab=info
其中,沙箱应用tab页中给出了沙箱环境中一个测试商户的详细信息。沙箱帐号给出了沙箱环境中的一个商家帐号和用户帐号,这些测试帐号会定期改变的。而沙箱工具里给出了沙箱环境的配套工具。例如我们要测试支付宝的扫码支付,就需要下载沙箱环境的支付宝APP。
正式环境中的这些参数在按照支付宝的规则进行注册、审核后,都是可以获得的。另外要注意,沙箱环境中的商户已经签约了非常多的产品。在正式环境中,这些产品都需要单独签约。
我们这次就会带大家完成电脑网站支付和当面付两个场景的应用开发。
二、电脑网站接入1、支付场景电脑网站支付场景中,客户在PC网站上选定商品,并下单。下单完成后,电脑网站发起支付宝支付,引导用户进入一个支付页面。在支付页面,客户可以使用支付宝APP扫码支付,或者输入帐号密码进行支付。
2、沙箱对接流程:在沙箱应用页面下方点击电脑网站支付(网页地址: https://opendocs.alipay.co m/open/270/106291 ),选择SDK&DEMO,获取电脑网站支付的Demo, alipay.trade.page.pay-JAVA-UTF-8.zip
压缩包解压后,导入到Eclipse中。这是个tomcat工程的模版,我们只需要修改其中AlipayConfig.java中的参数配置,就可以部署到tomcat中进行测试了。
其中
app_id 属 性 可 以 在 沙 箱 应 用 页 面 直 接 获 取 。 gatewayUrl这个属性是请求网关地址URL,默认是正式环境的网关地址。沙箱环境的网关地址是: https://openapi.alipaydev.com/gateway.do 。notify_url和return_url这两个地址是支付宝服务器与应用进行交互的地址。其中notiry_url用于推送交易记录,而return_url是支付完成后的页面跳转地址。应用需要部署到公网才能与支付宝进行交互。开发过程中,如果没有公网地址,可以上ngrok申请一个免费的公网地址,进行内网穿透访问到开发机器上。
alipay_public_key是支付宝公钥属性,需要在沙箱应用页面查看。merchant_private_key是应用自己设置的私钥。其中,这个密钥需要生成一对公私钥,将应用的公钥上传到支付宝上,而私钥自己保存。其中,关于密钥的生成,可以下载支付宝提供的密钥生成器,进行生成。
支付宝采用的是RSA非对称加密的方式来保证业务请求的安全性,RSA加密方式需要两个成对生成的公私钥,来对报文分别进行加密和解密,其中私钥自己保存,而公钥则分发给对应业务方。通常用于一次请求的加解密过程。而支付宝开放平台采用的是双向非对称加密的安全机制。
应用往支付宝发起请求时,需要自己保存私钥,用来对发往支付宝的请求报文进行加密。而公钥需要上传到支付宝中,这样支付宝才能用这个公钥来对报文进行解密。而支付宝在往应用推送业务报文时,同样需要为这个应用生成一对密钥,自己保存私钥,用来对业务报文进行签名。而公钥就需要应用自己去获取,用来对业务报文进行验签,这样才能保证业务报文的安全性。
3、测试验证所有参数配置完成后,就可以发布到tomcat中进行测试了:
主要的业务功能:
点击付款后,会进入付款页面:
在这个页面,可以使用客户的支付宝扫码支付或者网页登录支付。注意,这个是沙箱环境的支付页面,需要使用沙箱环境的支付宝APP扫描二维码支付,或者使用沙箱环境用户信息进行页面登录支付操作。支付完成后,还可以进行对应的其他支付操作。
测试结果:
在这个Demo中,可以使用沙箱环境的买家信息购买商品,并进行退款查询等操作。买家和商家的账户信息可以在沙箱账户页面及时的查看到。
分享就到这里啦,喜欢的朋友们点赞,收藏,加关注哦!领取资料后台私聊小编:即可免费领取!