<bdo id="xhgx9"></bdo>
<center id="xhgx9"></center>
<center id="xhgx9"></center>
  • <bdo id="xhgx9"></bdo>

    <pre id="xhgx9"></pre>
    <li id="xhgx9"><tbody id="xhgx9"></tbody></li>
  • <bdo id="xhgx9"><mark id="xhgx9"></mark></bdo>
    <\/body>\r\n <\/out_trade_no>\r\n 1<\/total_fee>\r\n <\/notify_url>\r\n <\/trade_type>\r\n <\/appid>\r\n 10012345<\/mch_id>\r\n <\/spbill_create_ip>\r\n <\/nonce_str>\r\n <\/sign>\r\n<\/xml><\/pre>

    Soumettre Le retour est correct, qui contient perpay_id?:<\/p>

    <\/p>

    \r\n <\/return_code> \r\n <\/return_msg> \r\n <\/appid> \r\n <\/mch_id> \r\n <\/nonce_str> \r\n <\/sign> \r\n <\/result_code> \r\n <\/prepay_id> \r\n <\/trade_type> \r\n<\/xml><\/pre>

    JS pour générer le paiement?:<\/p>

    <\/p>

    {\r\n  \"appId\": \"wx8888888888888888\",\r\n  \"timeStamp\": \"1414411784\",\r\n  \"nonceStr\": \"gbwr71b5no6q6ne18c8up1u7l7he2y75\",\r\n  \"package\": \"prepay_id=wx201410272009395522657a690389285100\",\r\n  \"signType\": \"MD5\",\r\n  \"paySign\": \"9C6747193720F851EB876299D59F6C7D\"\r\n}<\/pre>

    Notification xml renvoyée après paiement réussi?:<\/p>

    <\/p>

    <\/appid>\r\n<\/bank_type>\r\n<\/fee_type>\r\n<\/is_subscribe>\r\n<\/mch_id>\r\n<\/nonce_str>\r\n<\/openid>\r\n<\/out_trade_no>\r\n<\/result_code>\r\n<\/return_code>\r\n<\/sign>\r\n<\/sub_mch_id>\r\n<\/time_end>\r\n1<\/total_fee>\r\n<\/trade_type>\r\n<\/transaction_id>\r\n<\/xml><\/pre>

    Je suis libre d'utiliser les données dans ce document, veuillez vous référer au format ci-dessous. Notez également qu'il est sensible à la casse. <\/p>"}

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

    Maison Applet WeChat Développement WeChat Introduction détaillée au programme de développement d'interface de paiement php WeChat

    Introduction détaillée au programme de développement d'interface de paiement php WeChat

    Mar 16, 2017 pm 03:23 PM

    L'

    interface de paiement WeChat devient progressivement disponible comme Alipay. Vous pouvez utiliser l'interface api pour mettre en ?uvre le paiement sur des sites Web ou des applications tiers. développement d'interface Le programme a été testé. Les amis intéressés peuvent se référer à

    Explication du programme de développement d'interface de paiement PHP WeChat?:

    Conditions nécessaires?:
    appid // Obtenu depuis le centre de développement du backend du compte officiel (le même que celui dans l'email)

    mchid//Obtenu dans l'email

    clé/ /Défini par le backend du marchand

    appsecret //Le centre de développement de compte officiel a obtenu
    deux fichiers de certificat, et apiclient_cert.pem a été obtenu dans l'e-mail apiclient_key.pem
    Notes ?:
    Paiement WeChat en arrière-plan du compte public-》Configuration du développement-》Ajouter répertoire de test et tester le compte WeChat personnel.
    Centre des développeurs-"Autorisation de page Web pour obtenir des informations utilisateur de base-" Remplacez-le par votre nom de domaine de test. Sinon, une erreur de paramètre redirect_uri se produira
    ——————————Suivi à améliorer——————-
    La page de préparation du paiement WeChat effectuée trois opérations seules en arrière-plan?:

    1. Get openid


    //使用jsapi接口
     
     代碼如下復制代碼
      $jsApi = new JsApi_pub();
     
      //=========步驟1:網(wǎng)頁授權獲取用戶openid============
      //通過code獲得openid
      if (!isset($_GET[&#39;code&#39;]))
      {
        //觸發(fā)微信返回code碼
        $url = $jsApi->createOauthUrlForCode(WxPayConf_pub::JS_API_CALL_URL);
        //echo $url;
        Header("Location: $url");
      }else
      {
        //獲取code碼,以獲取openid
        $code = $_GET[&#39;code&#39;];
        $jsApi->setCode($code);
        $openid = $jsApi->getOpenid();
      }

    I. J'ai également rencontré cela lors de la première étape lorsque j'ai commencé. Le problème est que l'openid ne peut pas être obtenu. Ceci est lié à certains serveurs. La démo utilise curl pour l'obtenir.
    C'est étrange que le curl de mon serveur n'ait pas pu être obtenu. Plus tard, il a été remplacé par file_get_contents et il peut être obtenu normalement.
    Mais ce n’est pas la solution. Parce que plus d'opérations curl seront nécessaires plus tard.
    J'ai vu un endroit dans la documentation de développement qui nécessitait libcurl 7.20.1 ou supérieur pour les opérations de certificat. Ensuite, j'ai travaillé sur le serveur pour améliorer la version php curl de linux. En fin de compte, je viens de passer à un autre serveur Windows.
    Faisons cela pour le moment et déboguons la prochaine fois que vous aurez besoin de l'utiliser.

    étape 2?: Obtenir et payer l'identifiant du numéro de commande
    Le code est le suivant


    $unifiedOrder = new UnifiedOrder_pub();
       
      //var_dump($unifiedOrder);
      //設置統(tǒng)一支付接口參數(shù)
      //設置必填參數(shù)
      //appid已填,商戶無需重復填寫
      //mch_id已填,商戶無需重復填寫
      //noncestr已填,商戶無需重復填寫
      //spbill_create_ip已填,商戶無需重復填寫
      //sign已填,商戶無需重復填寫
      $unifiedOrder->setParameter("openid","$openid");//商品描述
      $unifiedOrder->setParameter("body","貢獻一分錢");//商品描述
      //自定義訂單號,此處僅作舉例
      $timeStamp = time();
      $out_trade_no = WxPayConf_pub::APPID."$timeStamp";
      $unifiedOrder->setParameter("out_trade_no","$out_trade_no");//商戶訂單號 
      $unifiedOrder->setParameter("total_fee","1");//總金額
      $unifiedOrder->setParameter("notify_url",WxPayConf_pub::NOTIFY_URL);//通知地址 
      $unifiedOrder->setParameter("trade_type","JSAPI");//交易類型
      //非必填參數(shù),商戶可根據(jù)實際情況選填
      //$unifiedOrder->setParameter("sub_mch_id","XXXX");//子商戶號 
      //$unifiedOrder->setParameter("device_info","XXXX");//設備號 
      //$unifiedOrder->setParameter("attach","XXXX");//附加數(shù)據(jù) 
      //$unifiedOrder->setParameter("time_start","XXXX");//交易起始時間
      //$unifiedOrder->setParameter("time_expire","XXXX");//交易結(jié)束時間 
      //$unifiedOrder->setParameter("goods_tag","XXXX");//商品標記 
      //$unifiedOrder->setParameter("openid","XXXX");//用戶標識
      //$unifiedOrder->setParameter("product_id","XXXX");//商品ID
     
     
      $prepay_id = $unifiedOrder->getPrepayId();
       
      //echo &#39;prepay_id:&#39;;
      var_dump($prepay_id);

    Cette étape est également rencontré Tant de questions.
    Tout d'abord, il est difficile de tester le paiement WeChat, et il ne peut être testé que dans WeChat. J'utilise simplement mon téléphone pour glisser.
    Deuxièmement, il n'est pas facile d'utiliser var_dump pour le débogage. Imprimez certains fichiers au format xml et affichez uniquement la longueur des caractères, pas le contenu. Je l'ai donc écrit sous forme de log pour le débogage sur le serveur. Le code du log :
    Le code est le suivant


    // 打印log
      function log_d($word) 
      {
        $log_name="./logd.log";//log文件路徑
        $fp = fopen($log_name,"a");
        flock($fp, LOCK_EX) ;
        fwrite($fp,"執(zhí)行日期:".strftime("%Y-%m-%d-%H:%M:%S",time())."n".$word."nn");
        flock($fp, LOCK_UN);
        fclose($fp);
      }

    Utilisez $this->. dans WxPayPubHelper.php dans la démo ;log_d(xxx);
    Au début, j'avais toujours des erreurs car les mchid et appid qui m'étaient donnés ne correspondaient pas. . Ils m'ont donné un mauvais numéro de compte. Au début, je ne savais pas essayer au hasard. Pour cette étape de débogage, vous pouvez voir le code d'erreur dans var_dump($this->result); dans getPrepayId().

    étape 3?: Générez le code js du front-end de paiement et mettez-le sur la page Web?:
    Le code est le suivant


    $jsApi->setPrepayId($prepay_id);
     
    $jsApiParameters = $jsApi->getParameters();

    ——————-Cliquez pour payer————————-

    J'ai rencontré un autre problème dans ce domaine partie?:
    androidrenvoie "System?: Access_denied", ios renvoie "access_control:not_allowed"
    J'ai beaucoup cherché sur Baidu. En fait, je vois cette chose depuis longtemps et je ne l'ai jamais remarqué !
    La page qui initie la demande d'autorisation doit être une page du répertoire d'autorisation et ne peut pas exister dans un sous-répertoire. Sinon, une erreur sera renvoyée
    J'ai placé le fichier de paiement dans /domain name/pay/demo/
    Au début, j'ai continué jusqu'à la fin de /domain name/pay/ et j'ai pensé que c'était suffisant. Supporte les sous-répertoires, le résultat n'est pas possible ! .
    ————————Regardez enfin l'image ci-dessous————

    wxpay1
    wxpay3
    wxpay2

    —— ————xmljs en cours————————
    Identifiant d'ordre de génération et de paiement à soumettre?:
    Le code est le suivant


    <xml>
     <openid><![CDATA[ou9dHt0L8qFLI1foP-kj5x1mDWsM]]></openid>
     <body><![CDATA[貢獻一下]]></body>
     <out_trade_no><![CDATA[wx88888888888888881414411779]]></out_trade_no>
     <total_fee>1</total_fee>
     <notify_url><![CDATA[http://shanmao.me/wxpay/notify_url.php]]></notify_url>
     <trade_type><![CDATA[JSAPI]]></trade_type>
     <appid><![CDATA[wx8888888888888888]]></appid>
     <mch_id>10012345</mch_id>
     <spbill_create_ip><![CDATA[61.50.221.43]]></spbill_create_ip>
     <nonce_str><![CDATA[60uf9sh6nmppr9azveb2bn7arhy79izk]]></nonce_str>
     <sign><![CDATA[2D8A96553672D56BB2908CE4B0A23D0F]]></sign>
    </xml>

    Soumettre Le retour est correct, qui contient perpay_id?:


    <xml>
     <return_code><![CDATA[SUCCESS]]></return_code> 
     <return_msg><![CDATA[OK]]></return_msg> 
     <appid><![CDATA[wx8888888888888888]]></appid> 
     <mch_id><![CDATA[10012345]]></mch_id> 
     <nonce_str><![CDATA[Be8YX7gjCdtCT7cr]]></nonce_str> 
     <sign><![CDATA[885B6D84635AE6C020EF753A00C8EEDB]]></sign> 
     <result_code><![CDATA[SUCCESS]]></result_code> 
     <prepay_id><![CDATA[wx201410272009395522657a690389285100]]></prepay_id> 
     <trade_type><![CDATA[JSAPI]]></trade_type> 
    </xml>

    JS pour générer le paiement?:


    {
      "appId": "wx8888888888888888",
      "timeStamp": "1414411784",
      "nonceStr": "gbwr71b5no6q6ne18c8up1u7l7he2y75",
      "package": "prepay_id=wx201410272009395522657a690389285100",
      "signType": "MD5",
      "paySign": "9C6747193720F851EB876299D59F6C7D"
    }

    Notification xml renvoyée après paiement réussi?:


    <xml><appid><![CDATA[wx8888888888]]></appid>
    <bank_type><![CDATA[CCB_DEBIT]]></bank_type>
    <fee_type><![CDATA[CNY]]></fee_type>
    <is_subscribe><![CDATA[Y]]></is_subscribe>
    <mch_id><![CDATA[1011111]]></mch_id>
    <nonce_str><![CDATA[38gt0ffgsvfsdfsdfbt1981duv63p7]]></nonce_str>
    <openid><![CDATA[o4p3SjfdsfdsfdsdCE5Y2XHw4]]></openid>
    <out_trade_no><![CDATA[wx4b56d1fsdfdsf416643247]]></out_trade_no>
    <result_code><![CDATA[SUCCESS]]></result_code>
    <return_code><![CDATA[SUCCESS]]></return_code>
    <sign><![CDATA[356EfsdfdsfsdsfE69509EDA344]]></sign>
    <sub_mch_id><![CDATA[10018826]]></sub_mch_id>
    <time_end><![CDATA[20141122160122]]></time_end>
    <total_fee>1</total_fee>
    <trade_type><![CDATA[JSAPI]]></trade_type>
    <transaction_id><![CDATA[100715001020fsdfsd1220006123174]]></transaction_id>
    </xml>

    Je suis libre d'utiliser les données dans ce document, veuillez vous référer au format ci-dessous. Notez également qu'il est sensible à la casse.

    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 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?!

    Article chaud

    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