国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Maison Applet WeChat Développement de mini-programmes PHP?:?Explication détaillée du programme WeChat Mini?Explication du serveur de paiement WeChat

PHP?:?Explication détaillée du programme WeChat Mini?Explication du serveur de paiement WeChat

Jan 10, 2017 am 09:49 AM

Ensemble de serveur de paiement WeChat mini programme WeChat

Théoriquement, tout le travail d'intégration du paiement WeChat peut être effectué du c?té du mini programme, car le mini programme js a la capacité d'accéder au réseau, mais pour le bien de sécurité, les clés sensibles ne sont pas exposées et vous pouvez utiliser la démo php officielle prête à l'emploi pour économiser plus d'efforts, vous complétez donc la signature et lancez la demande c?té serveur, et l'applet se connecte uniquement à un wx.requestPayment ( OBJET).

Le processus d'intégration global est similaire à JSAPI et APP. Passez d'abord une commande de manière unifiée, puis utilisez les résultats renvoyés pour demander le paiement.

Un total de trois étapes?:

1. L'applet échange le code renvoyé par wx.login contre openid 2. Le serveur passe une commande à WeChat 3. L'applet initie le paiement

Préparez ces choses à l'avance?:

APPID = 'wx426b3015555a46be';
MCHID = '1900009851';
KEY = '8934e7d15453e97507ef794cf7b0519d';
APPSECRET = '7813490da6f1265e4901ffb80afaa36f';

PHP SDK, le lien de téléchargement est à la fin de l'article

Les 1er et 4ème éléments sont quand candidature au mini-programme Les 2ème et 3ème éléments ont été obtenus lors de la demande de paiement WeChat. Notez que les 3ème et 4ème éléments se ressemblent, mais sont en fait deux choses. La confusion des deux entra?nera un échec de signature.

Passez une commande sur WeChat et obtenez le prepay_id

1 Créez un contr?leur et importez la classe WxPay.Api.php

<?php
require_once __DIR__ . &#39;/BaseController.php&#39;;
require_once __DIR__ . &#39;/../third_party/wxpay/WxPay.Api.php&#39;;
 
class WXPay extends BaseController {
  function index() {
  }
}

Vous pouvez faire des demandes d'accès via index.php/wxpay

2 Modifier le fichier de configuration WxPay.Config.php

et le modifier pour demander vous-même la clé correspondante

. 3. Implémenter la méthode d'index

function index() {
//     初始化值對象
    $input = new WxPayUnifiedOrder();
//     文檔提及的參數(shù)規(guī)范:商家名稱-銷售商品類目
    $input->SetBody("靈動(dòng)商城-手機(jī)");
//     訂單號(hào)應(yīng)該是由小程序端傳給服務(wù)端的,在用戶下單時(shí)即生成,demo中取值是一個(gè)生成的時(shí)間戳
    $input->SetOut_trade_no(&#39;123123123&#39;);
//     費(fèi)用應(yīng)該是由小程序端傳給服務(wù)端的,在用戶下單時(shí)告知服務(wù)端應(yīng)付金額,demo中取值是1,即1分錢
    $input->SetTotal_fee("1");
    $input->SetNotify_url("http://paysdk.weixin.qq.com/example/notify.php");
    $input->SetTrade_type("JSAPI");
//     由小程序端傳給服務(wù)端
    $input->SetOpenid($this->input->post(&#39;openId&#39;));
//     向微信統(tǒng)一下單,并返回order,它是一個(gè)array數(shù)組
    $order = WxPayApi::unifiedOrder($input);
//     json化返回給小程序端
    header("Content-Type: application/json");
    echo json_encode($order);
  }

Remarque 1?: Le nonce_str mentionné dans le document n'est pas soumis, mais rempli par le sdk pour nous

Le. la source est WxPay.Api.php Ligne 55

$inputObj->SetNonce_str(self::getNonceStr());//隨機(jī)字符串

Explication 2?: le signe a également été aimablement donné à setSign La source est dans WxPay.Data.php ligne 111, dans MakeSign. ()

/**
  * 生成簽名
  * @return 簽名,本函數(shù)不覆蓋sign成員變量,如要設(shè)置簽名需要調(diào)用SetSign方法賦值
  */
 public function MakeSign()
 {
   //簽名步驟一:按字典序排序參數(shù)
   ksort($this->values);
   $string = $this->ToUrlParams();
   //簽名步驟二:在string后加入KEY
   $string = $string . "&key=".WxPayConfig::KEY;
   //簽名步驟三:MD5加密
   $string = md5($string);
   //簽名步驟四:所有字符轉(zhuǎn)為大寫
   $result = strtoupper($string);
   return $result;
 }

4. Appelez l'interface de connexion dans le mini programme pour obtenir l'openid

Faites une demande de connexion à WeChat, obtenez le code, puis soumettez le code en échange d'openId

wx.login({
     success: function(res) {
      if (res.code) {
       //發(fā)起網(wǎng)絡(luò)請求
       wx.request({
        url: &#39;https://api.weixin.qq.com/sns/jscode2session?appid=wx9114b997bd86f***&secret=d27551c7803cf16015e536b192******&js_code=&#39;+res.code+&#39;&grant_type=authorization_code&#39;,
        data: {
         code: res.code
        },
        success: function (response) {
          console.log(response);
        }
       })
      } else {
       console.log(&#39;獲取用戶登錄態(tài)失??!&#39; + res.errMsg)
      }
     }
    });

Depuis la console, vous pouvez voir que vous avez obtenu avec succès l'openid. Il ne reste plus qu'à le transmettre au serveur. c?té serveur, $this->input->post('openId ') En attente de collecte.

5. Le mini programme lance une demande à https://lendoo.leanapp.cn/index.php/WXPay pour passer une commande unifiée

//統(tǒng)一下單接口對接
      wx.request({
        url: &#39;https://lendoo.leanapp.cn/index.php/WXPay&#39;,
        data: {
          openId: openId
        },
        success: function (response) {
          console.log(response);
 
        },
            header: {
        &#39;content-type&#39;: &#39;application/x-www-form-urlencoded&#39;
    },
      });

et obtenez Les résultats suivants sont

{
 "appid": "wx9114b997bd86f8ed",
 "mch_id": "1414142302",
 "nonce_str": "eEICgYFuGqxFRK6f",
 "prepay_id": "wx201701022235141fc713b8f80137935406",
 "result_code": "SUCCESS",
 "return_code": "SUCCESS",
 "return_msg": "OK",
 "sign": "63E60C8CD90394FB50E612D085F5362C",
 "trade_type": "JSAPI"
}

à condition que https://lendoo.leanapp.cn soit déjà dans la liste blanche?:

6. Mini programme Appelez l'API de paiement

// 發(fā)起支付
var appId = response.data.appid;
var timeStamp = (Date.parse(new Date()) / 1000).toString();
var pkg = &#39;prepay_id=&#39; + response.data.prepay_id;
var nonceStr = response.data.nonce_str;
var paySign = md5.hex_md5(&#39;appId=&#39;+appId+&#39;&nonceStr=&#39;+nonceStr+&#39;&package=&#39;+pkg+&#39;&signType=MD5&timeStamp=&#39;+timeStamp+"&key=d27551c7803cf16***e536b192d5d03b").toUpperCase();
console.log(paySign);
console.log(appId);
wx.requestPayment({
  &#39;timeStamp&#39;: timeStamp,
  &#39;nonceStr&#39;: nonceStr,
  &#39;package&#39;: pkg,
  &#39;signType&#39;: &#39;MD5&#39;,
  &#39;paySign&#39;: paySign,
  &#39;success&#39;:function(res){
    console.log(&#39;success&#39;);
    console.log(res);
  }
});

pour tester le simulateur, un code QR appara?tra pour être scanné

Le le résultat est une erreur?:

errMsg:"requestPayment:fail"
err_code:2
err_desc:"支付驗(yàn)證簽名失敗"

la clé doit être ajoutée à la signature?! ! ! 'appId=' appId '&nonceStr=' nonceStr '&package=' pkg '&signType=MD5&timeStamp=' timeStamp "&key=d27551c7803cf16*e536b192d5d03b"Ceci est terminé.

Mais il n'y a aucune mention de clé dans le document

Capture d'écran du paiement réussi

PHP:微信小程序 微信支付服務(wù)端集成實(shí)例詳解及源碼下載

Plus PHP?: WeChat Veuillez prêter attention au site Web PHP chinois pour des articles connexes sur des exemples détaillés d'intégration de serveur de paiement WeChat pour les mini-programmes et les téléchargements de code source?!

Déclaration de ce site Web
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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1502
276