易宝接口callback

<?php

/*
 * @Description 易宝支付B2C在线支付接口范例 
 * @V3.0
 * @Author rui.xin
 */
 
include 'yeepayCommon.php';	
	
#	只有支付成功时易宝支付才会通知商户.
##支付成功回调有两次,都会通知到在线支付请求参数中的p8_Url上:浏览器重定向;服务器点对点通讯.

#	解析返回参数.
$return = getCallBackValue($r0_Cmd,$r1_Code,$r2_TrxId,$r3_Amt,$r4_Cur,$r5_Pid,$r6_Order,$r7_Uid,$r8_MP,$r9_BType,$hmac);

#	判断返回签名是否正确(True/False)
$bRet = CheckHmac($r0_Cmd,$r1_Code,$r2_TrxId,$r3_Amt,$r4_Cur,$r5_Pid,$r6_Order,$r7_Uid,$r8_MP,$r9_BType,$hmac);
#	以上代码和变量不需要修改.
	 	
#	校验码正确.
if($bRet){
	if($r1_Code=="1"){
		
	#	需要比较返回的金额与商家数据库中订单的金额是否相等,只有相等的情况下才认为是交易成功.
	#	并且需要对返回的处理进行事务控制,进行记录的排它性处理,在接收到支付结果通知后,判断是否进行过业务逻辑处理,不要重复进行业务逻辑处理,防止对同一条交易重复发货的情况发生.      	  	
		
		if($r9_BType=="1"){
			echo "交易成功";
			echo  "<br />在线支付页面返回";
		}elseif($r9_BType=="2"){
			#如果需要应答机制则必须回写流,以success开头,大小写不敏感.
			echo "success";
			echo "<br />交易成功";
			echo  "<br />在线支付服务器返回";      			 
		}
	}
	
}else{
	echo "交易信息被篡改";
}
   
?>


1.r1_Code=1为校验成功.

2.r9_BType==1 交易成功后转跳执行的代码.这里尽量输出相关信息.进行业务流程处理.

3.r9_BType==2 为交易成功后易宝返回询问是否有收到通知.通知周期为:2.4.8.16.32.1小时.一天后放弃通知;

这里除了返回success给易宝,尽量不要返回其它的字符.测试时除外;

业务处理流程

	if($r1_Code=="1"){
		
	#获取订单状态..     	  	
		
		if($r9_BType=="1"){
                     if(订单状态 != ok) {
                          #更新订单状态为已付款.
                         if(订单金额==支付金额){
                            #执行相关的业务流程并将订单状态改为OK
              }else{
               echo "支付金额与订单金额不相同.";
              }
  }else{
    echo "该订单已处理完毕";
   }
			echo "交易成功";
			echo  "<br />在线支付页面返回";
		}elseif($r9_BType=="2"){
			#如果需要应答机制则必须回写流,以success开头,大小写不敏感.
			echo "success";
			echo "<br />交易成功";
			echo  "<br />在线支付服务器返回";      			 
		}
	}
	
}else{
	echo "交易信息被篡改";


阅读更多

更多精彩内容