简单的聊一聊微信支付的那些事
生活随笔
收集整理的這篇文章主要介紹了
简单的聊一聊微信支付的那些事
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
前往官網(wǎng)注冊(cè)賬號(hào)創(chuàng)建應(yīng)用
- 微信商戶平臺(tái)商家查看一些交易記錄和余額提現(xiàn)
- 微信開放平臺(tái)給開發(fā)者提供的網(wǎng)站
- 需要使用微信的支付功能肯定是要先去他的微信開放平臺(tái)申請(qǐng)賬號(hào)的,這些步驟這里就不講了。
- 注冊(cè)成功之后會(huì)收到微信發(fā)的郵件,前往商戶平臺(tái)進(jìn)行密鑰設(shè)置之類的。
- 有了賬號(hào)那就可以創(chuàng)建一個(gè)應(yīng)用,來獲取我們的AppID同時(shí)要開通微信支付能力,如下圖:
填寫開發(fā)信息 這里需要應(yīng)用的簽名和包名;包名就只需要復(fù)制我們build.gradle中的applicationId即可,簽名就需要我們通過簽名工具去獲取了,簽名生成工具下載。
瞅一眼官方給出整個(gè)的支付流程
現(xiàn)在就只需要生成一個(gè)訂單(一般都是在服務(wù)端做的操作)然后發(fā)起微信支付請(qǐng)求就可以實(shí)現(xiàn)微信支付了。
構(gòu)造訂單信息
統(tǒng)一下單:請(qǐng)求微信的接口生成支付訂單,請(qǐng)求成功之后微信會(huì)返回我們發(fā)起微信請(qǐng)求所需要的參數(shù)
下單接口鏈接
URL地址:https://api.mch.weixin.qq.com/pay/unifiedorder
請(qǐng)求的參數(shù)點(diǎn)擊這里即可
現(xiàn)在就可以來集成微信支付的SDK了安卓接入指南
- 在build.gradle文件中,添加如下依賴即可
- 在Manifest.xml中添加必要的權(quán)限支持:
接下來就是調(diào)起App支付了調(diào)起支付界面
客戶端重要的代碼
//將app注冊(cè)到微信上 IWXAPI api = WXAPIFactory.createWXAPI(this,"APP_ID"); api.registerApp("APP_ID");//創(chuàng)建支付對(duì)象信息 PayReq req = new PayReq(); req.appId = "APP_ID"; //使用開放平臺(tái)的賬戶登錄商戶平臺(tái) 進(jìn)入賬戶中心->商戶信息 即可看到 req.partnerId = "商戶號(hào)"; //微信返回的支付交易會(huì)話ID req.prepayId = "wx20170923578829050ad2bea30542412476"; //隨機(jī)字符串,不長(zhǎng)于32位。 req.nonceStr = String.valueOf(System.currentTimeMillis()); //需要轉(zhuǎn)換成秒(10位數(shù)字) req.timeStamp = System.currentTimeMillis() / 1000 + ""; req.packageValue = "Sign=WXPay"; //根據(jù)官網(wǎng)給出的簽名算法生成 req.sign = ""; //暫時(shí)不知道是干嘛的但是卻必須填,這里復(fù)制的是Demo中的 req.extData = "app data"; //在支付之前,如果應(yīng)用沒有注冊(cè)到微信,應(yīng)該先調(diào)用api.registerApp將應(yīng)用注冊(cè)到微信 api.sendReq(req);接收支付結(jié)果使用官方給出的WXPayEntryActivity.java就可以了,記得注冊(cè)這個(gè)Activity。
/*** 接收微信支付結(jié)果*/ public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {private IWXAPI api;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);api = WXAPIFactory.createWXAPI(this, PayInfoMsg.CX_APP_ID);api.handleIntent(getIntent(), this);}@Overrideprotected void onNewIntent(Intent intent) {super.onNewIntent(intent);setIntent(intent);api.handleIntent(intent, this);}@Overridepublic void onReq(BaseReq req) {}@Overridepublic void onResp(BaseResp resp) {if (resp.errCode == BaseResp.ErrCode.ERR_USER_CANCEL) {ToastUtils.showShortSafe("已取消支付");} else if (resp.errCode == BaseResp.ErrCode.ERR_OK) {ToastUtils.showShortSafe("支付成功");}Log.e("微信支付, errCode = " + resp.errCode);finish();} }總結(jié):總的來說重要的操作都在服務(wù)端生成訂單這一塊,然后拿到微信返回的一些數(shù)據(jù)來調(diào)起微信App支付;所以對(duì)于客戶端這邊基本沒啥操作只需要發(fā)起一個(gè)請(qǐng)求就可以了再處理下支付的結(jié)果即可。
官方支付Demo下載
總結(jié)
以上是生活随笔為你收集整理的简单的聊一聊微信支付的那些事的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么GEP算法中个体变异的概率要小于预
- 下一篇: 气缸标识上vr什么意思_发动机结构代号中