使用php开发建行数字人民币DCEP小程序支付接口

发布于 2022-01-29 12:53:12

数字人民币介绍

数字人民币,英文简称DCEP,就是digital currency(数字货币)和electronic payment(电子支付)。中国发行的官方数字货币,国家信用背书,受法律承认,谁要是不认这个,那就是在搞事情,是要负法律责任滴。与支付宝、微信支付的区别就是后者是支付渠道,想获得真金白银的提现到银行卡然后取出,而数字人民币本身就是真金白银,不用提现。

项目起因

为了适应国家提出的数字人民币的普及化要求,各大银行开始对接和推广数字人民币的使用,本次要求在现有小程序商城的支付基础上新增“数字人民币”支付模式,建行本身提供了独立的数字人民币支付小程序,所以只要将该小程序接入原有支付体系即可。技术不说话干货搞起来。

如何使用php开发建行数字人民币DCEP小程序支付接口

  1. 获得建行接口关键参数和密钥。
    首先是与银行联系开通相关账户,然后由银行提供主要参数包括:MERCHANTID【商户代码】,POSID【商户柜台代码】,BRANCHID【分行代码】。还有接口公钥,这个需要在建行商户官网平台登录后获得。

    登录商户平台需要先申请证书,登录建行网站,下载“新版E路护航”,安装后根据提示完成操作,获得商户平台登录证书。
    公钥获取的是商户服务平台/数字人民币板块的公钥,而不是总平台公钥。这两者是有区别的。
    同时在服务平台还需填写支付回调地址信息,便于处理支付结果回调通知。
  2. 构建建行数字人民币支付网关下单参数
    在小程序支付前,我们需要构建网关下单的参数链,最终提交时结构如下:
    $epay_url = https://ch5.dcep.ccb.com/CCBIS/ccbMain_XM?CCB_IBSVersion=V6&MERCHANTID=105002653991975&POSID=042166601&BRANCHID=322000000&ORDERID=202201241515557833&PAYMENT=0.01&CURCODE=01&TXCODE=HT0000&REMARK1=bill&REMARK2=&RETURNTYPE=1&TIMEOUT=&MAC=daa34ac9601025550d43ec3929a06b9e&Mrch_url=https://www.baidu.com&TX_FLAG=3
    各字段含义请配合建行接口文档查看和获取。其中关键的一点是MAC参数如何生成?

    MAC参数生成原理:
    $A = "MERCHANTID=105002653991975&POSID=042166601&BRANCHID=322000000&ORDERID=202201241515557833&PAYMENT=0.01&CURCODE=01&TXCODE=HT0000&REMARK1=bill&REMARK2=&RETURNTYPE=1&TIMEOUT="; //根据接口文档将需要加密的参数进行组合
    $B = substr($PUBKEY,-30); //公钥的后30位B。
    $MAC = md5($A.'&PUB='.$B); //MD5加密获得mac
    最后将$MAC附加到请求参数串上使用。


这样主要流程就搞定了,其他的还有订单结果主动查询、订单退款等操作可以结合文档深入开发。更多问题可通过QQ与我取得联系。

©声明:本站所有文章,如无特殊说明或标注,均为izhnagbo.cn原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。本文链接 https://www.izhangbo.cn/article/51.html
0 条评论

学习
记录

发布
问题