码迷,mamicode.com
首页 > 其他好文 > 详细

支付宝 激活开发者模式

时间:2015-12-31 21:05:41      阅读:800      评论:0      收藏:0      [点我收藏+]

标签:支付宝 开发者模式 激活

支付宝的文档我简直日了狗了。


  1. 按照支付宝的教程,生成商家公钥和密钥,地址:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!