掃二維碼領紅包系統軟件開發流程


開發前准備

1.已認證的服務號

2.開通微信支付功能。

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

 

 

圖 2

3.微信支付開發文檔:開發系統找羅經理:189”2232“7019 微電

https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_4&index=3

開始開發

1.開發思路:筆者利用mindject整理了程序結構及調用關系。

2.接口:POST方式,帶XML參數。

https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack;

3.參數拆分:因發送紅包的參數非常多,如圖3所示,逐一介紹。

圖 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數據。

4.組裝XML數組,其方法如圖11所示。

圖 11

5.發起POST請求。涉及金錢,所以要使用證書,證書對於每個商戶是唯一的,必須妥善保管,方法如圖12所示。

圖 12

全文總結

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM