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

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

<?php
header("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";
}
?>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值