php生成android端支付宝请求参数

来源:互联网 发布:刀剑神域小说淘宝 编辑:程序博客网 时间:2024/06/02 04:13

alipay_config.php

<?php $alipay_config['appid']='appid';//商户密钥 $alipay_config['rsaPrivateKey']='rsaPrivateKey';//私钥 $alipay_config['alipayrsaPublicKey']=''; $alipay_config['partner']='partner';//(商家的参数;新版本的好像用不到) $alipay_config['input_charset']=strtolower('utf-8');//编码 $alipay_config['notify_url']='http://www.xx.com/api/alipay/notify_url.php';//回调地址(支付宝支付成功后回调修改订单状态的地址) $alipay_config['payment_type']=1;//(固定值) $alipay_config['seller_id']='xx@xxx.com';//收款商家账号 $alipay_config['charset']='utf-8';//编码 $alipay_config['sign_type']='RSA';//签名方式 $alipay_config['version']="1.0";//固定值 $alipay_config['url']= 'https://openapi.alipay.com/gateway.do';//固定值 $alipay_config['method']= 'alipay.trade.app.pay';//固定值  ?>
alipayapi.php

<?php  header("Content-type:text/html;charset=utf-8");       require_once  dirname(__FILE__).'/'.'alipay_config.php';       require_once dirname(__FILE__).'/'.'aop/AopClient.php';function getAlipayParamsToString($subject,$body,$out_trade_no,$price,$timeout_express='30m'){global $alipay_config;       //构造业务请求参数的集合(订单信息)       $content = array();   $content['timeout_express'] = $timeout_express;//该笔订单允许的最晚付款时间       $content['product_code'] = 'QUICK_MSECURITY_PAY';//销售产品码,商家和支付宝签约的产品码,为固定值QUICK_MSECURITY_PAY       $content['total_amount'] = floatval($price);//订单总金额(必须定义成浮点型)       $content['subject'] = $subject;//商品的标题/交易标题/订单标题/订单关键字等       $content['body'] = $body;       $content['out_trade_no'] = $out_trade_no;//商户网站唯一订单号       $con = json_encode($content);//$content是biz_content的值,将之转化成字符串       //公共参数       $param = array();       $Client = new AopClient();//实例化支付宝sdk里面的AopClient类,下单时需要的操作,都在这个类里面       $param['app_id'] = $alipay_config['appid'];//支付宝分配给开发者的应用ID       $param['biz_content'] = $con;//业务请求参数的集合,长度不限,json格式       $param['charset'] = $alipay_config['charset'];//请求使用的编码格式       $param['method'] =  $alipay_config['method'];//接口名称       $param['sign_type'] = $alipay_config['sign_type'];//商户生成签名字符串所使用的签名算法类型       $param['timestamp'] = date('Y-m-d H:i:s', time());//发送请求的时间       $param['version'] =  $alipay_config['version'];//调用的接口版本,固定为:1.0       $param['notify_url'] =  $alipay_config['notify_url'];//支付宝服务器主动通知地址   $paramStr = $Client->getSignContent($param);       $sign = $Client->alonersaSign($paramStr,$alipay_config['rsaPrivateKey'],'RSA');   $param['sign'] = $sign;      return $Client->getSignContentUrlencode($param);}?>

notify_url.php

<?phpheader("Content-type:text/html;charset=utf-8");require_once 'alipay_config.php';require_once 'aop/AopClient.php';$json=array();parse_str(file_get_contents("php://input"),$json);$Client = new AopClient();$check=$Client->rsaCheckV1($json,"rsa_public_key.so");//第一次验证成功if($check==true){$url="https://mapi.alipay.com/gateway.do?service=notify_verify&partner=".$json["partner"]."¬ify_id=".$json["notify_id"];//第二次验证成功if(file_get_contents($url)==true){if($json["trade_status"]=="TRADE_SUCCESS"){//收款的账号或APPID对不起来if($json["seller_email"]!=$alipay_config['seller_id']||$json["app_id"]!=$alipay_config["appid"]){echo "fail";return;}echo "success";//判断该笔订单是否在商户网站中已经做过处理//如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序//请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的//如果有做过处理,不执行商户的业务程序    //注意:    //退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知            //调试用,写文本函数记录程序运行情况是否正常            //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");}else if($json["trade_status"]=="TRADE_FINISHED"){//收款的账号或APPID对不起来if($json["seller_email"]!=$alipay_config['seller_id']||$json["app_id"]!=$alipay_config["appid"]){echo "fail";return;}echo "success";//判断该笔订单是否在商户网站中已经做过处理//如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序//请务必判断请求时的total_amount、seller_id与通知时获取的total_amount、seller_id为一致的//如果有做过处理,不执行商户的业务程序//注意://退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知        //调试用,写文本函数记录程序运行情况是否正常        //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");} }    else{    echo "fail";    }}else{echo "fail";}?>



原创粉丝点击