威富通 全付通 中信 支付 PHP 一些问题总结(签名机制,sign:This field is required,no start line ,回调机制,漏单)

之前接到一个关于威富通支付的项目 原先的签名方式是MD5 现在升级RSA256的 其中一些发生的问题在这里做下总结

1.签名
首先先通过PHP代码或者linux 的openssl获得一套公钥和私钥(确保服务器内装有openssl并确认版本),或者下载支付宝验签工具(同时支持本地window和mac操作系统)。

PHP代码如下:

$config = array(
“digest_alg” => “sha256”,
“private_key_bits” => 2048, //字节数 512 1024 2048 4096 等 ,不能加引号,此处长度与加密的字符串长度有关系,可以自己测试一下
“private_key_type” => OPENSSL_KEYTYPE_RSA, //加密类型
);
res=opensslpkeynew(res = openssl_pkey_new(res=opensslp​keyn​ew(config);

//提取私钥
openssl_pkey_export($res, $private_key);

//生成公钥
publickey=opensslpkeygetdetails(public_key = openssl_pkey_get_details(publick​ey=opensslp​keyg​etd​etails(res);
// var_dump($public_key);

publickey=public_key=publick​ey=public_key[“key”];

//显示数据
var_dump(privatekey);//私钥vardump(private_key); //私钥 var_dump(privatek​ey);//私钥vard​ump(public_key); //公钥
输出后的格式是每64位带空格的网页显示形式

生成后保存并上传至威富通支付平台,如下图:
上传后可根据在威富通给的demo中的config.php配置私钥从而和上传的公钥做匹配验签(流程demo中自带)


之后下载平台公钥(如上图)同样配置到config.php配置中来做双重验签(流程demo中自带)

当中发生的问题
sign:This field is required 威富通接口范围msg 或者 通过打印openssl_error_string() 获得no start line
可能情况

  1. RSA密钥格式不对 注意选择PKCS1 2048字节的格式

  2. PHP在config内保存的密钥需要注意增加首位
    例如:
    公钥:
    -----BEGIN PUBLIC KEY-----(换行"\n")
    公钥内容(每64位换行"\n")
    -----END PUBLIC KEY-----

    私钥:
    -----BEGIN PRIVATE KEY-----(换行"\n")
    私钥内容(每64位换行"\n")
    -----END PRIVATE KEY-----

    这里推荐两种方式第一种
    a 用以上形式手动保存两个pem文件(公钥、私钥),通过代码读取文件地址 file_get_contents()
    b 通过PHP代码自动切割完成:
    $private_key = ‘私钥’;
    $public_key = ‘公钥’;
    $search = [
    “-----BEGIN RSA PRIVATE KEY-----”,
    “-----END RSA PRIVATE KEY-----”,
    “\n”,
    “\r”,
    “\r\n”
    ];

         $private_key=str_replace($search,"",$private_key);$private_key=$search[0] . PHP_EOL . wordwrap($private_key, 64, "\n", true) . PHP_EOL .       $search[1];$public_key = $this->cfg->C('public_rsa_key');$search = ["-----BEGIN PUBLIC KEY-----","-----END PUBLIC KEY-----","\n","\r","\r\n"];$public_key=str_replace($search,"",$public_key);$public_key=$search[0] . PHP_EOL . wordwrap($public_key, 64, "\n", true) . PHP_EOL . $search[1];
    

3.私钥公钥在config.php中的设置错误,注意:私钥是自己生成的私钥而公钥是从威富通中生成的公钥

基本注意了这些RSA验签就能通过了,接下来再说下回调机制:

$this->reqHandler->setParameter(‘notify_url’,)
这是后台异步回调页面
这是支付成功后,威富通系统后台异步回调的连接设置为:该页面所在地址+request.php?method=callback。注:威富通文档中所描述的机制

实测确实有不少当场认定通知失败,之后补发的情况,所以在建议callback中判定,避免数据重复插入。

$this->reqHandler->setParameter(‘callback_url’,)
这个可配置任意可访问的页面代表用户在支付完成后跳转的页面可以设置为后续的功能页面。

威富通 全付通 中信 支付 PHP 一些问题总结(签名机制,sign:This field is required,no start line ,回调机制,漏单)相关推荐

  1. 如何安装中信java_怎么安装中信全付通?中信全付通PC版安装教程

    最近有网友说不知道怎么安装中信全付通,不知道在哪里可以下载到最新版本,今天极速小编为你做一个简单的安装教程,希望对你们有帮助. 首先我们下载中信全付通(下载地址:http://www.jisuxz.c ...

  2. 关于威富通的微信扫码支付处理思路和流程

    关于威富通的微信扫码支付处理思路和流程 有个客户需要使用威富通的微信扫码支付,我来给处理下 首选下载官方的文档 https://open.swiftpass.cn/openapi/doc?index_ ...

  3. 微信支付-电商收付通业务概述

    引言:电商收付通是微信支付推出的电商行业解决方案,主要是应对上文支付二清与第三方支付提到的电商行业面临的二清问题,其核心竞争点在于对资金灵活的把控能力. 电商行业关键能力 订单生成:电商服务商可以帮助 ...

  4. 威富通科技软件测试笔试题

    刚从高新园回来,记录一下去威富通面试的过程. 26楼,进门登记后,前台小姐姐(穿着我双十一下单的阿迪达斯!...(⊙o⊙)-)会给一份软件测试笔试题.主要内容有: 一.软件测试理论,像什么软件测试流程 ...

  5. 支付机构违规已成常态 盛付通再次被央行处罚

    9月25日,中国人民银行太原中心支行公布了一张新罚单,上海盛付通电子支付服务有限公司山西分公司(下称"盛付通")因违反了<非金融机构支付服务管理办法>和<银行卡收 ...

  6. .Net Core 对接微信支付电商收付通

    微信支付官方文档:电商收付通(二级商户进件)开发指引-文档中心-微信支付服务商平台 1.安装SDK(SKIT.FlurlHttpClient.Wechat.TenpayV3) 2.前期准备 1)APP ...

  7. 德付通:如何用日志助推航旅支付智能运维升级

    "互联网+"时代的到来对传统行业产生了深远影响,尤其是客户对服务和产品需求日益多样化的航旅业,作为其中最重要的环节之一,航旅支付业也面临着业务运维日志监管合规.安全性.可靠性的挑战 ...

  8. 微信支付-电商收付通开发-04.支付

    文章目录 合单支付 预支付 调起支付 支付回调通知 查询合单订单 参考链接 合单支付 合单支付是指可以在一个订单中包含多个商家的多个商品,一次性支付. 关于JSAPI.APP.小程序等支付类型的区别: ...

  9. 与建行进行善付通支付接口小知识

    与建行进行善付通支付接口小知识 1.测试环境 目前做的工作都是为了更顺利的与生产环境进行对接. 2.生产环境 测试环境没问题后,申请生产环境的开发==一般需要三到五天==: 3.感觉最坑人的地方 1. ...

  10. 全国收单及网络支付机构腾付通已由中国科学院行政管理局实际控制

    侯维科技腾邦国际近日发布公告,腾邦集团.钟百胜先生已单方解除与深圳市大晋投资咨询有限公司. 史进签订的有关表决权委托协议,并与中科建业签订了新的表决权委托协议. 腾邦集团及钟百胜于8月26日与中科建业 ...

最新文章

  1. Sprig boot自动配置
  2. Spring Apache Kafka教程
  3. php udp发送和接收_63、php利用原生socket创建udp服务
  4. 大数据之-Hadoop3.x_MapReduce_ReduceJoin案例需求分析---大数据之hadoop3.x工作笔记0128
  5. 如歌将两个数组合并_将数组数据拆分后再合并,作为字典的键,实现多条件数据汇总...
  6. 个人开发—进度记录(二)
  7. 【DL小结1】DL入门
  8. 联想m7216更换墨粉流程图_联想M7216打印机更换墨后继续显示需更换
  9. tp框架like模糊查询报错
  10. smb服务器速度测试_360路由器做smb服务器各种情况拷贝速度测试外加加装5g网卡...
  11. Linux 多线程同步之哲学家用餐问题分析
  12. 电脑chm文件打不开解决方法
  13. c语言中的calloc函数
  14. 环信移动客服客服昵称头像设置
  15. 世纪佳缘 助手 免 邮票 群发 照片下载 信息检索等(完全功能版)
  16. 修改gh-ost源码实现两表在线高速复制
  17. I met my soulmate. She didn't.
  18. R语言使用caret包的train函数构建adaboost模型、模型调优、自定义设置trainControl函数和tuneLength参数
  19. 2-10、秋招年6月晋升期——《硬件架构的艺术-数字电路的设计方法与技术》
  20. 快速记忆单词,一年考过1级(转)

热门文章

  1. 【转载】等波纹滤波器中density factor参数的解释
  2. hikaricp mysql_HikariCP
  3. 华为hs8145v5如何改桥接_华为 光猫 HS8546V5 改 桥接模式 简易教程
  4. 标准正态分布表_机器学习
  5. 第十章 隐马尔可夫模型
  6. 怎样用Java生成随机数?
  7. 行为树 --- [3] BehaviorTree.CPP在Windows下的使用(基于VSCode)
  8. windows电脑桌面透明便签待办分类怎么添加
  9. div垂直居中和水平居中的多种方式
  10. Mugeda(木疙瘩)H5案例课—拍拍员工被玩坏了-岑远科-专题视频课程