日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

小程序 php 解析 prepay_id,微信小程序支付 (一、生成prepay_id) 2018-08-06

發布時間:2023/12/14 php 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 小程序 php 解析 prepay_id,微信小程序支付 (一、生成prepay_id) 2018-08-06 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先羅列一下各種可能要用的鏈接

微信公眾平臺:微信公眾平臺

https://mp.weixin.qq.com/

商戶平臺:商戶平臺

https://pay.weixin.qq.com/index.php/core/home/login

開發手冊 api 是:

https://pay.weixin.qq.com/wiki/doc/api/index.html

https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_1

生成XML的測試接口:測試接口

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

下面開始步驟

1 配置參數, 一個都不能少(這些都是必填的,還有其他選填的參數,也可以隨心情填寫)

appid? ? ? ? 此小程序的唯一標識 例如:wxed9dxxx6d6cxxx9e

body? ? ? ? 可以寫商品描述 例如:我是商品描述,用戶買了兩個饅頭

mch_id? ? 商戶id 需在 商戶平臺?查看(申請商戶平臺成功就會得到) 如: 149411***2

nonce_str? ? 隨機字符串(別帶小數點(沒考證 感覺)) 例如:76521019851170500000

notify_url? ? 成功后的通知地址 例如:https://baidu.top/callbackofpay

openid? ? ? ? 用戶的唯一標識 在用戶使用小程序的時候通過其 code 換取 openid

例如:?obxgc5CgBbgKDrvcxxxxxJ-xxxxx

out_trade_no????????商戶訂單號 例如:20180805740161 需要無重復

spbill_create_ip? ? 終端ip(服務器的ip)貌似 127.0.0.1 就行

total_fee? ? ? ? ? ? ? ? 此單的交易額度(錢 money) 例如:888 單位是 分錢。及8.88元錢 (注意是數值型,非字符型,除此之外其他的都是字符型)

trade_type? ? 小程序用 'JSAPI' 其他看api

2 將以上參數(必要參數一個不能少)按照 key 字典排序,進行拼接。

例如: appid=wxedxxx2xxx6c03e9e&body=我是商品描述,用戶買了兩個饅頭.&mch_id=149411***2&nonce_str=76521019851170500000 ......

3 在結尾加上 商戶的秘鑰?mch_key (需在商戶平臺配置 在:賬戶中心-->賬戶設置-->API安全-->API秘鑰 ,可以用 32位隨機碼生成器?生成)

+ "&key=" + mch_key

5 對拼接成的字符串,進行md5加密-->轉大寫 -->生成 簽名 sign

例如:?425F6561A654B366B5519F000CF2AE61

6 將以上參數拼成? xml

let _xmlUnifiedorder = `

${myObj.appid}

${myObj.body}

${myObj.mch_id}

${myObj.nonce_str}

${myObj.notify_url}

${myObj.openid}

${myObj.out_trade_no}

${myObj.spbill_create_ip}

${myObj.total_fee}

${myObj.trade_type}

${sign}

`;

7 攜帶參數 post 訪問??https://api.mch.weixin.qq.com/pay/unifiedorder 接口

如果正確 會成功得到 xml格式的??prepay_id ,如果簽名錯誤進行下面的錯誤查找。

~~:進行錯誤查找? 可以拿出參數在?測試接口?進行測試 ,無異??梢哉I?xml之后,如果還報錯。

試著 更改 商戶平臺的秘鑰 (詳細請看第 3 步)。貌似很多人都踩這個雷了? ...

// 字典排序 key1=xxx&key2=zzz 拼接成字符串

function joinToStr(_obj) {

let keyArr = [];

for (let key in _obj) {

keyArr.push(key);

}

keyArr = keyArr.sort();

console.log("keyArrSort--->", keyArr);

//? ? paySign = MD5(appId=wxd678efh567hg6787&nonceStr=5K8264ILTKCH16CQ2502SI8ZNMTM67VS&package=prepay_id=wx2017033010242291fcfe0db70013231072&signType=MD5&timeStamp=1490840662&key=qazwsxedcrfvtgbyhnujmikolp111111) = 22D9B4E54AB1950F51E0649E8810ACD6

// _str 是 paySign 中MD5 包裹的字符串部分

let _str = "";

let len = keyArr.length;

for (let i = 0; i < len; i++) {

if (i == len - 1) {

_str += (keyArr[i] + "=" + _obj[keyArr[i]]);

} else {

_str += (keyArr[i] + "=" + _obj[keyArr[i]] + "&");

}

}

return _str;

}

總結

以上是生活随笔為你收集整理的小程序 php 解析 prepay_id,微信小程序支付 (一、生成prepay_id) 2018-08-06的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。