聯系我們 - 廣告服務 - 聯系電話:
您的當前位置: > 關注 > > 正文

redPacketPay.php:掃二維碼領紅包系統軟件開發流程

來源:CSDN 時間:2023-03-22 10:44:50

開發前準備

開啟“微信支付——產品中心——現金紅包”此項功能,如圖2所示


【資料圖】

圖 2

開始開發

圖 3

1)nonce_str:隨機字符串,用來生成簽名。隨機字符串簽名可以通用,26個字母,10個數字,字符串最長為36。隨機字符串程序如下,因為程序較為簡單,所以寫在redPacketPay.php主程序的類中,用$this->調用。

圖 4

2)sign:簽名。簽名的獲取較為復雜所以并沒有在redPacketPay.php中拼裝。

(簽名算法:https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=4_3)

分析簽名算法,它可以拆分為:

a)在支付平臺中設置密鑰,密鑰需保密。

圖 5

b)檢查其他參數是否已生產。

圖 6

c)對參數按照 key=value 的格式,并按照參數名 ASCII 字典序排序,并拼接為字符串,如圖7所示。其中ksort()函數作用為ASCII 字典序排序;formatQueryParaMap()函數作用為拼接為字符串,如圖8所示。

圖 7

圖 8

d)用MD5加密算法獲得簽名,如圖9所示。

圖 9

3)mch_billno:訂單編號=商戶號+YYMMDDHHIISS+RANDOM(1000,9999)把時間補全HHIISS有六位,再來一個隨機四位數即可。

4)mch_id:商戶號,注冊了支付平臺就有的

5)wxappid:appID

6)send_name:發送方名稱

7)nick_name:如果做為第三方支付開發方,幫商戶開發時候,此字段指開放方(非必須)

8)re_openid:用戶的openid,傳參的時候直接用$object->FromUserName

9)total_amount:付款金額,分為單位,最小為100分,即1元

10)total_num:發紅包總數,普通紅包1,裂變紅包可以為其他值

11)wishing:紅包祝福語

12)client_ip:新浪云的ip是動態的,所以要動態獲取,獲取方式如圖10所示。

圖 10

13)act_name:活動信息

14)remark:備注信息,

以上參數均為必須,完成參數設置之后,需要將參數拼裝為XML數據。

圖 11

圖 12

全文總結

當執行完POST請求后,即完成發紅包動作。微信原生紅包的開發其實并不復雜,只是涉及到較多的參數,需要運用較多的方法。建議利用筆者提供的“紅包思路”先梳理一下開發的流程,再結合源代碼進行開發。

轉載于:https://www.cnblogs.com/liming1/p/7874079.html

責任編輯:

標簽:

相關推薦:

精彩放送:

新聞聚焦
Top 岛国精品在线