近期遇到银联支付以及相关退款(此文仅以手机控件支付作为前提)操作,下面会依次写出期间遇到的问题以及基本流程,在此之前通过官方的一张图片了解一个支付中,对于后端人员的我们需要做到的一些事情
由此图可以看出,后端在此负责1、平台订单生成;2、银联全渠道平台订单推送;3、返回tn码给前端进行支付;4、处理前台通知以及全渠道平台的异步通知。
此间难点有三,订单推送、异步通知处理、订单状态查询。
通过官方的邮件说明下载相关的包并放入后端php代码中,(支付控件去下载你看到的估计只有IOS,安卓版的SDK,对于后端来说,随便下载一个即可,PHP的代码在里面都有放置);然后仔细阅读SDK中的readme.txt文件,此后进行以下步骤:
一、相关参数配置
对接过程中使用在sdk的assets文件夹中测试环境配置文件及证书,放置到sdk文件夹中,并配置/sdk/SDKconfig.php文件已正确的读取acp_sdk.ini配置文件。
在acp_sdk.ini文件中配置好acpsdk.signCert.path、acpsdk.encryptCert.path、acpsdk.rootCert.path、acpsdk.middleCert.path四个文件的绝对地址(自定义文件路径即可)。
因项目开发过程中会出现系统不同或项目地址不同导致的证书绝对地址等错误,尤其在实际生产环境中,极易出现项目部署文件地址不同,不可能在开发后每次更新都要更换证书地址,在此修改了一下SDK中的SDKconfig.php已兼容不同文件地址较长,这里还请点击展开查看
二、全渠道商品订单推送
在此注意txnTime格式不要传错,测试环境下应该不会出现什么问题,将得到的tn返回APP进行支付即可
三、异步通知处理以及订单交易状态查询
这一步主要作用为处理银联交易成功信息,并尽可能避免出现回调未处理导致问题。
先说异步通知处理,此步骤为订单状态修改的主要依据。无实际难点,保证相关参数无问题即可
订单交易状态查询
到此为止,若是项目没有订单线上退款就完成了。
订单退款相关
依据返回状态值进行相关操作即可,实际逻辑代码请自行实现
如果你想和更多PHP大神切磋交流经验,添加下方微信号,拉你入群
如果你想获得更多学习资料,添加下方微信号,送你资源
关注菲菲
带你入群,带你飞
更有资源免费送!
COME BABY
领取专属 10元无门槛券
私享最新 技术干货