支付宝开发问题记录

项目中要有支付功能,所以就用到了支付宝支付,然后查看它的文档,已经迷在里面了

我要用到即使到账,手机网站支付,快捷登录

文档地址:

https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.fV5JA2&treeId=193&articleId=105333&docType=1

我用的是历史接口 有相应的demo

需要注意的是,历史接口需要用到是的合作伙伴密钥,如下图所示:

现在支付宝开发者平台用的新的接口,需要使用开发平台密钥:

具体的关于新的接口使用已经开发平台介绍可以看下:

https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.Meh5T3&treeId=200&articleId=105304&docType=1

因为我用的历史接口,所以这里具体的流程也不清楚。

开发的时候用到哪个服务就需要进行签约。

好像是有两种方式签约,一种是自助式签约,一种是人工签约。

下面这个地址是服务列表

https://b.alipay.com/order/productSet.htm

从这个列表进去,进行签约,具体的签约流程比较简单,可以参考如下的地址

https://cshall.alipay.com/support/help_detail.htm?help_id=396831

这个应该是自助式签约,比较方便。

另外一个地址

https://b.alipay.com/signing/productSet.htm

这个也是服务的列表,从这个列表进去进行签约就比较蛋疼了

操作步骤如下:

1.

2.点击’立即签约’到下一步:

3.如果已经实名认证了,点击填写到下一步:

4.这个页面就比较头痛了,需要上传一个网络文化经营许可证,这个证貌似特别难办,我们公司至今没有办下来,所以下面的步骤我也没有办法演示了。

所以从上面来看,自助式签约很方便,不用上传这个网络文化经营许可证,不知道是不是支付宝忘记了,还是怎么回事。不保证后面支付宝升级,自助式签约也需要上传这个证了。

上面差不多就是使用支付宝支付需要做的准备工作了,下面开发就比较好弄了,支付宝提供了一些服务的demo,只不过只有java,php,.net版本的,因为我用的是nodejs,没办法直接使用,网上搜索了下nodejs版本

https://github.com/lodengo/alipay

这个项目已经最后一次更新已经是两年前了,然后运行的时候有问题,后来就在他的基础参考支付宝提供的最新版的php版本提炼出来的,修改了一些bug

自己做了一个demo

地址:

https://github.com/jiangli373/AlipaySdk

项目的名字应该叫做AlipayDemo,当时想做成sdk,谁知最后做成了一个demo

目前集成了

1.即时到帐的接口

2.支付宝快捷登录

3.支付宝手机支付

接入即时到帐需要先在支付宝进行签约,签约成功以后才能使用这个接口

即时到账文档说明:https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.6fcylX&treeId=62&articleId=104743&docType=1

运行步骤:

1.git clone https://github.com/jiangli373/AlipaySdk

2.npm install

3.cp alipay_config.default.js alipay_config.js

4.修改alipay_config.js 添加相关信息:

var config = {
    partner:'' //合作身份者id,以2088开头的16位纯数字
    ,key:''//安全检验码,以数字和字母组成的32位字符
    ,seller_email:'' //卖家支付宝帐户 必填
    ,host:'http://localhost:3000/'
    ,cacert:'cacert.pem'//ca证书路径地址,用于curl中ssl校验
    ,transport:'http' //访问模式,根据自己的服务器是否支持ssl访问,若支持请选择https;若不支持请选择http
    ,input_charset:'utf-8'//字符编码格式 目前支持 gbk 或 utf-8
    ,is_anti_phishing_key:false //是否防止钓鱼  登录使用   如果已申请开通防钓鱼时间戳验证,这里需要设置为true
};

项目说明:

app.js 中 require(‘./useAlipay’).route(app); # 设置了支付宝通知路由

useAlipay.js包装了下Alipay对象,可以在工程中调用