微信支付(APP)集成时碰到的问题(.net提示“无权限”、iOS跳转到微信支付页面中间只有一个“确定”按钮)...

直入主题之前,请容我吐槽一下微*的官方东西:ASDFQ%#$%$#$%^FG@#$%DSFQ#$%.......;吐槽玩了!大家心照就好。

要完成手机APP跳转到微信的APP进行微信支付,需要进行如下操作:

1、先去微信的开放平台(http://open.weixin.qq.com)进行开发者账号的注册。

2、新建一个APP应用,然后填写必填信息提交审核。

3、进入APP应用,在接口信息中,进行申请“获得微信支付能力”的功能,期间会提交相关的公司营业信息证明等。

通过以上三点,然后经过漫长的等待之后,基本都可以申请下来的,这里不细说申请细节了,讲个大概,基本都能应付。

基本的对接流程在这里有细说(https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_3)

在进行服务端对接之前,需要用到如下信息:

/* 微信app key 这两个就是我们上面申请的APP得到的*/

W_APP_ID

W_APP_SECRET

//商户号

W_MCH_ID--这个也是需要登录商户平台进行获得

//API密钥,在商户平台设置

W_API_KEY--这个需要登录商户平台进行获得

商户平台的登录地址(https://pay.weixin.qq.com/index.php)

一、.net服务端的对接:

1、直接上微信的SDK列表下载.net的SDK(https://pay.weixin.qq.com/wiki/doc/api/download/WxPayAPI_CS_v3.zip)

2、要先知道一点,下载回来的SDK是没有具体包含“统一下单API”的,只包含了这个“刷卡支付、微信内网页支付、扫码支付”

3、下载回来的SDK中,第一次运行是运行不了的,需要对代码进行设置

  1)对上面四个参数进行配置,具体在lib\Config.cs文件中

  2)屏蔽掉lib\HttpService.cs的代理访问:(这东西基本可以不用使用到)

  

4、通过以上的几步配置,基本可以运行了

5、还有一个点,我们点击Default.aspx页面上的按钮,链接过去的地址要注意一下,其实不是我们的测试工程,而是paysdk.weixin.qq.com的,这个需要改成是我们的测试功能才行(这个是比较吭的)。

6、如何对接“统一下单API”,最基本的做法就是打开business\JsApiPay.cs文件,然后拷贝GetUnifiedOrderResult方法直接用,但是如果拷贝这个方法用的时候,会提示“无权限调用”。其实最根本的错误在于我们传递的trade_type为JSAPI导致的,所以拷贝过来使用的时候,需要做如下的更新:(为什么要这样了,原因很简单,这个方法的用途本来就是给JSAPI的,我们是要使用trade_type为APP进行调用,这些参数当然要变拉)

只要这些字段即可,其余的可有可无,都不影响,到了这点,你运行“统一下单”功能,就会返回prepay_id了,也就是支付ID。

至此,通过这些设置,基本都可能成功。

二、iOS的对接,最常用的致命弱点就是,我把官方的请求地址换成了自己之后,点击支付测试,跳转到微信支付的页面时,中间就只出现了一个“确定”按钮,点击之后返回到原APP,提示“支付失败,xxx -2”这样的提示。

0、前言,先下载iOS SDK(https://pay.weixin.qq.com/wiki/doc/api/download/wechat_sdk_sample_ios_v3_pay.zip

1、如果你有这些提示了,我可以很肯定的告诉你,你的sign错了,而且是用错了,你不应该直接用服务端返回的sign,这个根本不是一回事。

2、切记,客户端的sign字段,是要自己生成的。

3、还要切记,服务端返回的那一串json,最有用而且最优价值的就唯一一个prepay_id,其余的基本不需要。

4、官方的iOS SDK中,包含了两个方法(sendpay_demo、sendpay),这也是最容易错的,我们在对接的时候,选择sendpay的方法,也就是这个:

这个方法的东西其实是不完整,最明显,我们把网络请求改了之后,再把所用到的参数赋值,然后就没有然后了,根本调不起来,压根就没反应,原因是缺少了package参数值,这个是固定的(Sign=WXPay)

5、改了第四点之后,肯定是能调用起来的了,但是确不能支付,sign错误导致的,至此,你应该把注意力集中到sendpay_demo的方法中去,不要再使用sendpay方法了

只需要把刚才获取的prepay_id替换掉,立马就能正常使用支付功能,如下位置的参数替换成我们网络请求返回的的就行了:

总结,希望此篇文章对正在做微信支付对接的哥们有帮助,也让大家少走一些弯路,如果觉得合适,可以顺手点个赞,以此鼓励鼓励。thanks

转载于:https://www.cnblogs.com/EasonJim/p/4762293.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/405142.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Wireshark图解教程

Wireshark是世界上最流行的网络分析工具。这个强大的工具可以捕捉网络中的数据,并为用户提供关于网络和上层协议的各种信息。与很多其他网络工具一样,Wireshark也使用pcap network library来进行封包捕捉。可破解局域网内QQ、邮箱、msn、账号等的密码&am…

Qt QProcess执行Linux 命令行的方法

1、QProcess 打开一个bash终端,可以执行一般的命令,主要实现步骤如下 m_proces_bash new QProcess; m_proces_bash->start("bash"); m_proces_bash->waitForStarted(); connect(m_proces_bash,SIGNAL(readyReadStandardOutput()),this…

Linux Qt打包发布应用程序

1、新建脚本文件pack.sh SensorMaster.sh (1)pack.sh #!/bin/sh exe"SensorMaster" #你需要发布的程序名称 des"/home/jianwang16/SensorMaster_Proj/build-SensorMaster-Desktop_Qt_5_9_0_GCC_64bit-Release/SensorMaster_Pack/install-pack " #创建文…

拟合优度检验

可决系数 可决系数(coefficient of determination) 如果样本回归线对样本观测值拟合程度越好,各样本观测点与回归线靠得越近,由样本回归做出解释的离差平方和与总离差平方和越相近;反之,拟合程度越差&…

Qt MQTT安装步骤记录

QT中的MQTT作为第三方库需要自己安装才能使用,以下简单记录方法。 一、下载MQTT源码编译成连接库 github地址: https://github.com/qt/qtmqtt 二、新建QtMqtt文件夹并拷贝MQTT头文件 2.1 在mingw53_32\include中新建QtMqtt文件夹 2.2 拷贝源码中的所有…

项目中通用的顶部标题和返回的TitleBar

1. 定义布局文件&#xff0c;在layout下新建title_bar_view.xml <?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"a…

华为ECS云服务器 Ubuntu 安装和配置FTP教程

折腾了一下在云服务器上搭建FTP&#xff0c;可以在浏览器输入公网IP查看共享的文件&#xff0c;也就是创建下载点。现记录如下。第一种场景&#xff1a;匿名访问&#xff0c;通过浏览器输入公网地址即可实现下载第二种场景&#xff1a;输入指定的用户名和密码&#xff0c;可进入…

CM3计算板读取SHT30以及I2C驱动

1、引言 用SHT30测温湿度&#xff0c;SHT30是I2C通信总线&#xff0c;具体信息去看Datasheet文档&#xff1a;https://pdf1.alldatasheet.com/datasheet-pdf/view/897974/ETC2/SHT30.html。操作系统是Linux&#xff0c;机器是CM3计算板&#xff0c;当然也可以是树莓派和其他主…

由浅入深CIL系列:5.抛砖引玉:判断string是否为空的四种方法的CIL代码看看效率如何?...

本节将接触几个新的CIL操作码如下 ldc.i4.0 将整数值 0 作为 int32 推送到计算堆栈上 Ceq 比较两个值。如果这两个值相等&#xff0c;则将整数值 1 (int32) 推送到计算堆栈上&#xff1b;否则&#xff0c;将 0 (int32) 推送到计算堆栈上。 Brtrue.s 如果 value 为…

kmalloc, vmalloc分配的内存结构

From: http://linux.chinaunix.net/techdoc/system/2008/06/16/1011365.shtml 对于提供了MMU&#xff08;存储管理器&#xff0c;辅助操作系统进行内存管理&#xff0c;提供虚实地址转换等硬件支持&#xff09;的处理器而言&#xff0c;Linux提供了复杂的存储管理系统&#x…

多功能串口调试工具

自己编写的一个超强的多功能串口调试工具。特性如下&#xff1a; 串口自动识别&#xff0c;定时刷新&#xff0c;热插拔管理设置串口数据帧超时时长自定义背景、收发字体大小和颜色接收、发送字节计数文件发送、HEX、ASCII发送显示接收发送时间、标志、报文头日志保存、控制台…

Linux内存管理和分析vmalloc使用的地址范围

From: http://www.cnblogs.com/dubingsky/archive/2010/04/20/1716158.html Vmalloc可以获得的地址在VMALLOC_START到VMALLOC_END的范围中。这两个符号在<asm/pgtable.h>中定义&#xff1a; /* include/asm/pgtable.h */ #define VMALLOC_OFFSET (8*1024*…

bzoj 2820 YY的GCD 莫比乌斯反演

题目大意&#xff1a; 给定N, M,求1<x<N, 1<y<M且gcd(x, y)为质数的(x, y)有多少对 这里就抄一下别人的推断过程了 后面这个g(x) 算的方法就是在线性筛的时候只考虑当前的数最小因子&#xff0c;如果进来的最小因子不存在&#xff0c;相当于在之前那个数的基础上的…

构建第一个Flex的Mobile APP

Flash Builder 4.5已经支持直接创建Flex Mobile Project&#xff0c;写一个最简单的例子 1、建立工程 右击--》新建--》输入工程名“MyFirstMobileApp” 点击“Next”进入下一步 修改初始化的标题文本信息为“Home”&#xff08;默认为HomeView&#xff09;&#xff0c;勾选“G…

由于可能不会将凭据发送到远程计算机,因此将不会进行连接。若要获得协助,请与您的系统管理员联系。...

windows10系统下&#xff0c;在通过VPN连接到堡垒机的时候&#xff0c;出现“由于可能不会将凭据发送到远程计算机&#xff0c;因此将不会进行连接。若要获得协助&#xff0c;请与您的系统管理员联系。” 以下是解决方法&#xff1a; 方法一.组策略 请按照下列步骤操作&#xf…

Wireshark抓包工具使用教程以及常用抓包规则

From: http://fangxin.blog.51cto.com/1125131/735178 Wireshark是一个非常好用的抓包工具&#xff0c;当我们遇到一些和网络相关的问题时&#xff0c;可以通过这个工具进行分析&#xff0c;不过要说明的是&#xff0c;这只是一个工具&#xff0c;用法是非常灵活的&#xff0c;…

SSH整合--1

简单说明&#xff1a;整个整合过程使用mysql数据库、Myeclipse 8.5&#xff0c;框架使用struts2.1.6,hibernate3.x,spring2.5 功能&#xff1a;实现简单的用户登录 0. 简单的流程 1. Resister.jsp <% page language"java" import"java.util.*" pageEnco…

poj3750

简单题 View Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>usingnamespacestd;#definemaxn 100intn, w, s;charname[maxn][100];boolout[maxn];intmain(){//freopen("t.txt", "r", stdin);sca…

EF架构~了解一下,ADO.NET Entity Framework

回到目录 以下文章部分来自百度百科 背景 长久以来&#xff0c;程序设计师和数据库总是保持着一种微妙的关系&#xff0c;在商用应用程序中&#xff0c;数据库一定是不可或缺的元件&#xff0c;这让程序设计师一定要为了连接与访问数据库而去 学习 SQL 指令&#xff0c;因此在信…

CM3计算板装系统

1、CM3计算板简介 把树莓派搬到自己的产品中&#xff0c;一种和树莓派基础功能一模一样的板卡&#xff0c;并对相关管脚扩展&#xff0c;完成产品级的功能设计和硬件设计。板卡如下图所示&#xff0c;运行的是Linux操作系统。 2、下载镜像 CM3有多种内存搭配&#xff0c;常见…