标签:支付宝 开发者模式 激活
支付宝的文档我简直日了狗了。
按照支付宝的教程,生成商家公钥和密钥,地址:
https://doc.open.alipay.com/doc2/detail?treeId=53&articleId=103242&docType=1
2.下载demo文件。
按照自己代码的风格架构,稍作修改。注意文件的加载。
3.网关。注意文件的加载,例如我的网关代码是这样的。这里需要注意自己网站有没有安全策略,如果有的话,支付宝的请求可能会被拦截下来,需要把这个链接加上白名单,不做安全检查。
Yaf_Loader::import(APPLICATION_PATH . ‘/library/Alipay/AlipaySign.php‘);
Yaf_Loader::import(APPLICATION_PATH . ‘/library/Alipay/Gateway.php‘);
Yaf_Loader::import(APPLICATION_PATH . ‘/library/Alipay/Message.php‘);
Yaf_Loader::import(APPLICATION_PATH . ‘/library/Alipay/config.php‘);
class AlipayController extends Yaf_Controller_Abstract {
/**
* 激活开发者网关
*
* @return string
*/
public function gatewayAction() {
Log::out(‘alipay_gateway‘, ‘I‘, ‘start‘);
Yaf_Loader::import(APPLICATION_PATH . ‘/library/Alipay/config.php‘);
$postData = $this->getRequest()->getPost();
Log::out(‘alipay_gateway‘, ‘I‘, json_encode($postData, JSON_UNESCAPED_UNICODE));
if (empty ( $postData[‘sign‘] ) || empty ( $postData[‘sign_type‘] ) || empty ( $postData[‘biz_content‘] ) || empty ( $postData[‘service‘] ) || empty ( $postData[‘charset‘] )) {
echo "some parameter is empty.";
Log::out(‘alipay_gateway‘, ‘I‘, ‘some parameter is empty.‘);
exit ();
}
$as = new AlipaySign ();
$sign_verify = $as->rsaCheckV2 ( $postData, $config [‘alipay_public_key_file‘] );
if (! $sign_verify) {
// 如果验证网关时,请求参数签名失败,则按照标准格式返回,方便在服务窗后台查看。
if ($postData[ "service" ] == "alipay.service.check") {
$gw = new Gateway ();
$gw->verifygw ( false );
Log::out(‘alipay_gateway‘, ‘I‘, ‘alipay.service.check.‘);
} else {
Log::out(‘alipay_gateway‘, ‘I‘, ‘sign verfiy fail.‘);
}
Log::out(‘alipay_gateway‘, ‘E‘, ‘exit.‘);
exit ();
}
// 验证网关请求
if ($postData[ "service" ] == "alipay.service.check") {
Log::out(‘alipay_gateway‘, ‘service‘, ‘alipay.service.check‘);
$gw = new Gateway ();
$gw->verifygw ( true , $postData[ "biz_content" ]);
} else if ($postData[ "service" ] == "alipay.mobile.public.message.notify") {
// 处理收到的消息
$msg = new Message ( $biz_content );
}
Log::out(‘alipay_gateway‘, ‘I‘, json_encode($result, JSON_UNESCAPED_UNICODE));
return false;
}
}例如这是我的网关,注意日志的记录,可以分析哪里出现了问题。
4.上传公钥
https://b.alipay.com/order/pidAndKey.htm
到这个地址,找到开放平台密钥管理 ,上传自己的公钥,支付宝会给你支付宝公钥。
那一串公钥 我也不知道怎么变成pem格式。按照 64 64 64 24 个字符的顺序 ,我自己分了四行保存下来了。格式是这样的,前面后面的东西要加上,后缀为.pem。
-----BEGIN PUBLIC KEY-----
XXXX
XXXX
XXXX
XXXX
-----END PUBLIC KEY-----
现在demo的文件夹里有三个钥了,分别为商家公钥,商家私钥,支付宝公钥。
注意,文件不要去除空格,换行,和头尾的字符,就是不要修改。
5.激活
https://openhome.alipay.com/platform/appDetail.htm
到这个地址填写支付宝公钥,和自己网关的地址,注意支付宝公钥不要首尾字符和换行空格等。
然后就激活成功了,虽然写起来就这么几步,实际上用了一天半才搞好啊,支付宝的技术客服,都乱指挥,哎,他们感觉不怎么懂啊。当然自己实在不知道哪里有问题了,去问问也是挺好的。
https://b.alipay.com/order/techService.htm?src=nsf05
这个地址进去,右侧有客服,点击找他们聊天吧
标签:支付宝 开发者模式 激活
原文地址:http://jinchen.blog.51cto.com/6745578/1730546