背景

项目需要直接对接微信支付,实现小程序支付和退款功能,支付不需要证书,但是退款的话需要证书支持

  • 语言:php
  • 开发环境win
  • 测试环境centos

坑点1:路径问题

网上查到比较多的答案是在Linux系统下采用虚拟路径,Windows系统下采用绝对路径,但是在开发的过程中,发现在Windows系统下用绝对路径OK,但是放到测试环境的时候,出错了,报curl:58错误。测试环境改成绝对路径就可以通过用例了。

参考PHP代码:

         //在微信官方提供的demo中的Wxpay.Api.php中的postXmlCurl方法//设置证书//使用证书:cert 与 key 分别属于两个.pem文件curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM');curl_setopt($ch,CURLOPT_SSLCERT, __DIR__ .WxPayConfig::SSLCERT_PATH);curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM');curl_setopt($ch,CURLOPT_SSLKEY, __DIR__ .WxPayConfig::SSLKEY_PATH);

坑点2:证书存放目录

证书需要放到一个文件名问cert的文件夹下面,不然还是会报找不到证书的错误

坑点3:微信官方文档提供的OpenSSL命令跑出来的证书有问题

  • 官方提供:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem
输出样例
Bag AttributeslocalKeyID: ******************************** friendlyName: Tenpay Certificate
Key Attributes: <No Attributes>
  • 最后正确的命令:openssl pkcs12 -nodes -clcerts -in apiclient_cert.p12 -out apiclient_key.pem
输出样例
Bag AttributeslocalKeyID: **************************************friendlyName: Tenpay Certificate
subject=/CN=1245052102/O=**************/C=CN/ST=GuangDong/L=ShenZhen
issuer=/C=CN/O=Tenpay.com/OU=Tenpay.com CA Center/CN=Tenpay.com Root CA
-----BEGIN CERTIFICATE-----
******************************
******************************
******************************
******************************
******************************
******************************
******************************
******************************
******************************
******************************
******************************
******************************
-----END CERTIFICATE-----
Bag AttributeslocalKeyID:**********************************friendlyName: Tenpay Certificate
Key Attributes: <No Attributes>
-----BEGIN PRIVATE KEY-----
******************************
******************************
******************************
******************************
******************************
******************************
******************************
******************************
******************************
******************************
******************************
******************************

官方提供的命令中的-nocerts表示不输出任何证书,修改后的-clicerts表示仅输出客户端证书

具体命令可以看看官网文档的描述:https://www.openssl.org/docs/manmaster/man1/pkcs12.html

对接微信支付退款证书之坑相关推荐

  1. 微信支付退款回调踩坑及解决方案(附解密代码)

    文章目录 1. 回调失败问题(沙箱环境) 2. 解决方案 3. 退款回调的解密代码 1. 回调失败问题(沙箱环境) 问题始末: 最近再弄微信退款回调发现设置的回调的url根本就没有被调用,但是微信支付 ...

  2. 微信支付退款证书下载与安装及其注意事项

    1.从商户号按照教程下载好证书,将证书放到所在程序根目录下: 2.点击证书,安装到域名所在服务器上,安装密钥默认为商户号,(安装具体的地点不重要): 3.提交申请时,程序会读取证书所在物理路径(证书所 ...

  3. node 对接微信支付的踩坑记录(服务端)

    因项目需要,对接了微信支付,微信支付对于网页来说没有什么工作量,申请了商户号后,直接将收款码放到网页上就可以,但是小程序需要调起微信支付直接付款,于是认真翻阅了官网要针对小程序做微信支付的对接. 准备 ...

  4. java 微信转账 ca_error_java,微信支付退款_微信支付退款接口调用证书出现错误,java,微信支付退款,ssl - phpStudy...

    微信支付退款接口调用证书出现错误 PS:代码是copy腾讯提供的demo,但运行有问题,望大拿能够帮忙解决 加载证书时间出现如下错误: java.io.IOException: DER input, ...

  5. java微信支付 需要证书吗_java引用微信支付的p12证书文件

    最近对接微信支付的退款功能,其中涉及到引用证书文件. 1. 绝对路径: //windows: public static String PATH1 = "E:\project_ceshi\a ...

  6. 对接微信支付之网页支付详解

    对接微信支付之网页支付详解 声明:转载请注明出处 阅读对象:本文针对的是网页中的扫码支付 温馨提示:微信支付坑比较多,阅读时请仔细一些,不要放过所有需要注意的内容 , 本人一路踩坑过来,希望大家引以为 ...

  7. Java对接微信支付(完整全流程)

    Java对接微信支付及支付回调通知的全流程 一.所用框架.对接微信支付我们技术组用的是payment框架,因为该框架已整合springboot因此很方便快捷 <dependency>< ...

  8. Java 微信小程序笔记 二、 微信支付退款案例

    一.前期准备工作: 上篇博客配置的一些参数和文件Jar包 都要用到 微信支付需要小程序和商户绑定 APP绑定微信商户平台获取商户id(mchID). 证书(商户后台下载). 支付签名密钥(商户后台设置 ...

  9. 【记】微信支付服务器证书更换通知的验证流程

    [记]微信支付服务器证书更换通知的验证流程 原文:[记]微信支付服务器证书更换通知的验证流程 [重要]微信支付服务器证书更换通知,请开发人员验证以免影响交易 尊敬的微信支付商户&服务商: 因微 ...

  10. 微信小程序开发实战11_4 微信支付退款流程

    当交易发生之后一年内,由于买家或者卖家的原因需要退款时,卖家可以通过退款接口将支付金额退还给买家,微信支付将收到退款请求并且验证成功之后,将支付款按原路退还至买家账号上.使用该接口时的一些注意事项如下 ...

最新文章

  1. 单片机初学者做项目为什么这么难?单片机初学者心得有哪些
  2. 正在通过iTunes Store 进行鉴定
  3. Java模板引擎-FreeMarker
  4. KickStart 无人值守安装系统
  5. 【转载】索引的一些总结
  6. java split()方法_Java编程性能优化一些事儿
  7. oracle追加index,oracle add index
  8. 抖音2020研究报告_抖音音乐发布2020抖音音乐生态数据报告
  9. 用Express搭建 blog (一)
  10. 40-10-010-运维-kafka-2.11-基本操作
  11. 超详解读:垃圾回收机制 | 原力计划
  12. Windows7与Window2008 64位IIS7上面配置操作Excel
  13. 模板题——容斥原理、博弈论
  14. SVM入门(一)至(三)
  15. Vista 如何关闭UAC(用户帐户控制)
  16. python金融分析培训课程_Python金融分析相关书籍推荐
  17. Abp vnext Web应用程序开发教程 2 —— 图书列表页面
  18. 计算机房用什么气体灭火,计算机房(IDC机房)采用什么气体灭火系统最佳?
  19. 数组——洛谷#P1427 小鱼的数字游戏(Python实现)
  20. vue 动态获取的图片路径不显示_Vue 动态图片加载路径问题和解决方法

热门文章

  1. 单片机 重要英文缩写解释
  2. java excel公式计算_java中Excel公式的计算和函数,实例展示
  3. h5支付不能打开支付宝 ios_iOS 手机网站支付转Native支付(H5支付页面调起支付宝客户端(app))...
  4. Open Set Domain Adaptation 开集领域适应
  5. Codeforces1380 D. Berserk And Fireball(贪心)
  6. win10/11: Windows Audio无法启动 错误 0x80070005:拒绝访问
  7. html动画页面源码,9款超炫HTML5最新动画源码
  8. 从零到上亿用户,我是如何一步步优化MySQL数据库的?(建议收藏)
  9. 2倍研发费用=营销费用,小牛电动“智”在何方?
  10. linux系统下使用润乾报表设计器