微信支付开发指南

 

简介

微信支付是腾讯公司在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下载

签名算法

  • PHP版本 
/**
 * 签名
 */
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支付时序图

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值