Maison  >  Article  >  développement back-end  >  Guide d'interface de paiement entre PHP et les mini-programmes

Guide d'interface de paiement entre PHP et les mini-programmes

WBOY
WBOYoriginal
2023-07-04 10:34:361653parcourir

Guide de l'interface de paiement entre PHP et les mini-programmes

Avec la popularité des paiements mobiles, de plus en plus de commerçants ont commencé à utiliser les mini-programmes comme l'un de leurs principaux canaux de vente. Pour mettre en œuvre la fonction de paiement du mini programme, celui-ci doit être connecté à l'interface de paiement correspondante. Cet article expliquera comment utiliser le langage PHP pour connecter l'interface de paiement du mini programme et joindra un exemple de code pour référence.

  1. Préparation
    Avant de commencer, assurez-vous d'avoir obtenu les informations suivantes :
  2. Identifiant du marchand (MCHID)
  3. Clé API (KEY)
  4. AppID du mini programme
  5. Clé du mini programme (Secret)
  6. Signature génération
    La génération de signature est une étape très importante pour se connecter à l'interface de paiement du mini programme. Voici un exemple de fonction qui peut être utilisée pour générer une signature :
function createSign($params, $key){
    ksort($params);  //按照参数名ASCII码从小到大排序

    $string = '';
    foreach($params as $k => $v){
        if($v != '' && $k != 'sign'){
            $string .= $k . '=' . $v . '&';
        }
    }

    $string .= 'key=' . $key;
    $string = md5($string);  //签名加密

    return strtoupper($string);  //转换成大写
}
  1. Interface de commande unifiée
    L'interface de commande unifiée est la première étape du paiement par mini-programme. Voici un exemple de fonction qui peut être utilisée pour envoyer une demande de commande unifiée au serveur WeChat :
function createUnifiedOrder($mchid, $key, $appid, $openid, $out_trade_no, $total_fee){
    $params = array(
        'appid' => $appid,
        'body' => '商品描述',
        'mch_id' => $mchid,
        'nonce_str' => md5(time()),
        'notify_url' => '支付成功回调地址',
        'openid' => $openid,
        'out_trade_no' => $out_trade_no,
        'spbill_create_ip' => $_SERVER['REMOTE_ADDR'],
        'total_fee' => $total_fee,
        'trade_type' => 'JSAPI'
    );

    //生成签名
    $params['sign'] = createSign($params, $key);

    //将数组转换为XML格式
    $xml = '<xml>';
    foreach($params as $k => $v){
        $xml .= '<' . $k . '>' . $v . '</' . $k . '>';
    }
    $xml .= '</xml>';

    //向微信服务器发送请求
    $url = 'https://api.mch.weixin.qq.com/pay/unifiedorder';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);

    $response = curl_exec($ch);
    curl_close($ch);

    //解析XML响应
    $result = simplexml_load_string($response);
    $prepay_id = $result->prepay_id;  //获取预支付交易会话标识

    return $prepay_id;
}
  1. Opération de paiement du mini programme
    Le mini programme doit demander le prepay_id en arrière-plan, puis utiliser le prepay_id pour effectuer opérations de paiement. Voici un exemple de fonction pour appeler le paiement du mini programme :
function getMiniProgramPayParams($mchid, $key, $appid, $openid, $out_trade_no, $total_fee){
    $prepay_id = createUnifiedOrder($mchid, $key, $appid, $openid, $out_trade_no, $total_fee);

    $params = array(
        'appId' => $appid,
        'timeStamp' => time(),
        'nonceStr' => md5(time()),
        'package' => 'prepay_id=' . $prepay_id,
        'signType' => 'MD5'
    );

    //生成签名
    $params['paySign'] = createSign($params, $key);

    return $params;
}

Conclusion :
Grâce aux étapes ci-dessus, nous pouvons utiliser le langage PHP pour nous connecter à l'interface de paiement du mini programme afin de réaliser la fonction de paiement mobile. Bien entendu, dans le processus de candidature lui-même, des ajustements et des extensions correspondants doivent être effectués en fonction des besoins spécifiques de l'entreprise. J'espère que le contenu de cet article vous sera utile et vous permettra de mettre en œuvre avec succès la fonction de paiement du mini programme.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn