需求:說明坑
簽名校驗通過時還是提示簽名錯誤, 可能時候商戶號key配置的問題了, 重置一下key, 你可以繼續使用原來的key來重置
需要的id和key
wpc = 複製**
流程簡介
那麼開發思路便是一步步回朔了.
1. 獲取code
$('#buy').click(function() )複製**
2. 獲取openid
@classmethod
def getopenid(cls, kwargs):
param =
# openid = json.loads(resp.text)['openid']
return resp.text複製**
簽名演算法
@classmethod
def getsign(cls, kwargs):
# 計算簽名
keys, paras = sorted(kwargs),
stringa = '&'.join(paras)
stringsigntemp = stringa + '&key=' + wpc['key']
sign = md5(stringsigntemp).upper()
return sign複製**
md5函式
import hashlib
# 獲取md5
def md5(str):
md5 = hashlib.md5()
md5.update(str.encode('utf-8'))
return md5.hexdigest()複製**
引數轉xml
@classmethod
def getxml(cls, kwargs):
kwargs['sign'] = utility.getsign(kwargs)
# 生成xml
xml = ''
for key, value in kwargs.items():
xml += '>'.format(key, value)
xml = ''.format(xml)
# print(xml)
return xml複製**
統一下單**
code = self.post.get('code')
openidresp = utility.getopenid()
openid = json.loads(openidresp).get('openid')
unifieorderrequest = )
msg = resp.text.encode('iso-8859-1').decode('utf-8')
xmlresp = xmltodict.parse(msg)
prepay_id = ''
if xmlresp['xml']['return_code'] == 'success':
if xmlresp['xml']['result_code'] == 'success':
prepay_id = xmlresp['xml']['prepay_id']
timestamp = str(int(time.time()))
data = ).then(function(resp) , function(resp) else else else if (document.attachevent) else else , function(resp) catch (e) 複製**
4. 訂單查詢
訂單查詢 是為了確認我們的支付是成功的
orderid = self.get.get('orderid')
orderquery = )
msg = resp.text.encode('iso-8859-1').decode('utf-8')
xmlresp = xmltodict.parse(msg)
print(xmlresp)
orderpaid = 0
if xmlresp['xml']['return_code'] == 'success':
if xmlresp['xml']['result_code'] == 'success':
if xmlresp['xml']['trade_state'] == 'success':
orderpaid = 1
else:
msg = xmlresp['xml']['trade_state_desc']
return jsonresponse(self, '001', msg=smg)
else:
msg = xmlresp['xml']['err_code_des']
return jsonresponse(self, '001', msg=msg)
else:
msg = xmlresp['xml']['return_msg']
return jsonresponse(self, '001', msg=msg)複製**
官方demo
微信支付 微信JSAPI支付
pay.php baby extend wx pay.php namespace wx class pay 通過redirecturi獲取授權資訊 return mixed public function getauthinfo 通過code換取網頁授權資訊 res this curlgetreq ...
微信支付JSAPI支付
這裡是報錯 下面是前端拿到資料後的一些操作 var jsapi ajax success function str function jsapicall function callpay else if document.attachevent else 把乙個官方sdk整合到thinkphp框架中...
微信支付JSAPI支付
1.介紹 2.商戶號配置 開發jsapi支付時,在統一下單介面中要求必傳使用者openid,而獲取openid則需要您在公眾平台設定獲取openid的網域名稱 只有被設定過的網域名稱才是乙個有效的獲取openid的網域名稱,否則將獲取失敗。由於我們公司只需要獲取code調取後台介面換取openid,...