10月30号,在海南博鳌举行的,腾讯开放平台大会后,最近支付宝钱包的火爆,让支付宝全力拓展了第三方。
与微信向所有有能力的第三方放开的方式不同,支付宝是有选择的开放,选择 有规模有技术实力 的第三方签订协议,成为支付宝的授权渠道商。“渠道商的作用是两个,一个是帮支付宝推广支付宝钱包企业版,二是帮商家将业务集成到支付宝服务窗中。”
当然仅靠这 30个左右的全国代理商是不可以快速发展的,和微信一样
支付宝相关方面也不遗余力的对 阿里云认证开发者,https://fuwu.alipay.com/platform/activeDeveloperMode.htm开放所有权限:
支付宝之所以选择这种方式,是因为其需要依赖渠道商进行地面推广,商家维护,因此它必须确保这些渠道商是可以长期信赖的。
这也就决定了支付宝服务窗平台的第三方开发者并不会短时间增长很多,但是会扶持一些第三方做大,成为某一片区域的总渠道商。
所以支付宝希望通过渠道商,为商家推广O2O解决方案,使商家最终纳入支付宝服务链条。支付宝和渠道商、渠道商和商户、支付宝和商户之间都存在利益关联。
据了解 阿里云开发者交流群,目前未来规划签约企业三十多家开发商,当然开放商还可以招募下级代理商拓展商家。
1.切入话题,成为淘宝认证开发者,ACE后 即可获取对应权限吗,需要服务器支持 openSSL(Secure Sockets Layer 安全套接层),
使用阿里云服务器的 站长可以点击 http://www.aliyun.com 市场进行一键安装。
安装步骤:
通过openssl工具生成RSA的公钥和私钥(opnssl工具可在互联网中下载到)
打开bin文件夹下面的openssl.exe,打开生成命令.txt文件,输入“生成命令.txt”文件中
genrsa -out rsa_private_key.pem 1024,并回车
得到生成成功的结果,如下图:
此时,我们可以在bin文件夹中看到一个文件名为rsa_private_key.pem的文件,用记事本方式打开它,可以看到-----BEGIN RSA PRIVATE KEY-----开头,-----END RSA PRIVATE KEY-----结尾的没有换行的字符串,这个就是原始的私钥。
输入命令pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt,并回车
得到生成功的结果,这个结果就是PKCS8格式的私钥,如下图:
右键点击openssl窗口上边边缘,选择编辑→标记,选中要复制的文字(如上图),
此时继续右键点击openssl窗口上边边缘,选择编辑→复制,
把复制的内容粘土进一个新的记事本中,可随便命名,只要知道这个是PKCS8格式的私钥即可。
输入命令rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem,并回车,
得到生成成功的结果,如下图:
此时,我们可以在bin文件夹中看到一个文件名为rsa_public_key.pem的文件,用记事本方式打开它,可以看到-----BEGIN PUBLIC KEY-----开头,
-----END PUBLIC KEY-----结尾的没有换行的字符串,这个就是公钥。
把RSA公钥和私钥配置到接口中
1)整理公钥和私钥的格式
Java与.Net开发语言
◆开发者的私钥
1、必须保证只有一行文字,即,没有回车、换行、空格等
2、去掉“-----BEGIN RSA PRIVATE KEY-----”、“-----END RSA PRIVATE KEY-----”,只保存这两条文字之中的部分
◆开发者的公钥
1、必须保证只有一行文字,即,没有回车、换行、空格等
2、去掉“-----BEGIN PUBLIC KEY-----”、“-----END PUBLIC KEY-----”,只保存这两条文字之中的部分
3、保存到一个临时的记事本中。
Php开发语言
◆开发者的私钥
1、必须保证只有一行文字,即,没有回车、换行、空格等
2、不需要对刚生成的(原始的)私钥做pkcs8编码,即不需要使用到PKCS8格式的私钥
3、不需要去掉去掉“-----BEGIN PUBLIC KEY-----”、“-----END PUBLIC KEY-----”
简言之,只要维持刚生成出来的私钥的内容即可。
◆开发者的公钥
1、必须保证只有一行文字,即,没有回车、换行、空格等
2、去掉“-----BEGIN PUBLIC KEY-----”、“-----END PUBLIC KEY-----”,只保存这两条文字之中的部分
3、保存到一个临时的记事本中,再打开open.alipay.com,登录,在应用管理里面找到对应的应用。
4、上传RSA公钥,即刚才保存在临时记事本中的那串字符串。
2) 把公钥上传给支付宝
1、打开open.alipay.com,登录,在应用管理里面找到对应的应用。
2、进入密钥配置的界面,上传RSA公钥,即刚才保存在临时记事本中的那串字符串。
3) 从支付宝那获得支付宝公钥
在配置密钥的界面可以查看支付宝公钥。
4) 把私钥、支付宝公钥配置到支付宝接口中
a) Java与。Net开发语言
打开代码示例中config配置文件,分别在参数private_key、public_key中填写好商户的私钥、支付宝的公钥即可
b) Php开发语言
打开代码实例中的key文件夹,
方法一:
分别打开rsa_private_key.pem私钥文件、alipay_public_key.pem支付宝公钥文件,按照“()”注释内容填写并保存
方法二:
按照1)b)整理后的私钥文件和公钥文件重新命名为“rsa_private_key.pem”、“alipay_public_key.pem”,直接覆盖key文件夹中的这两个文件即可。
PHP的RSA配置常见问题:
●PHP开发语言的代码示例中openssl文件夹中的3个DLL文件用法
1、如果你的系统是windows系统,且system32文件目录下没有libeay32.dll、ssleay32.dll这两个文件
那么需要拷贝这两个文件到system32文件目录。
2、如果您的php安装目录下(php\ext)中没有php_openssl.dll
那么请把php_openssl.dll放在这个文件夹中
第二步:
直接部署到开发环境,或Apache中使用。
Gateway.php文件为与支付宝对接的网关。
DEMO中要修改config.php,修改appid、支付宝公钥、商户私钥、商户公钥、网关地址 这几个
如果是开发调试,可以不修改商户公钥和私钥,但发布上线时,请修改(安全第一)
支付宝的线上公钥和沙箱公钥如下两个文件:
生成公钥私钥对,替换demo中的公钥和私钥对(调试的时候,可以不用替换,直接使用demo中的也可以,但线上建议替换,安全第一)
到这里下载 http://pan.baidu.com/s/1eQf5lho 工具,打开此工具,并按照下图所示操作,可以生成RSA密钥对。Php语言使用的私钥不需要转换成PKCS8格式。
登录到https://fuwu.alipay.com/platform/developerMode.htm 服务窗,打开开发者模式。
验证开发者网关,输入开发者的公网网关入口,和开发者公钥(一行格式)
打开服务窗后台的菜单配置功能,添加几个需要的菜单。
建议配置demo中的wap.php到一个菜单中测试,菜单类型选择跳转网页
在服务窗后台打开二维码菜单,查看服务窗的二维码
打开手机钱包,用手机钱包扫描页面上的二维码即可关注这个服务窗,做调试开始。
在手机服务窗中点击菜单,即可将信息发送到刚部署的服务端上。
Config.php 拿到Demo后需要修改appid,网关地址。
Key文件夹下的几个文件,支付宝线上公钥和沙箱公钥都在文件夹中,程序中调用的是alipay_rsa_public_key.pem这个文件,如果需要切换环境,则用线上支付宝公钥或沙箱支付宝公钥直接替换就可以。
商户私钥、公钥(rsa_private_key.pem、rsa_public_key.pem)测试时,可以直接使用Demo这一对,但上线时,建议更换(为了安全。)
Gateway.php 请将该文件配置到支付宝服务窗后台,验证网关处,这个文件主要负责接收和处理支付宝发过来的消息。
Index.php 该文件可以配置到服务窗的菜单中,分别配置两种类型的菜单,跳转网页和自动登录,都把地址指向到该文件。一些功能使用可能会提示无权限。
Wappay 文件夹是wap支付的Demo。
Sdk中已经包含了许多接口,只需要按照格式做好参数,就可以直接调用使用。在Demo中基本都是使用的此种方式来发送请求的。
如:获取关注者列表:
//先设置好biz_content参数。
$biz_content = "{\"nextUserId\":\"\"}";
//然后生成请求
$request = new AlipayMobilePublicFollowListRequest ();
$request->setBizContent ( $biz_content );
//执行发送这个请求, 得到返回结果。
$result = aopclient_request_execute($request);
// var_dump($result);
//解析处理返回结果。
if ($result != null && $result->alipay_mobile_public_follow_list_response->code == 200) {
$list = $result->alipay_mobile_public_follow_list_response->data->user_id_list->string;
print_r ( $list );
}
/**
* 使用SDK执行接口请求
* @param unknown $request
* @param string $token
* @return Ambigous <boolean, mixed>
*/
function aopclient_request_execute($request, $token = NULL) {
require 'config.php';
$aop = new AopClient ();
$aop->gatewayUrl = $config ['gatewayUrl'];
$aop->appId = $config ['app_id'];
$aop->rsaPrivateKeyFilePath = $config ['merchant_private_key_file'];
$aop->apiVersion = "1.0";
$result = $aop->execute ( $request, $token );
return $result;
}
验证开发者网关时,提示 开发者服务器返回XML内容错误。 出现这种情况,一般都是因为配置修改不正确导致的,支付宝给商户发的消息验签不通过或商户返回给支付宝的内容格式错误或验签失败。
解析XML错误,也应该是商户端验签支付宝请求失败或商户配置的商户公钥错误导致的。
好了 直至 打工告成!!只需要写入用户数据表中即可~~