Rumah pembangunan bahagian belakang tutorial php 微信小程序填坑 php开发 IIS7

微信小程序填坑 php开发 IIS7

Apr 17, 2018 am 11:22 AM
php Program mini

这篇文章主要为大家详细介绍了微信小程序填坑 php开发 IIS7,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

一个商城小程序前后弄了七天,头大屁股大,不全面的文档,什么都要自己摸索

关于上线后,必须要基于https通行,同时版本大于1.2,可以在阿里云申请免费的CA证书,网上一大堆教程,2018.4.16亲测可以申请到,不过要在申请证书的导航里乱点一通,点出免费的CA证书

windows 2008 r2 通过WindowsPower把版本升级到1.2以上,网上也是一大堆教程

下面主要讲开发中遇到的坑

一:首先登陆坑

获取session_key和openid

https://developers.weixin.qq.com/miniprogram/dev/api/api-login.html

前端代码

wx.login({
  success: (loginRes) =>  
  { 
    loginRes.code
  }
})
Salin selepas log masuk

通过得到的code去服务端,为什么要去服务端,不在前段完成?

官方提供的文档里有一段话:

会话密钥session_key 是对用户数据进行加密签名的密钥。为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥。

服务端php通过https://api.weixin.qq.com/sns/jscode2session获取session_key和openid

至于用户的头像 昵称等可以通过前端 wx.getUserInfo 接口得到

为了防止数据被篡改,微信官方提供一个 encryptedData返回值,通过下面页面提供的各种语言在服务端通过算法解开

https://developers.weixin.qq.com/miniprogram/dev/api/signature.html?t=20161122

一:支付坑

这个我要重点表扬微信官方,文档真的是乱,这儿一个页面,那儿一个页面,尤其在最后一步支付验证签名失败,绝对是大小写问题,要反复校对,例如一个appId 所有地方都是appid,这儿它偏要弄个大写,下面我会贴出php的绕坑代码,如果哪里不确定,官方提供了一个在线校验

https://pay.weixin.qq.com/wiki/tools/signverify/

支付步骤

用户前端发起支付->与服务器通信->服务器提交参数去微信支付接口(https://api.mch.weixin.qq.com/pay/unifiedorder)获取prepay_id->服务器生成校验参数发送到前端->前端执行wx.requestPayment

统一下单文档:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_1

wx.requestPayment文档:https://developers.weixin.qq.com/miniprogram/dev/api/api-pay.html

经过统一下单接口后,千万要注意大小写,我在appid和nonce_Str这两个错误的写法反复检查了整整半天,下面提供个例子,我还会提供几个便捷转换函数,用于Array和伪Query的转换

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

$params['paySign']=md5Sign($params);
unset($params['appId']);
Salin selepas log masuk

接着把$params传到前端调起wx.requestPayment接口

下面几个是php端开发,我常用的封号的函数

/*
by 醉亦逝愁
md5Sign用于小程序服务端签名校验
*/
function md5Sign($params){ 		
    	ksort($params); 
	$stringA=arr2str($params);
	$stringSignTemp=$stringA.'&key='.'商户key(mch_key)';
	$sign=strtoupper(md5($stringSignTemp));
	return $sign;
} 
/*
by 醉亦逝愁
arr2str用于小程序服务端Array转伪Query
*/
function arr2str($array){
 
    $string = [];
 
    if($array && is_array($array)){
 
        foreach ($array as $key=> $value){
            $string[] = $key.'='.$value;
        }
    }
 
    return implode('&',$string);
}
Salin selepas log masuk
/*
by 醉亦逝愁
arr2str用于小程序服务端Array转Xml
用途https://api.mch.weixin.qq.com/pay/unifiedorder
*/
function arr2xml($arr,$item='root'){        
    $dom = new DOMDocument("1.0"); 
    $item = $dom->createElement($item); 
    $dom->appendChild($item); 
    foreach ($arr as $key=>$val){ 
        $itemx = $dom->createElement(is_string($key)?$key:"item"); 
        $item->appendChild($itemx); 
        if (!is_array($val)){ 
            $text = $dom->createCDATASection($val); 
            $itemx->appendChild($text); 
        }else { 
            arrayToXml($val,$dom,$itemx); 
        } 
    } 
    return $dom->saveXML($item); 
}
Salin selepas log masuk





https://api.mch.weixin.qq.com/pay/unifiedorder接口返回的xml通过如下函数变成Array

$xmlstring=simplexml_load_string($data, 'SimpleXMLElement', LIBXML_NOCDATA);
$data=get_object_vars($xmlstring);
Salin selepas log masuk

其他的后面在补充。

相关推荐:

php微信公众号开发之现金红包








Atas ialah kandungan terperinci 微信小程序填坑 php开发 IIS7. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Panduan Ringkas CakePHP Panduan Ringkas CakePHP Sep 10, 2024 pm 05:27 PM

CakePHP ialah rangka kerja MVC sumber terbuka. Ia menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP mempunyai beberapa perpustakaan untuk mengurangkan beban tugas yang paling biasa.

Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Feb 07, 2025 am 11:57 AM

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Apr 05, 2025 am 12:04 AM

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

See all articles