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(); ?>
浙公网安备 33010602011771号