微信支付 v 3.3.6

前提:注册、申请服务号,开通微信支付。

涉及到的参数:AppId、AppSecret、原始ID(自动回复)、mch_id(商户号)、Key(商户密钥:自己设定。)

统一规范:

  • 要求
  1. 认证方式:HTTPS 认证,退款和冲正接口调用需要商户证书(证书在审核邮件附件中)。
  2. 请求采用POST 方式。
  3. 提交和返回结果采用XML格式。
  4. 字符集默认使用UTF-8,请勿使用其它字符集。
  5. 商户与微信之间的交互(特别是Native 回调和支付通知回调),都需要验证签名
  6. 处理返回时先判断协议返回错误码,再判断业务返回错误码,最后判断交易状态。
  • 统一加密方式:MD5。
  • 统一签名生成方式:

    •   传入参数按字段名ascii码从小到大排序,使用url键值对的格式(key1=value1&key2=value2...)拼接成字符串注:值为空的参数不参与签名)。在字符串最后再拼接上&key=Key(商户密钥),然后进行MD5加密处理,最后得到的字符串转换为大写

微信支付:

  • jsapi支付和native支付都需要调用统一支付接口(URL 地址:https://api.mch.weixin.qq.com/pay/unifiedorder)
  • jsapi支付
    • jsapi 调用统一支付接口需要参数openid(通过Oath2.0授权获取)。
    • 统一支付接口返回参数需要先验证签名,然后获取prepay_id。

      document.addEventListener(‘WeixinJSBridgeReady‘, function onBridgeReady() {

  //公众号支付
  jQuery(‘#wxPay‘).click(function(e){

    WeixinJSBridge.invoke(‘getBrandWCPayRequest‘,{
    "appId" : appId, //公众号名称,由商户传入
    "timeStamp" : timeStamp,   //时间戳
    "nonceStr" : nonceStr,        //随机串
    "package" : package,     //格式:prepay_id=xxxx
    "signType" : signType,    //签名方式:MD5
    "paySign" : paySign      //签名:生成签名参数appId、timeStamp、nonceStr、package、signType、key 注意参数名大小写
    },function(res){
      if(res.err_msg == "get_brand_wcpay_request:ok" ) {
        window.location.href=url;   //支付成功后跳转到的页面用于展示
      }
      // else {
        // alert(res.err_code+res.err_desc+res.err_msg);
      // }
    });

  });

}, false)

  • native支付

    

时间: 2024-10-19 22:20:09

微信支付 v 3.3.6的相关文章

微信支付V3集成过程(Native)

长话短说,微信支付V3版本相比V2版本,简化许多接口,大大降低了商户的接入代价,只不过由于相关的集成说明文档写的过于笼统,细节描述不够具体,demo版本不够完善等等原因,被大家诟病. 最近基于业务需要,完成了微信支付的接入,选择的是公众号扫码支付(Native模式).在此把集成的大致过程贴出来,希望能对正在困扰的各位有所帮助. 整个交互过程分为四步: 1.商户:生成微信支付二维码 2.微信:扫描二维码,获取商户订单信息 3.微信:确认支付,调起微信支付模块,完成支付,回调商户通知接口 4.商户:

微信支付——开发体系

有了微信支付方面的一些前期准备以及理论知识后,我们可以开始打造我们的微信支付平台了. 商户向微信公众号提供企业以及银行账户资料,商户功能审核通过后,可以获得以下账户包括财付通的商户账户,用于公众号支付 appId 公众号身份的唯一标识. paySignKey 公众号支付请求中用于加密的密钥Key,可验证商户唯一身份,PaySignKey对应于支付场景中的appKey值. appSecret 除了支付请求需要用到paySignKey,公众平台接口API 的权限获取所需密钥Key,在使用所有公众平台

[转载]微信支付

公众号支付有2种支付方式: JS API 支付:是指用户打开图文消息或者扫描二维码,在微信内置浏览器打开网页进行的支付.商户网页前端通过使用微信提供的 JS API,调用微信支付模块.这种方式,适合需要在商户网页进行选购下单的购买流程.Native(原生)支付:是指商户组成符合 Native(原生)支付规则的 URL 链接,用户可通过点击该链接或者扫描对应的二维码直接进入微信支付模块(微信客户端界面),即可进行支付.这种方式,适合无需选购直接支付的购买流程. 以上两种方式最大的区别是:是否需要经

公众号微信支付

1.概要 公众号是以微信用户的一个联系人形式存在的,支付是微信服务号的核心一环. 本篇主要介绍微信支付这一功能,避免大家再跳微信支付的坑. 1.1 关于Magicodes.WeChat.SDK MAGICODES.WECHAT.SDK为心莱团队封装的轻量级微信SDK,现已全部开源,开源库地址为:https://github.com/xin-lai/Magicodes.WeChat.SDK 更多介绍,请关注后续博客. 2.微信公众号支付 用户已有商城网址,用户通过微信消息.微信扫描二维码.微信自定

微信支付对账单下载

以上是官网文档说明: 下面是根据文档 梳理下思路: /** 关于签名的算法,api提供的原文是: 1.签名算法 签名生成的通用步骤如下: 第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA. 特别注意以下重要规则: 参数名ASCII码从小到大排序(字典序): 如果参数的值为空不参与签名: 参数名区分大小写: 验证调用返回或微信主动

微信支付SDK(python版)

最近一段时间一直在搞微信平台开发,最近的v3.37版本微信支付接口变化贼大,所以就看着php的demo移植为 python版,为了保持一致,所以接口方法基本都没有变,这样的好处就是不用写demo了,看着微信官方的demo 照葫芦画瓢就可以了. 我已经把代码放到github了,https://github.com/Skycrab/wzhifuSDK,我主要测试了JsApi调用方式,其它的调用方式并没有测试,如果你发现了bug,请多多pull request,我将不甚感激. 方便观看,代码贴于此.

<正则吃饺子> :关于微信支付的简单总结说明(一)

关于支付,一直想参与开发,现在根据项目中已有及参见的微信开发文档,将自己对于微信开发的流程进行简单的总结,以备后用和帮助后来者. 一.相关官方文档 微信支付官方文档:https://pay.weixin.qq.com/wiki/doc/api/index.html 二.参考博文 (待添加,等我找找..) 三.自己参看文档时候的简单文档整理, ps:只为了方便自己记忆和联想 四.根据官方文档中,标记后台主要做的工作流程 五.参看项目代码时候,整理的demo,来源于网络 (1)MD5Util  --

微信支付--入门篇

公众号支付有2种支付方式: JS API 支付:是指用户打开图文消息或者扫描二维码,在微信内置浏览器打开网页进行的支付.商户网页前端通过使用微信提供的 JS API,调用微信支付模块.这种方式,适合需要在商户网页进行选购下单的购买流程.  Native(原生)支付:是指商户组成符合 Native(原生)支付规则的 URL 链接,用户可通过点击该链接或者扫描对应的二维码直接进入微信支付模块(微信客户端界面),即可进行支付.这种方式,适合无需选购直接支付的购买流程. 以上两种方式最大的区别是:是否需

APP微信支付Java后台的实现(springmvc)

第一次做微信支付,阅读完开发文档后,下了个官方deml,摸索了好久,期间也出现了好多问题,终于是实现生成预支付订单以及支付成功后接收微信服务器通知,不多说了,直接上代码: 一.工具类 ConstantUtil.java public class ConstantUtil { /** * 微信开发平台应用ID */ public static final String APP_ID="wx0a3242424aae13c6"; /** * 应用对应的凭证 */ public static