PHP【连连支付】用户绑定银行卡

应用场景:

上次介绍的是,对接连连第三方支付,详情请参考《连连支付第三方对接》。使用连连支付,由于第一次去支付,需要进行绑卡操作,这样会导致用户体验不好。因此,需要在个人中心增加绑卡功能。

实现:

    // 匿名用户绑定银行卡public function postBindCard(){$user = $this->user(); // 获取当前登录用户$param = $this->request->post();// 获取表单提交参数// 表单验证if (!$this->validate->scene('bindCard')->check($param)) {return $this->renderError($this->validate->getError());}// 验证银行卡if ($this->checkBankCard($param['acctno']) != 'true') {return $this->renderError('银行卡参数有误!');}// 查询该卡是否已经绑定过$card_info = Db::name('user_card')->where(['user_id' => $user['user_id'],'acctno' => $param['acctno']])->value("acctno");if (!empty($card_info)) {return $this->renderError('您已绑定过该银行卡!');}$llPay = new LianLianPay();$result = $llPay->bindCard($param,$user);if ($result['status'] == 'succeeded') {// 绑定成功return $this->renderSuccess($result);}return $this->renderError($result['msg']);}// 匿名用户绑卡验证public function bindMyCardVerify(){$user = $this->user();// 获取当前登录用户$param = $this->request->post();// 表单验证if (!$this->validate->scene('bindCardVerify')->check($param)) {return $this->renderError($this->validate->getError());}$llPay = new LianLianPay();$result = $llPay->bindCardVerify($param,$user);if ($result['status'] == 'succeeded') {// 绑定成功return $this->renderSuccess($result);}return $this->renderError($result['msg']);}/*** 检查银行卡号是否正确* @param string $cardNumber* @return bool*/public function checkBankCard($card_number){$arr_no = str_split($card_number);$last_n = $arr_no[count($arr_no)-1];krsort($arr_no);$i = 1;$total = 0;foreach ($arr_no as $n){if($i%2==0){$ix = $n*2;if($ix>=10){$nx = 1 + ($ix % 10);$total += $nx;}else{$total += $ix;}}else{$total += $n;}$i++;}$total -= $last_n;$x = 10 - ($total % 10);if($x == $last_n){return 'true';}else{return 'false';}}

 LianLianPay.php

<?php
class LianLianPay {// 01 用户绑定银行卡public function bindCard($param,$user){include_once VENDOR_PATH . '/lianlianpay/LLianPayClient.php';$time = date('YmdHis',time());$seqno = 'YHBK'.$time;$notify_url = 'https://test.com/notice.php';$parameter = new \stdClass();$parameter->timestamp = $time;$parameter->oid_partner = $this->payee_id; // 商户号$parameter->user_id = $user['user_id'];$parameter->txn_seqno = $seqno;$parameter->txn_time = $time;$parameter->notify_url = $notify_url;// 以下几个参数需要加密处理$parameter->linked_acctno = LLianPayAccpSignature::publicKeyEncrypt($param['acctno']);$parameter->linked_acctname = LLianPayAccpSignature::publicKeyEncrypt($param['acctname']);$parameter->linked_phone = LLianPayAccpSignature::publicKeyEncrypt($param['phone']);$parameter->id_type = "ID_CARD";$parameter->id_no = LLianPayAccpSignature::publicKeyEncrypt($addressInfo['ID_number']);$client = new LLianPayClient();$gateway_url = 'https://accpapi.lianlianpay.com/v1/acctmgr/bindcard-apply';$result = $client->sendRequest($gateway_url,json_encode($parameter));if($result['ret_code'] == '0000'){$result['status'] = 'succeeded';}else{$result =  ['status'=>'failed','msg'=>$result['ret_msg']];}return $result;}// 02 用户绑定银行卡验证public function bindCardVerify($param,$user){include_once VENDOR_PATH . '/lianlianpay/LLianPayClient.php';$time = date('YmdHis',time());$notify_url = 'https://test.com/notice.php';$parameter = new \stdClass();$parameter->timestamp = $time;$parameter->oid_partner = $this->payee_id; // 商户号$parameter->user_id = $user['user_id'];$parameter->txn_seqno = $param['txn_seqno'];$parameter->token = $param['token'];$parameter->verify_code = $param['verify_code']; // 验证码$client = new LLianPayClient();$gateway_url = 'https://accpapi.lianlianpay.com/v1/acctmgr/bindcard-verify';$result = $client->sendRequest($gateway_url,json_encode($parameter));if($result['ret_code'] == '0000'){$result['status'] = 'succeeded';}else{$result =  ['status'=>'failed','msg'=>$result['ret_msg']];}return $result;}
}

接口

总结:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/38505.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

B2B电商平台--ChinaPay银联电子支付功能(实战)

奇迹每天都在发生&#xff0c;而你能把握的便是当下&#xff0c;未来已来............. -------------------------------------------------------------------------------------------------------------- 一、概念简介 理解什么是UnionPay、ChinaPay 这两个概念如果搞不清…

银联支付(chinapay)java接入避坑指南

一、背景 银联支付能给满足绝大部分银行支付渠道&#xff0c;所以接入银联无卡支付&#xff0c;是很多系统应用需要做的事情。银联支付的类型分很多种&#xff0c;网关支付&#xff08;带token请求实现&#xff0c;下次有空再分享&#xff09;、无卡支付&#xff08;带证书请求…

android接入支持海外的支付,visa,mastercard

为了支持海外的支付&#xff0c;我真的是找遍了各种方法&#xff0c;研究过google支付&#xff0c;最后因为手续费太高放弃。最后还是找到了支付宝海外支付。 sdk文档地址&#xff1a;http://www.alipay-seller.mpymnt.com/node/82&#xff08;对&#xff0c;只有英文文档&…

银联支付接口申请-手机控件支付

前一段时间在帮公司申请各种支付接口&#xff0c;在银联支付接口消耗了不少时间&#xff0c;其实银联支付申请还是比较简单的&#xff08;不用上传app截图什么的&#xff09;&#xff0c;只是申请入口比较难找&#xff0c;还有填写的资料比较多。下面我给大家介绍下银联支付接口…

Android-银联支付开发

转自&#xff1a;http://blog.csdn.net/qq285016127/article/details/38435585 银联支付也是一般比较常用的支付功能,这里简单了介绍android app如果短期快速应用这一方面的东西。直接上代码&#xff1a; 1.导入银联支付的依赖包: 2.在res目录下增加资源包: 3.配置AndroidManif…

西米支付:支付宝/微信支付/银联支付通道的接入介绍

本文以电脑网站支付为例&#xff0c;着重对第三方支付通道的接入进行了分析&#xff0c;包括支付宝支付接入、微信支付接入及银联支付接入。 1、支付宝支付接入 支付宝支付能力主要有当面付、刷脸付、App支付、手机网站支付、电脑网站支付和花呗分期等&#xff0c;本文采用电脑…

网关支付、银联代扣通道、快捷支付、银行卡支付等网上常见支付方式接口说明

一、网关支付 这是在线支付的最普遍形式。 大致支付过程&#xff1a;第三方支付公司作为代理&#xff08;网关&#xff09;&#xff0c;接入一堆银行。用户在网关页面&#xff08;可以在商户端&#xff0c;也可以第三方支付平台端&#xff09;选择银行&#xff0c;页面跳转到第…

HTB soccer

title: HTB_soccer description: HTB靶机 难度&#xff1a;easy date: 2023-05-31 categories: [渗透,靶机] HTB soccer 如果图片转载有问题移步&#xff1a;https://qing3feng.github.io/2023/05/31/HTB%20soccer/ 信息收集 ┌──(kali㉿kali)-[~] └─$ sudo nmap --min…

提高WhatsApp营销效果(1):文案篇

// 综述 在WhatsApp上做营销&#xff0c;最主要有四个因素会影响到转化的效果 分别是&#xff1a; ■ WhatsApp的发送者 ■ 文案 ■ 投放时段 ■ 目标号码 对于发送者来讲&#xff0c;主要影响因素是发送者所在的国家、头像和昵称。 投放时段来讲&#xff0c;自然是在用…

港联证券|半导体接棒AI走强 科创50指数领涨

周四&#xff0c;A股三大指数大幅低开&#xff0c;随后反弹并环绕上一买卖日收盘指数打开震动。沪指收报五连阳&#xff0c;半导体概念股团体大涨带动科创50指数走强&#xff0c;4月以来科创50指数已涨超6%。CPO概念股继续活泼&#xff0c;贵金属板块涨幅居前&#xff0c;AI使用…

【汇正财经】沪深创集体红盘,算力股全线爆发

盘面回顾&#xff1a; 大盘日K线收星涨0.31%&#xff0c;深成指涨0.61%&#xff0c;创业板冲高翻绿再弹起&#xff0c;收盘涨0.2%。CPO概念股午后继续大涨&#xff0c;算力概念股全线爆发&#xff0c;AI芯片、ChatGPT概念、电商概念等科技板块交投活跃&#xff0c;酒店餐饮、钙…

微信小程序会员卡开发跳坑

看了一下文档&#xff0c;大概是这样一个函数&#xff0c;可以让用户领取会员卡 wx.navigateToMiniProgram({appId: wxeb490c6f9b154ef9, //固定为此 appid&#xff0c;不可改动extraData: data, // 包括 encrypt_card_id, outer_str, biz三个字段&#xff0c;须从 step3 中获…

使用uni-app生成微信小程序踩的坑

毕设要求写一个浏览器端&#xff0c;一个APP端&#xff0c;一个微信端&#xff0c;刚开始以为要学三个技术然后写三个客户端&#xff0c;后来知道了uni-app这个神器&#xff0c;一次编写就可以编译生成APP、H5以及各种小程序版本的客户端。然而我比较熟悉的是web的前端开发&…

uni-app APP端-微信登录流程

uni-app APP端-微信登录流程 手把手教学 1.前期准备 在微信开放平台注册账户 微信开放平台 (qq.com)在管理中心中创建移动应用项目&#xff0c;按要求填写相关信息审核通过后即可获得我们所需的 AppID和AppSecret然后才uniapp项目中填写&#xff0c;在manifest.json中的App模…

微信小程序开发笔记 进阶篇②——多个微信小程序一个用户体系,同一个UnionID

目录 一、前言二、微信开放平台绑定小程序三、微信小程序login和getUserInfo四、后台请求auth.code2Session五、后台解密开放数据 一、前言 微信小程序开发笔记——导读 二、微信开放平台绑定小程序 微信官方文档&#xff1a;UnionID 机制说明 我们目前有一个微信开放平台&am…

微信小程序登录,包括uniapp的微信小程序登录

代码&#xff1a; 样式&#xff1a; <button click"login">登入</button> 事件&#xff08;methods中&#xff09;&#xff1a; login() {//判断缓存中是否有用户数据&#xff08;也就是判断有没有登录&#xff09;if (!uni.getStorageSync(encrypte…

桔子拓客是什么?

桔子拓客软件是一款安装在手机上APP智能营销软件&#xff0c;启动软件后可不停的活跃帐号&#xff0c;推送作品给指定的人群&#xff0c;指定区域&#xff0c;以此来达到精准曝光&#xff0c;定向引流&#xff0c;帮助用户实现流量的暴增&#xff01; 桔子拓客软件采用非入侵式…

做一个和瑞幸咖啡一样的小程序,就能3月赚24亿了吗?

2017年我开了一家咖啡店&#xff0c;疫情之前门店生意还比较惬意和滋润&#xff0c;没想到这疫情突如其来&#xff0c;一度要关门大吉。 后来偶然间看到瑞幸咖啡的年度报表&#xff0c;还有5月24日&#xff0c;瑞幸咖啡公布了2022年第一季度业绩&#xff0c;总净收入为24.046亿…

揭秘爆款的小程序,为何一黑到底

文章目录 前言⛳️ 1.什么是小程序?⛳️ 2.小程序发展史⛳️ 3.小程序原理⛳️ 4.如何开发微信小程序⛳️ 5.小程序的学习资源⛳️ 6.第一个微信小程序 前言 小程序&#xff0c;由于其便捷的操作&#xff0c;以及丰富的功能&#xff0c;已经普及到了生活中的各个领域,有很多人…

开始第一个基于uni-app的微信小程序开发

微信小程序 uni-app开发工具创建uni-app项目运行项目页面显示以及调试 uni-app uni-app 是一个使用 Vue.js 开发所有前端应用的框架&#xff0c;开发者编写一套代码&#xff0c;可发布到iOS、Android、H5、以及各种小程序&#xff08;微信/支付宝/百度/头条/QQ/钉钉/淘宝&#…