appcan新版支付宝支付uexAlipay4.0使用总结


appcan支付宝支付 4.0版本:

1、使用RSA验证,不是RSA2,并且RSA和RSA2对应的支付宝公钥是不同的,生成的RSA私钥要使用PKCS8(java适用)的,

2、再就是回调地址,设置为商家后台设置的回调地址,必须一样的;

3、支付请求可以使用uexAliPay.generatePayOrder生成的字符串,作为uexAliPay.payWithOrder的测试参数,如果正常支付
后,再尝试编写服务器端代码;

4、字符串中&不要转为&

5、服务器端php5.6版本,需要开启openssl;

 

服务器端代码:

<?php
//配置
    define('APP_ID','***');
    define('NOTIFY_URL','http://www.test.com'); //这个回调地址跟商家后台设置的一致
    define('RSA_PRIVATE_KEY','./rsa_private_key.pem');//私钥路径,有换行的

    //获取订单信息
    $out_trade_no = $_POST['out_trade_no'];
    $subject = $_POST['subject'];
    $total_amount = $_POST['total_fee'];
    $body = $_POST['body'];

    require_once './aop/AopClient.php';
    require_once './aop/request/AlipayOpenPublicTemplateMessageIndustryModifyRequest.php';

    //构造业务请求参数的集合(订单信息)
    $content = array();
    $content['subject'] = $subject;
    $content['out_trade_no'] = $out_trade_no; //''.time().mt_rand(100,1000);
    $content['total_amount'] = $total_amount;
    $content['product_code'] = "QUICK_MSECURITY_PAY";//销售产品码,固定值
    $con = json_encode($content);//$content是biz_content的值,将之转化成json字符串

    //公共参数
    $Client = new AopClient();//实例化支付宝sdk里面的AopClient类,下单时需要的操作,都在这个类里面
    $param['app_id'] = APP_ID;
    $param['method'] = 'alipay.trade.app.pay';//接口名称,固定值
    $param['charset'] = 'utf-8';//请求使用的编码格式
    $param['sign_type'] = 'RSA';//商户生成签名字符串所使用的签名算法类型
    $param['timestamp'] = date('Y-m-d H:i:s');//发送请求的时间
    $param['version'] = '1.0';//调用的接口版本,固定为:1.0
    $param['notify_url'] = NOTIFY_URL;
    $param['biz_content'] = $con;//业务请求参数的集合,长度不限,json格式,即前面一步得到的

    $paramStr = $Client->getSignContent($param);//组装请求签名参数
    $private_path =  RSA_PRIVATE_KEY;
    $sign = $Client->alonersaSign($paramStr, $private_path, 'RSA', true);//生成签名
    $param['sign'] = $sign;
    $order_url = $Client->getSignContentUrlencode($param);//最终请求参数

    echo $order_url; 
    exit();


?>

 

posted on 2017-11-22 17:15  飞哥100  阅读(1013)  评论(0)    收藏  举报

导航