微信支付jssdk是做啥用的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信支付jssdk是做啥用的相关的知识,希望对你有一定的参考价值。

参考技术A 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包。
通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、卡券、支付等微信特有的能力,为微信用户提供更优质的网页体验。
参考技术B 微信支付JS-SDK的作用:
微信支付JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包。通过使用微信支付JS-SDK,网页开发者可借助微信高效地使用微信支付功能,为微信用户提供更优质的网页体验。

微信支付JS-SDK的开发模式:微信支付开发主要采用协议式开发模式。

总结:面向网页开发者介绍微信支付JS-SDK如何使用及相关注意事项。

备注:微信支付包括刷卡支付,扫码支付,公众号支付以及APP支付。同时微信支付JS-SDK还提供了代金券或立减优惠,现金红包,企业付款三种不同的支付工具的使用帮助。

MAKEWORD 是做啥用的?

【中文标题】MAKEWORD 是做啥用的?【英文标题】:What is MAKEWORD used for?MAKEWORD 是做什么用的? 【发布时间】:2014-06-10 02:14:20 【问题描述】:

我在一段教学代码中遇到了这个宏MAKEWORD(2,2)。我在 MSDN 中读到它“通过连接指定的值来创建一个 WORD 值。

问题是,WORD 不是类似于无符号整数的东西,为什么我需要执行诸如使用MAKEWORD() 之类的奇怪过程?

【问题讨论】:

【参考方案1】:

宏需要两个字节作为其参数:

WORD MAKEWORD(
  BYTE bLow,
  BYTE bHigh
);

它在Windef.h 中定义为:

#define MAKEWORD(a,b)   ((WORD)(((BYTE)(a))|(((WORD)((BYTE)(b)))<<8)))

它基本上是从两个 1 字节的字构建一个 16 位的字(而且看起来不太便携)

1 字节(一个 WORD)的数字 2 的二进制表示是: | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |

如果我们像 MAKEWORD(2,2) 那样将这些字节中的两个连接起来,我们会得到:

| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |

512 + 2 = 514:live demo.

这个特定宏的唯一真实示例是在Initialization of Winsock 中,用于生成WSAStartup 期望的版本控制字。

【讨论】:

谢谢,但我还是不明白为什么要这样做。你能做吗WORD = 2.2;我是初学者所以这种事情对我来说很奇怪。 @user3704920 ,请参阅我的编辑以获取二进制解释。 2.2跟这个没关系,MAKEWORD不是串联字符串,而是位。 任何预期的可移植性可能来自在系统提供的头文件中可以根据需要在字节序不同的系统或交叉编译器上以不同方式定义宏,不是来自您拥有的任何给定版本的头文件中的任何一个特定定义。【参考方案2】:

粗略地说,MAKEWORD(x,y) 等价于((y) &lt;&lt; 8 | (x));这在将两个字节大小的值打包到单个 16 位字段中时很有用,这在通用消息结构中经常发生。互补操作由LOBYTEHIBYTE 宏执行,它们从WORD 操作数中提取低位或高位字节。

宏在 16 位 Windows 时代得到了广泛使用,但一旦 32 位程序占据主导地位,它的重要性就下降了。 16 位 Windows 的另一个痕迹在于 MSG 结构成员 wParamlParam 的名称,它们最初的类型分别为 WORDLONG;他们现在都是LONG

Charles Petzold 的著作Programming Windows, second edition 提供了巨大的历史洞察力。

【讨论】:

in this ((y) @RaHuL 因为在大多数系统(可能是 Windows 可以运行的所有系统)上,一个字节是一个八位字节(八位)。因此,如果您从两个 8 位半部构造一个 16 位值,您希望将其中一个移动 8 位以正确排列位。【参考方案3】:

许多小型数字设备(例如数字温度计)会将其数据存储在 8 位寄存器中。一个 8 位寄存器可以存储 -127 到 127 之间的有符号数。因此,要存储低于 -127 或高于 127 的数字,需要使用两个 8 位寄存器:低 8 位存储在寄存器 1 中,高 8 位存储在寄存器 2 中.读取数据的计算机需要从两个寄存器中获取数据,然后重新组合这两个值以生成介于 -32767 和 32767 之间的 16 位数字。MAKEWORD 宏是组合两个小的 8 位数字的快速方法成一个更大的 16 位数字。如果数据更高,它将存储在更多的 8 位寄存器中。 希望这是有道理的。

【讨论】:

以上是关于微信支付jssdk是做啥用的的主要内容,如果未能解决你的问题,请参考以下文章

h5微信支付功能封装

cacert.pem 到底是做啥用的?

H5微信支付啥意思

微信支付时,我采用的是jssdk发起支付,出现当前页面的URL未注册

微信支付 (JSSDK支付)

Vue3.2 中新出的 expose 是做啥用的?