最新消息:觉得本站不错的话 记得收藏哦 博客内某些功能仅供测试 讨论群:135931704 快养不起小站了 各位有闲钱就打赏下把 My Email weicots#gmail.com Please replace # with @

银联新一代商户接入新接口-支付 以 Magento银联新接口开发为例

Magento 插件整理 ajiang-tuzi 3586浏览

Magento 银联新接口插件 以及支付宝即时到账插件 本站开放出售 请联系站长
新一代商户接入用户手册(Version: 2.7)62 页 不得不不说 银联的说说明文档挺详细的 还有 银联的技术服务很到位 邮件回复的挺及时的
然后 DEMO 虽然看起来 挺简陋 不过功能都挺实用的

银联

Magento 1 银联新接口支付插件说明

必要地址说明

获得密匙文件等绝对路径 http://youhostname.com/Chinapay?key=授权码
密匙及配置文件存放路径 app\code\community\Chinapay\Chinapay\Model\WeicotPay\ini

支付插件配置
1.将后台导出的证书.pfx 放入到ini 文件夹内 关于银联证书导出 请看银联证书导出项
2.配置 ini 文件夹内 security.properties 文件中的
-证书地址 sign.file= [证书地址 可由 http://youhostname.com/Chinapay?key=授权码 获得]
-证书密码 sign.file.password
3.登录后台 系统->配置->支付方式->银联支付->选择启用
4.配置完成

银联证书导出项
-银联说明文档在开户信里面,如果没有就联系银联运营中心,
-证书.pfx 请自己到银联后台导出

Magento 2 开发中。。。。

新接口地址

测试环境请求地址:
http://newpayment-test.chinapay.com/CTITS/service/rest/forward/syn/000000000065/0/0/0/0/0
? 生产环境请求地址:
https://payment.chinapay.com/CTITS/service/rest/forward/syn/000000000065/0/0/0/0/0
? 0403消费撤销、0203预授权撤销、0204预授权完成撤销、0202预授权完成的交易接收地址如下:
? 测试环境请求地址:
http://newpayment-test.chinapay.com/CTITS/service/rest/page/nref/000000000017/0/0/0/0/0
? 生产环境请求地址:
https://payment.chinapay.com/CTITS/service/rest/page/nref/000000000017/0/0/0/0/0

目录结构 及支付流程


/**
 * WeiCot Framework
 * User: ajiang
 * WebSite: WWW.WEICOT.COM
 * Date: 2016/07/28 0006
 * Time: 17:41
 * ChianPayTest 
 */

//D:\newcov\htdocs\dev\chinapay_demo\cert         -证书存放的地儿
//D:\newcov\htdocs\dev\chinapay_demo\config      配置 文件
//D:\newcov\htdocs\dev\chinapay_demo\cert         -证书存放的地儿
//http://dev.com/chinapay_demo/page/pay/b2cPay.php   新接支付表单 提交后 交由  sign.php 签名处理
// http://dev.com/chinapay_demo/sign.php   签名处理  处理完后  跳转到 /page/pay/b2cPaySend.php 提交表单
//引用了 以下方法

include 'util/common.php';  //数据处理
include 'util/SecssUtil.class.php';  //签名方法

   $secssUtil = new SecssUtil();
        
        if (! isEmpty($transResvedStr)) {
            $transResvedStr = $secssUtil->decryptData($transResvedStr);
            $sendMap[transResveredKey] = $transResvedStr;
        }
        if (! isEmpty($cardResvedStr)) {
            $cardResvedStr = $secssUtil->decryptData($cardResvedStr);
            $sendMap[cardResveredKey] = $cardResvedStr;
        }
        
        $securityPropFile = $_SERVER['DOCUMENT_ROOT'] . "/chinapay_demo/config/security.properties";
        $secssUtil->init($securityPropFile);
        $secssUtil->sign($sendMap);
        
        $sendMap[signatureField] = $secssUtil->getSign();

//http://dev.com/chinapay_demo/page/pay/b2cPaySend.php 进行支付处理

security.properties 文件的一些基础配置


sign.file=D:\newcov\htdocs\dev\chinapay_demo\cert\从后台导出的证书.pfx   建议绝对路径
sign.file.password=证书密码 

sign.cert.type=PKCS12
sign.invalid.fields=Signature,CertId
verify.file=D:\newcov\htdocs\dev\chinapay_demo\cert\cp_test.cer
signature.field=Signature
log4j.name=cpLog

注意事项

注意这项[Signature] 如果未配置 者会出现 :交易失败! 错误信息: 报文非空字段为空值。。
签名 Signature Y
商户报文签名信息,报文中的所有字段都参与签名(Signature除外)

相关

sign.file=D:\newcov\htdocs\dev\chinapay_demo\cert\从后台导出的证书.pfx   建议绝对路径
sign.file.password=证书密码 
没有申请交易证书,或交易地址提交错误,交易失败!错误信息:证书未配置

这个报错通常有两个原因,一是没有申请交易证书,二是交易地址提交错误,测试地址和正式地址搞错了。 正式交易证书 用正式地址

附签名验证程序

<?php
// require 'SecssFileService.class.php';
require 'util/SecssUtil.class.php';
$securityPropFile="D:/newcov/htdocs/dev/chinapay_demo/config/security.properties";  //配置文件
// $secssUtil = new SecssFileService();
$secssUtil = new SecssUtil();
$secssUtil->init($securityPropFile);
$file="D:/newcov/htdocs/dev/chinapay_demo/config/test.txt";  //测试数据

echo "sign start time".date('y-m-d h:i:s',time())."\r\n";
$secssUtil->signFile($file);
if("00"===$secssUtil->getErrCode()){
    echo "文件签名成功,errcode=[" .$secssUtil->getErrCode()."]\r\n";
}else{
    echo "文件签名失败,errcode=[" .$secssUtil->getErrCode()."]\r\n";
}
echo "sign end time".date('y-m-d h:i:s',time())."\r\n";
echo "--------------------------------------\r\n";

echo "verify start time".date('y-m-d h:i:s',time())."\r\n";
$secssUtil->verifyFile($file);
if("00"===$secssUtil->getErrCode()){
    echo "文件验签成功,errcode=[" .$secssUtil->getErrCode()."]\r\n";
}else{
    echo "文件验签失败,errcode=[" .$secssUtil->getErrCode()."]\r\n";
}
echo "verify end time".date('y-m-d h:i:s',time())."\r\n";
?>

转载请注明:(●--●) Hello.My Weicot » 银联新一代商户接入新接口-支付 以 Magento银联新接口开发为例