appcan新版支付寶支付uexAlipay4.0使用總結


appcan支付寶支付 4.0版本:php

一、使用RSA驗證,不是RSA2,而且RSA和RSA2對應的支付寶公鑰是不一樣的,生成的RSA私鑰要使用PKCS8(java適用)的,java

二、再就是回調地址,設置爲商家後臺設置的回調地址,必須同樣的;算法

三、支付請求能夠使用uexAliPay.generatePayOrder生成的字符串,做爲uexAliPay.payWithOrder的測試參數,若是正常支付
後,再嘗試編寫服務器端代碼;json

四、字符串中&不要轉爲&服務器

五、服務器端php5.6版本,須要開啓openssl;app

 

服務器端代碼:測試

<?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();


?>
相關文章
相關標籤/搜索