首页 > PHP资讯 > 工具库 > 微信小程序支付流程

微信小程序支付流程

工具库

支付步骤逻辑:

1. 小程序发起请求预支付

2. 服务端调用接口发起预支付信息

3. 微信小程序调起支付完成支付

1. 小程序发起请求预支付

2. 服务端调用接口发起预支付信息

服务端接收到请求后,调用微信的api接口,调用成功会得到一个prepay_id 这个就是相当于小程序的预支付id 过程中会生成签名,按照官方文档的实例参数生成即可,如果非必填可选择不填,然后向 api 发送一个xml

   
;/notify_url>[/url]   oUpF8uMuAJO_M2pxb1Q9zNjWeS6o   1415659990   14.23.150.211   1   JSAPI   0CB01533B8C1EF103065174F50BCA001

需要注意sign 生成方式和公众号生成方式一致,下面是PHP生成签名方法, 可根据不同的框架修改,记得修改 key

 /**     * 生成签名     * @return 签名,本函数不覆盖sign成员变量,如要设置签名需要调用SetSign方法赋值     */    public function MakeSign()    {        //签名步骤一:按字典序排序参数        ksort($this->_prepay);        $string = $this->ToUrlParams();        //签名步骤二:在string后加入KEY        $string = $string . "&key=".WxPayConfig::KEY;        //签名步骤三:MD5加密        $string = md5($string);        //签名步骤四:所有字符转为大写        $result = strtoupper($string);        return $result;    }    /**     * 格式化参数格式化成url参数     */    public function ToUrlParams()    {        $buff = "";        foreach ($this->values as $k => $v)        {            if($k != "sign" && $v != "" && !is_array($v)){                $buff .= $k . "=" . $v . "&";            }        }        $buff = trim($buff, "&");        return $buff;    }

调用统一下单api

/**     * 统一下单调取返回值     * @return mixed     * $output['return_code'] 状态码 SUCCESS/FAIL     * $output['return_msg'] 返回信息,如非空,为错误原因 签名失败 参数格式校验错误     * $output['time'] 当前时间戳     * $output['nonceStr'] 随机字符串     * $output['prepay_id'] 预支付id     * $output['sign'] 签名     * */    public function pay_place_order()    {        $xml = '                   '.$this->_prepay['appid'].'                   '.$this->_prepay['body'].'                   '.$this->_prepay['mch_id'].'                   '.$this->_prepay['nonce_str'].'                   '.$this->_prepay['notify_url'].'                   '.$this->_prepay['openid'].'                   '.$this->_prepay['out_trade_no'].'                   '.$this->_prepay['spbill_create_ip'].'                   '.$this->_prepay['total_fee'].'                   '.$this->_prepay['trade_type'].'                   '.$this->MakeSign().'                ';//调用api,自定义对参数进行处理,改请求方式是自定义方式         $xml_result = post_request_https('https://api.mch.weixin.qq.com/pay/unifiedorder', $xml);

对返回的参数从新生成sign,得到一个新的sign,返回小程序

注意: 生成返回小程序签的名参与生成的签名的字段有下图,记得拼接key ,使用的是调取api 返回的值

3. 微信小程序调起支付完成支付

以上就是微信小程序支付流程的详细内容,更多请关注 第一PHP社区 其它相关文章!

工具库

本文由欣才IT学院整理发布,未经许可,禁止转载。
支持16不支持0