1. 程式人生 > >微信小程式呼叫支付介面支付

微信小程式呼叫支付介面支付

我前段時間做微信支付,遇到了很多坑,網上也沒有講解的特備明白的,通過借鑑各路人才的經驗,最後也完成了,網上有很多講解,我在這隻講一些注意點和解決的方法。我就講講我從完全懵到完成的過程吧。

在微信提供的介面文件中提供了一個微信支付介面,應該是直接呼叫這個介面就可以發起微信支付

文件路徑:https://developers.weixin.qq.com/miniprogram/dev/api/api-pay.html#wxrequestpaymentobject

但是,當開始信心滿滿的去看所需引數時,懵逼了,這些引數是什麼

在這些引數中最難理解和獲取的就是這兩個了,仔細研究後發現,package這個引數的獲取要呼叫微信提供的另一個介面,統一下單介面。原來在微信中支付需要先進行一下預下單。這裡的時間戳使用的是秒值

不是毫秒值

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


這個介面就需要後臺通過http請求來調了


而在這些引數中,有兩個引數很眼熟,在第一步發起微信請求時也有這兩個引數,後發現這裡的隨機字串就是調起支付時用到的隨機字串,而且是必須一致,那麼簽名呢,要是也認為一樣就完全調溝裡了,這裡的簽名我稱為一次簽名,因為支付的時候要進行第二次簽名。簽名生成算命有講解,多讀幾遍就明白了,我建議讀個幾十遍。

把這些必填的引數都準備好

很重要的是你要首先有個店鋪,就有商戶號了

訂單號必須唯一哦,通知地址就是當支付成功後微信會回撥這個地址,在這裡你可以做一些事,比如修改訂單狀態什麼的。

然後就是簽名生成,這個很重要:把需要的引數都放到一個map中,然後對這些引數進行排序,然後把商品key拼接到後面進行MD5加密就生成簽名了,我還是建議仔細看看簽名生成演算法,不要想太複雜,就是排序,拼接,加密三步完成。

最後就是準備引數傳輸了,這裡的引數傳輸是以xml的方式傳輸,下面就是傳輸的資料,其實就是一個大的字串,

你可以這樣

String s =“<xml>”

    +"<appid>wxdxxxxxxxxx</appid>"

    +"<mch_id>10000100</mch_id>"

    +"<nonce_str>24jtlk2j3ltjl2kjlkt3j</nonce_str>"

    +"<sign>432l4j5j4325l23k4j5lj34</sign>"

    +"</xml>"


我就意思一下了,大家懂就行,其實就是一個字串,完全可以通過遍歷引數map來自己拼接的。

然後就是把這個大字串傳過去,以上沒問題的話就會返回一個字串的xml,格式型別咱們拼接的引數。


從中取出我們需要的東西,最重要的應該就是這個,預下單id,這就是之前咱們需要的package

使用時是這樣的:package='prepay_id=201411109120471241k1241240124bk1k24'

然後就是二次簽名了,簽名生成順序和第一次是一樣的,主要要確定需要哪些引數。


然後把這些引數返回給前臺使用,取出來放進去就行了。


到這裡前端呼叫一下就發起支付了。

有什麼問題歡迎提問

相關推薦

程式呼叫支付介面支付

我前段時間做微信支付,遇到了很多坑,網上也沒有講解的特備明白的,通過借鑑各路人才的經驗,最後也完成了,網上有很多講解,我在這隻講一些注意點和解決的方法。我就講講我從完全懵到完成的過程吧。在微信提供的介面文件中提供了一個微信支付介面,應該是直接呼叫這個介面就可以發起微信支付文件

java程式呼叫支付介面

簡介:微信小程式支付這裡的坑還是有的,所以提醒各位在編寫的一定要注意!!! 1.首先呢,你需要準備openid,appid,還有申請微信支付後要設定一個32位的金鑰,需要先生成一個sign,得到prepay_id,然後再得到一個paySign,總之就是很墨跡,

程式呼叫支付

1,首先我們先縷清支付的整個流程,詳見https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_4&index=3,第一步在自己的伺服器上吊起微信支付,獲取預支付訂單id,第二步根據獲取得APPID、隨機數、預支付訂單prepay

程式程式呼叫【統一下單】、【支付】、【支付回撥】api並處理請求

/* 小程式報名,生成訂單 */ public function make_order(){ if(IS_POST){ $data['openid'] = I('POST.openid'); $data_

程式呼叫qq音樂API介面

2018年11月14日 15:23:10 LC_cat 閱讀數:8 標籤: 小程式

程式+java後臺實現支付(java操作)

支付,在微信小程式上面稱為當一個使用者使用該小程式,當進入到支付環節,我們需要呼叫微信支付介面過程,進行一系列的操作,並記錄下來。 微信小程式與java介面實現支付操作,大致思路如下: 1.微信小程式呼叫Java後臺方法獲取引數, 2.java 後臺設定引數等並

程式——簡單的介面設定

微信小程式開發準備 第一步:申請小程式賬號(微信公眾平臺) 第二步:下載微信開發者工具(微信公眾平臺點選文件、小程式開發、下載)  開發語言 javascript、html等 基本語法:  1.view標籤相當於div:

程式通過api介面將json資料展現到程式示例

實現知乎客戶端的一個重要知識前提就是,要知道怎麼通過知乎新聞的介面,來把資料展示到微信小程式端上。  那麼我們這一就先學習一下,如何將介面獲取到的資料展示到微信小程式上。  1.用到的知識點 <1> wx.request 請求介面資源(微信小程式api中的發

程式我的介面

前言 感謝! 承蒙關照~ 微信小程式我的介面 介面效果: 介面結構: 小程式程式碼: 我們先看me.json程式碼 { "navigationBarTitleText": "個人中心" } me.wxml程式碼 <view class="bg"> <vi

程式通過api介面將json資料展現

輪播圖 <view> <swiper indicator-dots="{{indicatorDots}}" autoplay="{{autoplay}}" class="banners" interval="{{interval}}" duration="{{durat

程式計算器簡單介面例項

閒著無聊自己搭建了一個計算器的簡單介面 index.wxml <view class='content' > <view class='screen'> 0 </

程式授權登入介面

1.首先接收前端傳過來的code 2.帶上appid,secret以及code去請求微信,獲取openid,那倒openid就可以獲取使用者的資訊了 獲取到openid,將openid返回給前端,前

程式--呼叫外界API

1.注意使用this.setData({})方法時this的作用域問題,如果this外界有function說明this的作用域已經不是本頁面,此時在方法外,使用 var that = this ,將this的值賦給一個變數。2.輪播圖的使用方法<swiper indic

程式呼叫攝像頭,實現圖片壓縮上傳

這篇文章主要為大家詳細介紹了微信小程式實現圖片壓縮功能,具有一定的參考價值,感興趣的小夥伴們可以參考一下,下面直接上程式碼 先是wxml: <view bindtap='takePictures'>選擇圖片</view> <canv

程式wx.request介面封裝

//app.js App({ /** * @name 請求資料 * @param {string} url 請求地址 * @param {object} params 引數 * @param {funct

程式呼叫掃一掃

//獲取應用例項 var app = getApp()Page({ data: { show: "", }, onLoad: function () { console.log('o

程式程式連線本地介面

最近的一個專案就是微信小程式 第一次接觸微信開發者工具,並進行小程式的後端開發, 於是想看一下小程式如何請求本地的後臺服務介面 wx.request({ url: 'http://localho

程式支付統一下單介面

微信小程式——支付 1.通過code獲取openId code:使用者登入憑證(有效期五分鐘)。開發者需要在開發者伺服器後臺呼叫 api,使用 code 換取 openid 和 session_key 等資訊 openid: 使用者唯一標識 session_key: 會

程式支付流程,非同步回撥及訊息模板呼叫(php原始碼)

首先還是老樣子把流程圖給大家發一下 商戶系統和微信支付系統主要互動: 1、小程式內呼叫登入介面,獲取到使用者的openid,api參見公共api【小程式登入API】 2、商戶server呼叫支付統一下單,api參見公共api【統一下單API】 3、商戶server呼叫再次簽

程式快速移植支付程式

 移植背景: 1. 支付寶小程式開發文件只瞭解了大致框架,跑了demo,具體Api、元件沒太多瞭解; 2. 已有微信小程式,移植支付寶小程式做預研(主要針對授權登入、支付等功能)。 3. 移植的微信小程式屬小型專案,頁面8個,元件兩個。首頁功能性較強,集成了主要的業務處理邏輯,涉及登