最新消息:文章中包含代码时,请遵守代码高亮规范!

[原创]银联支付–查询订单状态

PHP Alex 366浏览 0评论

官网中下载银联支付控件相关的包,后台的sdk存在于包中(IOS,安卓版的SDK,对于后端来说,随便下载一个即可).

 

做银联支付时发现设置回调函数但是在实际操作中发现银联可能存在不调用该方法的情况,之后了解银联需要手动查询订单的交易状态,通过返回值来确定本平台订单的状态

 

 /**
 * 查询订单状态
 *
 * @param $request
 * @param $orders
 * @return array
 */
 public function unionPayQuery($orders)
 {
 require_once implode('/', [$this->rootdir(), 'src/Module/upacp/sdk/acp_service.php']);
 $config = new SDKConfig();
 $AcpService = new AcpService();
 $log = LogUtil::getLogger();
 $params = array(
 //以下信息非特殊情况不需要改动
 'version' => $config->getSDKConfig()->version, //版本号
 'encoding' => 'utf-8', //编码方式
 'signMethod' => $config->getSDKConfig()->signMethod, //签名方法
 'txnType' => '00', //交易类型
 'txnSubType' => '00', //交易子类
 'bizType' => '000000', //业务类型
 'accessType' => '0', //接入类型
 'channelType' => '07', //渠道类型

 //TODO 以下信息需要填写
 'orderId' => $orders['order_no'], //请修改被查询的交易的订单号,8-32位数字字母,不能含“-”或“_”
 'merId' => '700000000000001', //商户代码,请改自己的测试商户号
 'txnTime' => $orders['txn_time'], //请修改被查询的交易的订单发送时间,格式为YYYYMMDDhhmmss
 );

 $AcpService->sign ( $params ); // 签名
 $url = $config->getSDKConfig()->singleQueryUrl;

 $result_arr = $AcpService->post ( $params, $url);

 if(count($result_arr)<=0) { //没收到200应答的情况 $log->LogInfo('没收到200应答的情况');
 }

 if (!$AcpService->validate ($result_arr) ){
 $log->LogInfo('应答报文验签失败');
 }

 if ($result_arr["respCode"] == "00"){
 if ($result_arr["origRespCode"] == "00"){
 
 } else if ($result_arr["origRespCode"] == "03"
 || $result_arr["origRespCode"] == "04"
 || $result_arr["origRespCode"] == "05"){
 //后续需发起交易状态查询交易确定交易状态

 return Responses::arrays('处理超时,请稍后查询',2,$result_arr);

 } else {
 //其他应答码做以失败处理


 return Responses::arrays("交易失败:" . $result_arr["origRespMsg"] . ".",1,$result_arr);
 }
 } else if ($result_arr["respCode"] == "03"
 || $result_arr["respCode"] == "04"
 || $result_arr["respCode"] == "05" ){
 //后续需发起交易状态查询交易确定交易状态


 return Responses::arrays("处理超时,请稍后查询",1,$result_arr);
 } else {
 //其他应答码做以失败处理

 return Responses::arrays("失败:" . $result_arr["respMsg"] . ".",1,$result_arr);
 }

 }

转载时请注明出处及相应链接,本文永久地址:https://blog.yayuanzi.com/23981.html


pay_weixin
pay_weixin
微信打赏
pay_weixin
支付宝打赏
感谢您对作者Alex的打赏,我们会更加努力!    如果您想成为作者,请点我

发表我的评论
取消评论

表情