apple pay充游戏后退款_微信小程序如何打通「退款功能」

2023-10-27 19:10

本文主要是介绍apple pay充游戏后退款_微信小程序如何打通「退款功能」,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考文档: https:// pay.weixin.qq.com/wiki/ doc/api/jsapi.php?chapter=9_4

一、申请 API 证书

1、什么是 API 证书?

当我们调用一些「安全级别较高」的 API 时,我们需要提供 API 证书。

API 证书用于证实商户身份。

2、API 证书的类型

API 证书分为两种:

  1. 微信支付颁发的(证书文件 私钥文件 从「微信商户平台」下载)
  2. 权威 CA 颁发的 API 证书。(下载 证书请求串 后,将其提交到「微信商户平台」;完成上述步骤后,证书文件 从「微信公众平台」下载,私钥文件 从「证书工具」导出)

3、我们要使用哪种 API 证书?

答:目前微信推荐「权威 CA 颁发的 API 证书」,因为其具有如下特点:

  1. 使用场景更广
  2. 兼容性更好

4、如何获取「权威 CA 颁发的 API 证书」?

参考文献: https:// kf.qq.com/faq/180824BrQ nQB180824m6v2yA.html
步骤1: 确保使用 Chrome 78.0.3809.87 以上版本

09ce5c6206564d50647a7fa6bfa9c27f.png
步骤2: 修改浏览器配置 
(1)在浏览器的地址栏输入chrome://flags/#enable-nacl
(2)找到Native Client插件,将Native Client的状态改为enable

f0ea5fe14b5180526e79d9155d09708e.png
步骤3: 进入「账户设置」=>「API 安全」

65f8ff94e9c480c3de136b427f015881.png
步骤4: 点击「安装操作证书」,进入后点击「安装控件」

db1b58066ffe79a1ed55c3c45a9aae55.png
步骤5: 点击「申请安装」,安装操作证书

00a61afd8fd78c0993fb05570bbb7a9f.png
步骤6: 回到 API 安全,点击「申请证书」

81312611bf83eac6b21788fb78ae7f97.png
步骤7: 下载证书工具,并安装

adeed482e302bd8ae561cbc9f360ea5b.png

92ddb1d7ec70338a06f89b7c33b9e9c2.png
步骤8: 依照步骤申请证书,获取「证书请求串」

51f38bd75faa774e65a48ec41f62c7dc.png

bf97a2a6da938eb9f8967dee55c60f0d.png

19dddcfb51cd4854f7abfd48c18505eb.png
步骤9: 回到网页端,将「证书请求串」粘贴进去,点击下一步

16ac6bed8050ffcb8ace7fcfa3d588f7.png

60c05a47e74d34376436d01be9636902.png
步骤10: 点击「复制证书串」,并粘贴到「证书工具」中获取证书文件

b05be99852c82f688d32d2475f75a199.png

babb61fabfcaee892daf2e82faccdd8b.png

c38a373538a5cff772c947f640a01df9.png

6d4babdbf568e783424a8d15ec71c178.png

1092f2e971db3e4d10551848482c0373.png

注意!请妥善保管下载下来的证书文件及私钥(共三个文件)!建议上传到云盘上!

二、调用 API 退款

1、调用 API 必须遵循的规则

  • 传输方式:HTTPS 传输
  • 提交方式:POST 方法
  • 数据格式:提交和返回数据都为 XML 格式,根结点名为 xml
  • 字符编码:统一采用 UTF-8 字符编码
  • 签名算法:MD5/HMAC-SHA256
  • 签名要求:请求和接收数据均需要校验签名,详细方法请参考 安全规范-签名算法
  • 证书要求:部分 API 需要「API 证书」
  • 判断逻辑:先判断协议字段返回,再判断业务返回,最后判断交易状态

2、申请退款的 API 地址及请求参数

https://api.mch.weixin.qq.com/secapi/pay/refund

参数:

  • appid:微信公众平台账户ID
  • mch_id:微信商户平台ID
  • nonce_str:随机字符串(需要我们自己生成,微信推荐「调用随机数函数生成,将得到的值转换为字符串。」)
  • sign:签名(需要我们自己生成,详见 签名算法)
  • transcation_id:微信支付时会生成的订单号
  • out_refund_no:商户系统内部的退款单号,商户系统内部唯一(这个需要我们自己生成)
  • total_fee:订单总金额
  • refund_fee:退款总金额

三、软件工程架构

  • 客户端:Vue + Element
  • 服务端:Node.js + Express
  • ServerLess:LeanCloud(可替换为您的数据库:MySQL、MongoDB 等)
用户端是网页,然后调用服务器端的 API,然后把这个过程中产生的数据保存在 LeanCloud 中。

1、介绍一个阿里工程师写的微信支付工具

tvrcgo/weixin-pay​github.com
f9651d37c263ede0868d5014c2cdac79.png

2、安装 weixin-pay

npm install weixin-pay

3、初始化 weixin-pay

// wxpay.js

708db3078659f81a53217cad1789d395.png
可以看下这两个文件的位置,wxpay.js 和 API 证书

4、使用 weixin-pay

wxpay

这篇关于apple pay充游戏后退款_微信小程序如何打通「退款功能」的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/287771

相关文章

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

游戏闪退弹窗提示找不到storm.dll文件怎么办? Stormdll文件损坏修复技巧

《游戏闪退弹窗提示找不到storm.dll文件怎么办?Stormdll文件损坏修复技巧》DLL文件丢失或损坏会导致软件无法正常运行,例如我们在电脑上运行软件或游戏时会得到以下提示:storm.dll... 很多玩家在打开游戏时,突然弹出“找不到storm.dll文件”的提示框,随后游戏直接闪退,这通常是由于

Java实现预览与打印功能详解

《Java实现预览与打印功能详解》在Java中,打印功能主要依赖java.awt.print包,该包提供了与打印相关的一些关键类,比如PrinterJob和PageFormat,它们构成... 目录Java 打印系统概述打印预览与设置使用 PageFormat 和 PrinterJob 类设置页面格式与纸张

MySQL 8 中的一个强大功能 JSON_TABLE示例详解

《MySQL8中的一个强大功能JSON_TABLE示例详解》JSON_TABLE是MySQL8中引入的一个强大功能,它允许用户将JSON数据转换为关系表格式,从而可以更方便地在SQL查询中处理J... 目录基本语法示例示例查询解释应用场景不适用场景1. ‌jsON 数据结构过于复杂或动态变化‌2. ‌性能要

Spring Boot 结合 WxJava 实现文章上传微信公众号草稿箱与群发

《SpringBoot结合WxJava实现文章上传微信公众号草稿箱与群发》本文将详细介绍如何使用SpringBoot框架结合WxJava开发工具包,实现文章上传到微信公众号草稿箱以及群发功能,... 目录一、项目环境准备1.1 开发环境1.2 微信公众号准备二、Spring Boot 项目搭建2.1 创建

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Qt使用QSqlDatabase连接MySQL实现增删改查功能

《Qt使用QSqlDatabase连接MySQL实现增删改查功能》这篇文章主要为大家详细介绍了Qt如何使用QSqlDatabase连接MySQL实现增删改查功能,文中的示例代码讲解详细,感兴趣的小伙伴... 目录一、创建数据表二、连接mysql数据库三、封装成一个完整的轻量级 ORM 风格类3.1 表结构

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

mysql表操作与查询功能详解

《mysql表操作与查询功能详解》本文系统讲解MySQL表操作与查询,涵盖创建、修改、复制表语法,基本查询结构及WHERE、GROUPBY等子句,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随... 目录01.表的操作1.1表操作概览1.2创建表1.3修改表1.4复制表02.基本查询操作2.1 SE

Golang如何用gorm实现分页的功能

《Golang如何用gorm实现分页的功能》:本文主要介绍Golang如何用gorm实现分页的功能方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景go库下载初始化数据【1】建表【2】插入数据【3】查看数据4、代码示例【1】gorm结构体定义【2】分页结构体