php app 银联支付,php银联网页支付实现方法

php银联网页支付实现方法

/**

* 取验证签名证书

* @throws \InvalidArgumentException

* @return string

*/

private function getVerifyPublicKey()

{

//先判断配置的验签证书是否银联返回指定的证书是否一致

if($this->getCertIdCer($this->config['verifyCertPath']) != $this->params['certId']) {

throw new \InvalidArgumentException('Verify sign cert is incorrect');

}

return file_get_contents($this->config['verifyCertPath']);

}

}

2. 配置示例

复制代码 代码如下:

//银联支付设置

'unionpay' => [

//测试环境参数

'frontUrl' => 'https://101.231.204.80:5000/gateway/api/frontTransReq.do', //前台交易请求地址

//'singleQueryUrl' => 'https://101.231.204.80:5000/gateway/api/queryTrans.do', //单笔查询请求地址

'signCertPath' => __DIR__.'/../keys/unionpay/test/sign/700000000000001_acp.pfx', //签名证书路径

'signCertPwd' => '000000', //签名证书密码

'verifyCertPath' => __DIR__.'/../keys/unionpay/test/verify/verify_sign_acp.cer', //验签证书路径

'merId' => 'xxxxxxx',

//正式环境参数

//'frontUrl' => 'https://101.231.204.80:5000/gateway/api/frontTransReq.do', //前台交易请求地址

//'singleQueryUrl' => 'https://101.231.204.80:5000/gateway/api/queryTrans.do', //单笔查询请求地址

//'signCertPath' => __DIR__.'/../keys/unionpay/test/sign/PM_700000000000001_acp.pfx', //签名证书路径

//'signCertPwd' => '000000', //签名证书密码

//'verifyCertPath' => __DIR__.'/../keys/unionpay/test/verify/verify_sign_acp.cer', //验签证书路径

//'merId' => 'xxxxxxxxx', //商户代码

],

3. 支付示例

复制代码 代码如下:

$unionPay = new UnionPay();

$unionPay->config = Yii::$app->params['unionpay'];//上面的配置

$unionPay->params = [

'version' => '5.0.0', //版本号

'encoding' => 'UTF-8', //编码方式

'certId' => $unionPay->getSignCertId(), //证书ID

'signature' => '', //签名

'signMethod' => '01', //签名方式

'txnType' => '01', //交易类型

'txnSubType' => '01', //交易子类

'bizType' => '000201', //产品类型

'channelType' => '08',//渠道类型

'frontUrl' => Url::toRoute(['payment/unionpayreturn'], true), //前台通知地址

'backUrl' => Url::toRoute(['payment/unionpaynotify'], true), //后台通知地址

//'frontFailUrl' => Url::toRoute(['payment/unionpayfail'], true), //失败交易前台跳转地址

'accessType' => '0', //接入类型

'merId' => Yii::$app->params['unionpay']['merId'], //商户代码

'orderId' => $orderNo, //商户订单号

'txnTime' => date('YmdHis'), //订单发送时间

'txnAmt' => $sum * 100, //交易金额,单位分

'currencyCode' => '156', //交易币种

];

$html = $unionPay->createPostForm();

4. 异步通知示例

复制代码 代码如下:

$unionPay = new UnionPay();

$unionPay->config = Yii::$app->params['unionpay'];

$unionPay->params = Yii::$app->request->post(); //银联提交的参数

if(empty($unionPay->params)) {

return 'fail!';

}

if($unionPay->verifySign() && $unionPay->params['respCode'] == '00') {

//.......

}

【php银联网页支付实现方法】相关文章:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值