微信支付开发指南

Posted SuperAvalon

tags:

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

 

简介

微信支付是腾讯公司在2014年9月推出的基于微信客户端的第三方支付平台,目前支持APP支付、公众号支付、扫码支付、H5支付、微信小程序支付、微信免密代扣等不同支付场景,文档规范易读,系统稳定,用户基数庞大,国内两大主流支付平台之一。

支付场景

支付方式trade_type支付凭证是否依赖SDK
APP支付APPprepay_idY
公众号支付JSAPIprepay_idN
扫码支付NATIVEprepay_idN
H5支付MWEBprepay_idN
小程序支付JSAPIprepay_idN
微信免密代扣APPcontract_idN

支付流程

除被扫支付场景、免密代扣场景以外,商户系统先调用统一下单接口,在微信支付服务后台生成预支付交易单,返回正确的预支付交易回话标识prepay_id后,再按扫码、JSAPI、APP等不同场景生成交易串调起支付。

  • APP支付,通过SDK凭prepay_id发起支付;
  • 公众号支付,有微信JSAPI凭prepay_id发起支付;
  • 扫码支付,使用code_url 生成二维码,有微信APP扫码发起支付;
  • H5支付,通过手机浏览器跳转至mweb_url(deeplink),发起微信支付;
  • 微信小程序支付,拿到prepay_id后组织支付请求报文,通过微信小程序发起支付;
  • 微信免密代扣,不需要prepayid,支付前要先签约,通过签约协议号contractid发起支付;

签名机制

所有调用微信支付业务相关的接口,请求报文都需要对签名做MD5签名,签名步骤如下:首先对报文中所有数据字段采用key=value的形式按照参数名ASCII码从小到大排序排序,然后再以&作为连接符拼接成待签名字符串,最后在待签名字符串后面拼接&key=密钥进行MD5计算。

签名密钥配置:前往微信商户平台(pay.weixin.qq.com)-->账户设置-->API安全-->密钥设置。

微信支付接口中,涉及资金回滚的接口会使用到商户证书,包括退款、撤销接口。证书下载:前往微信商户平台(pay.weixin.qq.com)-->账户中心-->账户设置-->API安全-->证书下载 。

在线开发文档

SDK下载

签名算法

/**
 * 签名
 */
public function unifiedsign($data, $signType = 'md5')

    $strInfo = '';
    foreach ($data as $key => $val) 
        if( $val === '' )
            continue;
        
        if($strInfo)
            $strInfo .= "&".$key."=".$val;
        else
            $strInfo = $key."=".$val;
        
    
    
    
    if($signType == 'md5')
        return strtoupper(md5($strInfo . '&key=' . $this->secret_key));
    elseif($signType == 'sha1')
        return sha1($strInfo . '&key=' . $this->secret_key);
    

APP支付时序图

 

以上是关于微信支付开发指南的主要内容,如果未能解决你的问题,请参考以下文章

通过生成支付二维码来实现微信支付的解决方案 - EasyWechat版(转)

企业如何开通微信支付付给个人

JAVA微信支付接口开发——支付

微信支付 开发文档入口

微信支付lavel是啥?

微信支付jssdk是做啥用的