1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 银联支付退款 php PHP 银联支付

银联支付退款 php PHP 银联支付

时间:2019-11-04 20:51:31

相关推荐

银联支付退款 php PHP 银联支付

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

classUnionPayActionextendsPayAction{

publicfunction_initialize(){

vendor('UnionPay.sdk.acp_service');

//vendor('PCAlipay.lib.alipay_submit');

//vendor('PCAlipay.lib.alipay_notify');

}

/**

*重要:联调测试时请仔细阅读注释!

*

*产品:跳转网关支付产品

*交易:消费:前台跳转,有前台通知应答和后台通知应答

*日期:-09

*版本:1.0.0

*版权:中国银联

*说明:以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己需要,按照技术文档编写。该代码仅供参考,不提供编码性能规范性等方面的保障

*提示:该接口参考文档位置:帮助中心下载产品接口规范《网关支付产品接口规范》,

*《平台接入接口规范-第5部分-附录》(内包含应答码接口规范,全渠道平台银行名称-简码对照表)

*《全渠道平台接入接口规范第3部分文件接口》(对账文件格式说明)

*测试过程中的如果遇到疑问或问题您可以:1)优先在open平台中查找答案:

*调试过程中的问题或其他问题请在/ajweb/help/faq/list帮助中心FAQ搜索解决方案

*测试过程中产生的6位应答码问题疑问请在/ajweb/help/respCode/respCodeList输入应答码搜索解决方案

*2)咨询在线人工支持:注册一个用户并登陆在右上角点击“在线客服”,咨询人工QQ测试支持。

*交易说明:1)以后台通知或交易状态查询交易确定交易成功,前台通知不能作为判断成功的标准.

*2)交易状态查询交易(Form_6_5_Query)建议调用机制:前台类交易建议间隔(5分、10分、30分、60分、120分)发起交易查询,如果查询到结果成功,则不用再查询。(失败,处理中,查询不到订单均可能为中间状态)。也可以建议商户使用payTimeout(支付超时时间),过了这个时间点查询,得到的结果为最终结果。

*/

publicfunctiongetsubmit(){

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($dataas$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;

}

publicfunctionfrontUrl(){

//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'签名为空';

}

}

publicfunctionbackUrl(){

if(isset($_POST['signature'])){

vendor('UnionPay.sdk.acp_service');

//echocom\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);

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。