PHP银联支付

<?php
//银联支付   在银联官网(open.unionpay.com)下载UnionPay文件  注意签名证书 当时恶心了好久

class UnionPayAction extends PayAction{
	public function _initialize(){
		vendor('UnionPay.sdk.acp_service');
		//vendor('PCAlipay.lib.alipay_submit');
		//vendor('PCAlipay.lib.alipay_notify');
	}


/**
 * 重要:联调测试时请仔细阅读注释!
 * 
 * 产品:跳转网关支付产品<br>
 * 交易:消费:前台跳转,有前台通知应答和后台通知应答<br>
 * 日期: 2015-09<br>
 * 版本: 1.0.0
 * 版权: 中国银联<br>
 * 说明:以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己需要,按照技术文档编写。该代码仅供参考,不提供编码性能规范性等方面的保障<br>
 * 提示:该接口参考文档位置:open.unionpay.com帮助中心 下载  产品接口规范  《网关支付产品接口规范》,<br>
 *              《平台接入接口规范-第5部分-附录》(内包含应答码接口规范,全渠道平台银行名称-简码对照表)<br>
 *              《全渠道平台接入接口规范 第3部分 文件接口》(对账文件格式说明)<br>
 * 测试过程中的如果遇到疑问或问题您可以:1)优先在open平台中查找答案:
 * 							        调试过程中的问题或其他问题请在 https://open.unionpay.com/ajweb/help/faq/list 帮助中心 FAQ 搜索解决方案
 *                             测试过程中产生的6位应答码问题疑问请在https://open.unionpay.com/ajweb/help/respCode/respCodeList 输入应答码搜索解决方案
 *                          2) 咨询在线人工支持: open.unionpay.com注册一个用户并登陆在右上角点击“在线客服”,咨询人工QQ测试支持。
 * 交易说明:1)以后台通知或交易状态查询交易确定交易成功,前台通知不能作为判断成功的标准.
 *       2)交易状态查询交易(Form_6_5_Query)建议调用机制:前台类交易建议间隔(5分、10分、30分、60分、120分)发起交易查询,如果查询到结果成功,则不用再查询。(失败,处理中,查询不到订单均可能为中间状态)。也可以建议商户使用payTimeout(支付超时时间),过了这个时间点查询,得到的结果为最终结果。
 */
	public function getsubmit(){
	
		header ( 'Content-type:text/html;charset=utf-8' );
		//include_once $_SERVER ['DOCUMENT_ROOT'] . '/upacp_demo_b2c/sdk/acp_service.php';
		
		$order = M('order');
		$data = $order->where(array('payNum'=>$_GET['order']))->select();
		$money =0;
		foreach($data as $k=>$v){
			$money+=$data[$k]['money'];
		
		}
		/* dump($_GET['number']);
		exit; */
		//$money = $money*100;
		$params = array(
				
			//以下信息非特殊情况不需要改动
			'version' => '5.0.0',                 //版本号
			'encoding' => 'utf-8',				  //编码方式
			'txnType' => '01',				      //交易类型
			'txnSubType' => '01',				  //交易子类
			'bizType' => '000201',				  //业务类型
			'frontUrl' =>  'http://wwww.****.com/UnionPay/frontUrl',  //前台通知地址
			'backUrl' => 'http://wwww.****.com/UnionPay/backUrl',	  //后台通知地址
			'signMethod' => '01',	              //签名方法
			'channelType' => '07',	              //渠道类型,07-PC,08-手机
			'accessType' => '0',		          //接入类型
			'currencyCode' => '156',	          //交易币种,境内商户固定156
			
			//TODO 以下信息需要填写
			'merId' => '********',		//商户代码,请改自己的测试商户号,此处默认取demo演示页面传递的参数
			'orderId' =>  $_GET['order'],	//商户订单号,8-32位数字字母,不能含“-”或“_”,此处默认取demo演示页面传递的参数,可以自行定制规则
			'txnTime' => date('YmdHis',time()),	//订单发送时间,格式为YYYYMMDDhhmmss,取北京时间,此处默认取demo演示页面传递的参数
			'txnAmt' => '1',	//交易金额,单位分,此处默认取demo演示页面传递的参数
	// 		'reqReserved' =>'透传信息',        			//请求方保留域,透传字段,查询、通知、对账文件中均会原样出现,如有需要请启用并修改自己希望透传的数据

			//TODO 其他特殊用法请查看 special_use_purchase.php
		);

		com\unionpay\acp\sdk\AcpService::sign ( $params );
		$uri = com\unionpay\acp\sdk\SDK_FRONT_TRANS_URL;
		$html_form = com\unionpay\acp\sdk\AcpService::createAutoFormHtml( $params, $uri );
		echo $html_form;

	}
	
	public function frontUrl(){
		//dump($_GET);
		//dump($_POST);
		//dump(com\unionpay\acp\sdk\SDK_LOG_FILE_PATH);
		vendor('UnionPay.sdk.acp_service');
			if (isset ( $_POST ['signature'] )) {
				
				$code = com\unionpay\acp\sdk\AcpService::validate ( $_POST ) ? '验签成功' : '验签失败';
				if($code=='验签成功'){
			
					$out_trade_no = $_POST ['orderId']; //其他字段也可用类似方式获取
					$respCode = $_POST ['respCode']; //判断respCode=00或A6即可认为交易成功
				if($respCode=='00' || $respCode=='A6'){
				
					
					
					$this ->redirect('Member/orderList');
				}else{
					echo '交易失败';
				}
					
				}else{
					//echo $code;
				}
			} else {
				echo '签名为空';
			}
	}
	
	public function backUrl(){
		if (isset ( $_POST ['signature'] )) {
			vendor('UnionPay.sdk.acp_service');
			//echo com\unionpay\acp\sdk\AcpService::validate ( $_POST ) ? '验签成功' : '验签失败';
			$orderId = $_POST ['orderId']; //其他字段也可用类似方式获取
			$respCode = $_POST ['respCode']; //判断respCode=00或A6即可认为交易成功
					
			$code = com\unionpay\acp\sdk\AcpService::validate ( $_POST ) ? '验签成功' : '验签失败';
			if($code=='验签成功'){
			
			
				if($respCode=='00' || $respCode=='A6'){
					
					$this ->redirect('Member/orderList');
					}else{
						echo '交易失败';
					}
				
				}else{
					//echo $code;
				}
		} else {
			echo '签名为空';
		}
		//dump($_GET);
		
	}
	
	
	
}

在贵池等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、成都网站制作、外贸网站建设 网站设计制作按需定制网站,公司网站建设,企业网站建设,成都品牌网站建设,全网整合营销推广,成都外贸网站制作,贵池网站建设费用合理。


新闻标题:PHP银联支付
文章链接:https://www.cdcxhl.com/article26/jijejg.html

成都网站建设公司_创新互联,为您提供网站收录搜索引擎优化外贸建站关键词优化企业网站制作营销型网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站制作