在集成扫码支付能力时,建议实现如下支付流程,创建订单并支付,根据返回的结果确定支付状态,并进行相应的异常处理,其过程如下图所示.
如商户由于客观原因(如无公网服务器接受支付宝请求等)无法接受异步支付通知,则忽略3.4和3.4.1步骤
收起 | 了解更多示例开发细节 | 了解更多异常处理 | 查看API
本文将带您接入支付宝扫码支付。
扫码支付:用户支付宝钱包上的扫一扫功能扫商户二维码,完成付款。
创建应用 | 在开放平台创建一个应用 | |
接入扫码支付能力,需要在开放平台创建一个应用,通过该应用来接入各种能力。 若还未成为开放平台的入驻服务商或者商户, 请完成入驻指引。
|
||
配置应用 | 为创建的应用添加所需功能 | |
给应用添加当面付功能,这样就可以在你的应用里使用扫码支付能力。
签约 在使用这些能力的时候,需要在开放平台里进行签约,这时候约定的合同就生效了。也可以代替商户签约。
配置密钥 为了保证交易双方的身份和数据安全,需要配置双方密钥。 了解支付宝密钥处理体系 | 开始生成密钥 | 开始配置密钥 为了确定交易双方(商户和支付宝)的身份和交易数据的安全,需要对交易数据进行双方校验 应用公钥(商户自身的RSA公钥): 支付宝使用该公钥验证该交易是商户发起。 支付宝公钥(支付宝的RSA公钥):商户使用该公钥验证该结果是支付宝返回的。
|
||
设计 | 接入设计 | |
常用的接入方式与架构建议 在开始开发前,需要了解接入的方式或者材料等 支持主流的红外扫描设备
|
||
安全设计 为了保证交易安全,支付宝采用了一系列的安全手段 1. 采用HTTPS协议传输交易数据,防止数据被截获,解密。 2. 采用RSA非对称密钥,明确交易双方的身份,保证交易主体的正确性和唯一性 3. 条码定时刷新,防止被拍照 4. 防止截屏(截屏码失效)
|
||
开发 | 开发应用与支付场景实现 | |
SDK和开发语言 开发者可以使用多种开发方式接入支付能力,开放平台提供了支持主流开发语言的SDK接入的方式, 建议开发者采用SDK接入模式。也支持使用自己熟悉的编程语言构造HTTP请求接入支付宝支付能力的方式 以java语言为例,调用交易预下单接口alipay.trade.precreate: AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2"); //获得初始化的AlipayClient //创建API对应的request类 AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest(); request.setBizContent("{" + " \"out_trade_no\":\"20150320010101001\"," + " \"seller_id\":\"2088102146225135\"," + " \"total_amount\":\"88.88\"," + " \"discountable_amount\":\"8.88\"," + " \"undiscountable_amount\":\"80\"," + " \"buyer_logon_id\":\"15901825620\"," + " \"subject\":\"Iphone6 16G\"," + " \"store_id\":\"NJ_001\"" + " }"); //通过alipayClient调用API,获得对应的response类 AlipayTradePrecreateResponse response = alipayClient.execute(request); System.out.print(response.getBody()); //根据response中的结果继续业务逻辑处理 收起 | 了解更多SDK开发接入细节 | 查看相关的API 以调用交易预下单接口alipay.trade.precreate为例,构造http请求发起支付: 请注意需要对请求做urlencode处理,以下请求是为了方便查看,而没有做urlencode的原始报文 https://openapi.alipay.com/gateway.do?timestamp=2013-01-01 08:08:08&method=alipay.trade.precreate&app_id=1781&sign_type=RSA2&sign=ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE&version=1.0&biz_content= { "out_trade_no":"20150320010101001", "seller_id":"2088102146225135", "total_amount":88.88, "discountable_amount":8.88, "undiscountable_amount":80, "buyer_logon_id":"15901825620", "subject":"Iphone6 16G", "store_id":"NJ_001" } //为确保安全通信,需自行验证响应示例中的sign值是否为蚂蚁金服所提供。
|
||
支付主流程 在集成扫码支付能力时,建议实现如下支付场景:(创建订单并支付,根据支付结果确定支付状态,并且做异常处理,必要时候关闭订单) 在集成扫码支付能力时,建议实现如下支付流程,创建订单并支付,根据返回的结果确定支付状态,并进行相应的异常处理,其过程如下图所示. 如商户由于客观原因(如无公网服务器接受支付宝请求等)无法接受异步支付通知,则忽略3.4和3.4.1步骤 收起 | 了解更多示例开发细节 | 了解更多异常处理 | 查看API
|
||
退款流程 商户由于业务原因可能需要退款,退款的途径按照支付途径原路返回. 支付渠道为花呗、余额等退款即时到账。银行卡的退款时间以银行退款时间为准,一般情况下2小时内可到账。也可以在商户门户(b.alipay.com)中退款 当商户因为业务原因如金额错误,用户退货,对账不平等情况下可能需要退款,可以使用交易成功的商户订单号或支付宝交易号进行退款 , 支持全额和部分退款,其过程如下图所示. 收起 | 了解更多示例开发细节 | 查看API
|
||
优惠与运营 可以为商品进行促销活动
|
||
对账 为了保障交易的正确性,支付宝提供了交易账单数据提供给商户对账
|
||
返佣 服务商帮助商户接入支付能力时候可以获取交易的返佣. 返佣技术接入,只需在API中传入返佣服务商ID即可获取返佣。
|
||
调试应用 | 沙箱环境供调试使用 | |
支付能力直接涉及到交易与资金,为了方便开放者调试支付能力,我们已经准备好沙箱环境,包括沙箱环境账号和沙箱版支付宝钱包,这样就可以在沙箱环境调试了.
|
||
上线应用 | 上线应用所需步骤 | |
上线 商户本身应用上线时候,也要把支付宝开放平台的应用上线.
|
||
验收 为了确保应用质量,开放平台提供了云验收平台,可以在线验收应用.
|
||
第三方授权 如果是服务商希望把应用能力拓展给商户,那么使用第三方授权就可以获取商户的授权,代商户发起支付.
|
||
监控应用 | 在开放平台监控交易情况 | |
应用上线后还可以在开放平台,查看应用运行情况以及交易状态. |
||