微信APIV3 服务商进件接口(包括图片上传接口)

本文详细介绍了如何在不使用SDK的情况下,手动对接微信服务商APIV3接口,特别是进件接口和图片上传功能。过程中强调了在设置HTTP请求头时,序列号正确使用的关键性,避免由此引发的问题。
摘要由CSDN通过智能技术生成

笔者最近对接微信服务商,没有用sdk,硬接。。

需要注意的是,header中的序列号不要用错了

<?php

namespace xxxxx;

use app\api\ErrDesc;
use app\models\aliyun\oss\Oss;
use app\models\Help;
use Yii;

/**
 * 微信服务商(微信基础接口)
 *
 */
class WxCommercial
{
    private static $merchant_id = ''; //发起请求的商户(包括直连商户、服务商或渠道商)的商户号
    private static $serial_no = '';//服务商商户API证书序列号
    private static $api_v3 = '';//apiv3秘钥

    /**
     * 获取私有key字符串 重新格式化  为保证任何key都可以识别
     */
    public static function get_private_key()
    {
        $path = Yii::$app->getBasePath() . '/xxxx/apiclient_key.pem';
        return file_get_contents($path);
    }

    /**
     *
     * 获取公共key字符串
     */

    public static function get_public_key()
    {
        $path = Yii::$app->getBasePath() . '/xxxx/apiclient_cert.pem';
        return file_get_contents($path);
    }

    /**
     *
     * 获取微信支付证书
     */

    public static function get_wxcert_key()
    {
        $path = Yii::$app->getBasePath() . '/xxxxx/wxcert.pem';
        return file_get_contents($path);
    }

    /**
     * 功能:敏感信息加密, 使用微信支付平台公钥加密
     *
     * @param $str
     * @return string
     * @author Jiachi
     */
    public static function encryptOAEP($str)
    {
        //$str是待加密字符串
        $public_key = self::get_wxcert_key();
        $encrypted = '';
        if (openssl_public_encrypt($str, $encrypted, $public_key, OPENSSL_PKCS1_OAEP_PADDING)) {
            //base64编码
            $sign = base64_encode($encrypted);
        } else {
            return false;
        }
        return $sign;
    }

    /**
     * 功能:解密敏感数据
     *
     * @param $str
     * @author Jiachi
     */
    public static function decryptOAEP($str)
    {
        //$str是密文
        $private_key = self::get_private_key();
        $encrypted = '';
        if (openssl_private_decrypt(base64_decode($str), $encrypted, $private_key, OPENSSL_PKCS1_OAEP_PADDING)) {
            return $encrypted;
        } else {
            return false;
        }
    }

    /**
     * 功能:验证回调数据和签名
     * @param $data
     * @param $signature
     * @return bool
     * @author Jiachi
     */
    public static function dec
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值