支付宝即时到账接口

时间:2022-08-06 03:23:33

做的项目用到支付宝及时到账,后来再去支付宝看时,首页改版了,找了半天,先总结如下

首先需要签约:

方式一:在线申请

申请地址(即时到账收款):https://b.alipay.com/order/productDetail.htm?productId=2015110218012942

提交申请后,会有一个审核阶段,审核通过才能使用该接口。

登录b.alipay.com->我的商家服务,可在“签约管理”中查看审核进度。

方式二:开放平台创建应用

  1. 登录开放平台——管理中心,选择“创建应用”,选择“自用型应用——网页应用”。
  2. 填写应用名称,提交后,会跳转到提示等待审核的页面,审核时间为两个工作日内。
  3. 应用审核通过后,在“功能信息”页找到“即时到账”功能,点击“申请开通”。
    支付宝即时到账接口

然后获取PID及密钥:

获取PID

更新时间:2017/01/10 访问次数:94080 


1.开发者登录支付宝开放平台,点击右上角的“账户中心”。

支付宝即时到账接口

2.选择“mapi网关产品密钥”,即可查询到合作伙伴身份(PID),以2088开头的16位纯数字。

支付宝即时到账接口

 

可以操作了,快速接入:

1.DEMO下载

下载即时到账接口DEMO,内含JAVA、PHP、CSHARP三种编程语言,以及MD5和RSA两种签名方式的DEMO

<a href="http://aopsdkdownload.cn-hangzhou.alipay-pub.aliyun-inc.com/demo/alipaydirect.zip?spm=a219a.7629140.0.0.ZXTiAo&file=alipaydirect.zip" >下载DEMO</a>

2.配置DEMO中的开发者信息

说明:调用接口时需要开发者信息。

编程语言 配置文件路径
JAVA 找到目录下src->com->alipay->config->AlipayConfig.java文件并打开。
PHP 找到目录下alipay.config.php文件并打开。
.NET 找到目录下app_code->AlipayConfig.cs文件并打开。

 

在配置文件中找到以下参数进行对应配置:

partner 合作者身份ID,签约账号,当你成为支付宝的签约用户时会分配一个以2088开头由16位纯数字组成的字符串,参见本文档“获取PID”。
seller_id 收款支付宝账号,一般情况下收款账号就是签约账号,使用partner即可。

支付宝即时到账接口

  • 若您选择MD5签名方式,请根据以下内容配置:
    key MD5安全校验码,详见本文档“配置密钥——查看MD5密钥(Key)”。
     支付宝即时到账接口
  • 若您选择RSA签名方式,请根据以下内容配置:
    private_key
    • 在本地生成商户自己的RSA私钥和公钥->详见本文档“配置密钥——配置RSA密钥”;
    • 将生成的公钥去掉“-----BEGIN PUBLIC KEY-----”和“-----END PUBLIC KEY-----”且去空格去回车,上传到支付宝->详见本文档“配置密钥——配置RSA密钥”。

    注:JAVA将生成的原始私钥转PKCS8格式后,去掉“-----BEGIN RSA PRIVATE KEY-----”和“-----END RSA PRIVATE KEY-----”且去空格去回车填写在此。

    PHP和.NET使用原始私钥格式,去掉“-----BEGIN RSA PRIVATE KEY-----”和“-----END RSA PRIVATE KEY-----”且去空格去回车填写在此。
    alipay_public_key 此处是支付宝公钥,不是商户刚刚生成的公钥,用于验证返回回调信息,详见本文档“配置密钥——配置RSA密钥”。
    注:DEMO已经配置,无需修改。

3.运行DEMO

配置完成并且放至对应环境(环境需要自己搭建)服务器,即可运行DEMO,进行支付体验。

  • JAVA:JDK1.5以上。
  • .NET:framework 3.5以上
  • PHP:PHP5.0以上,且需要开启CURL服务、SSL服务。
  • 商户端是否有对DNS设置,是否有做防火墙策略。
  • 是否有限制端口,需要开通的端口:80或443。

4.配置同步返回和异步回调

配置同步返回(同步跳转通知)和异步回调(异步通知)。在配置文件中有return_url和notiry_url两个参数,可分别配置到DEMO中的return_url页面和notify_url页面。

注意:DEMO两个页面的处理区别在于以下两点,其他相同。

  • 同步返回使用GET方式获取,异步通知使用POST方式获取;
  • 同步返回验证有1分钟超时,异步通知验证没有时间限制。

以JAVA版DEMO异步通知页面处理逻辑为例

  1. 使用POST方式接收所有数据
  2. 将数据使用AlipayNotify.verify() 验签方法验证。
    (1)验证签名是否正确。
    (2)验证是否是支付宝发来的通知。
  3. 通过返回参数中的trade_status字段(交易状态)判断并可写入执行业务逻辑代码。
  4. 使用out.print("success"); 打印success。不可有其他任何HTML代码。

注:notify_url页面只能返回success,异步通知页面上不可有任何HTML代码。支付结果请以异步通知为准。

 

最后需要确认是否是https,如果是https,那么需要安装ssl证书,证书要求如下:

要求“正规的证书机构签发,不支持自签名”,如果不理解请咨询证书供应商。

域名证书检测地址参考:https://cryptoreport.websecurity.symantec.com/checker/