微信支付開發(fā)者文檔介接入

好了,多余的話不過多解釋,下面咋們大家一起來看看微信的SDK接入文檔




如果哥們急的話請調(diào)到:http://www.reibang.com/p/1015841aae48(直接下載Demo填寫正確信息直接調(diào)起支付)



更新第二版Demo:http://www.reibang.com/p/1015841aae48





排版2:http://www.reibang.com/p/c417ce674eb3

可能介入的不是太好,重在學習,學習哈,跟著我的思路來,一定要有耐心,微信坑很多,先看下參數(shù)(重要)

給一個獲取IP的地址: http://pv.sohu.com/cityjson?ie=utf-8

測試微信數(shù)據(jù)接口 : https://pay.weixin.qq.com/wiki/tools/signverify/

微信參數(shù)

Demo:鏈接: https://pan.baidu.com/s/1eS1tyWM 密碼: 3xih

WRNING!!!!

在類:WX_DATA_XINHAO_HAN設置微信信息

在類AliPay_XINHAO_HAN_DATA設置支付寶信息


appid: 你的APPID

mch_id : 商戶號

nonce_str : 生成的隨機字符串

body : 商品詳情

out_trade_no : 時間

total_fee : 金額

spbill_create_ip : IP地址

notify_url : 回調(diào)成功后調(diào)用的地址

trade_type : 支持類型(寫死 "APP")

步驟1:你先去注冊微信官網(wǎng)的一些信息然后獲取以下這3個東西

1.APPID 2.你的商戶號 3.秘鑰

就這幾個東西

信息


基礎信息 nonce_str : 生成的隨機字符串

隨機字符串生成:

一般都是固定的,自己也懶得寫所以找了一個,如果要自己寫的話給你提供一些思路

首先把 A-Z 0-9 寫到一個String數(shù)組中,然后通過Random取索引 for 32次即可

我們看下網(wǎng)上的吧

MD5

MD5方法

代碼復制

排版真難受,這玩意連個代碼引用都沒有??????


這個使用方法是這樣的


MD5的使用方法

代碼復制

```

//生成隨機字符串

public staticStringgenNonceStr() {

Random random =newRandom();

returnMD5.getMessageDigest(String.valueOf(random.nextInt(10000)).getBytes());

}

```

-----------------------

```

public final staticStringgetMessageDigest(byte[] buffer) {

charhexDigits[] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};

try{

MessageDigest mdTemp = MessageDigest.getInstance("MD5");

mdTemp.update(buffer);

byte[] md = mdTemp.digest();

intj = md.length;

charstr[] =new char[j *2];

intk =0;

for(inti =0;i < j;i++) {

bytebyte0 = md[i];

str[k++] = hexDigits[byte0 >>>4&0xf];

str[k++] = hexDigits[byte0 &0xf];

}

return newString(str);

}catch(Exception e) {

return null;

}

}

```

基礎信息 out_trade_no : 時間

這個應該都會把,就是使用JAVA獲取你自己當前的時間格式為

比如:2017年7月17日就寫成2017717

基礎信息 spbill_create_ip : IP地址


使用網(wǎng)路訪問:http://pv.sohu.com/cityjson?ie=utf-8

會給你返回 var returnCitySN = {"cip": "219.144.202.177", "cid": "610100", "cname": "陜西省西安市"};

你自己截取一下就OK了

基礎信息 notify_url : 回調(diào)成功后調(diào)用的地址


后臺暫時沒有提供接口的話就隨便寫


基礎信息 mch_id : 商戶號?

你的商戶號

基礎信息 body : 商品詳情

隨意寫

基礎信息 total_fee : 金額

隨意寫

好了基本的功能數(shù)據(jù)都介紹完了

導入微信的Sdk

Android Studio適用

--------------------------------

compile'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'


把剛才的幾個參數(shù)生成一下sign



簽名生成


到這里了,你會問OrederSendInfo info是個什么鬼??????

記住:WX_DATA_XINHAO_HAN.API_KEY 是你自己的秘鑰


別急老規(guī)矩先復制代碼

```

//生成預支付隨機簽名

public staticStringgenSign(OrederSendInfo info) {

StringBuffer sb =newStringBuffer(info.toString());

if(WX_DATA_XINHAO_HAN.API_KEY.equals("")) {

Toast.makeText(UIUtils.getContext(),"APP_ID為空",Toast.LENGTH_LONG).show();

}

//拼接密鑰

sb.append("key=");

sb.append(WX_DATA_XINHAO_HAN.API_KEY);

String appSign = MD5.getMessageDigest(sb.toString().getBytes());

Log.e("Sign-------------","genSign: "+ appSign.toUpperCase());

returnappSign.toUpperCase();

}

```


好了現(xiàn)在給你解釋一下這個是個什么鬼OrederSendInfo info方法參數(shù)

這個其實就是一個Bean

看代碼

```

public classOrederSendInfo {

privateStringappid;

privateStringmch_id;

privateStringnonce_str;

privateStringbody;

privateStringout_trade_no;

privateStringtotal_fee;

privateStringspbill_create_ip;

privateStringnotify_url;

privateStringtrade_type;

privateStringsign;

publicOrederSendInfo(String appid,String mch_id,String nonce_str,String body,String out_trade_no,String total_fee,String spbill_create_ip,String notify_url,String trade_type) {

this.appid= appid;

this.mch_id= mch_id;

this.nonce_str= nonce_str;

this.body= body;

this.out_trade_no= out_trade_no;

this.total_fee= total_fee;

this.spbill_create_ip= spbill_create_ip;

this.notify_url= notify_url;

this.trade_type= trade_type;

}

publicStringgetAppid() {

returnappid;

}

public voidsetAppid(String appid) {

this.appid= appid;

}

publicStringgetMch_id() {

returnmch_id;

}

public voidsetMch_id(String mch_id) {

this.mch_id= mch_id;

}

publicStringgetNonce_str() {

returnnonce_str;

}

public voidsetNonce_str(String nonce_str) {

this.nonce_str= nonce_str;

}

publicStringgetBody() {

returnbody;

}

public voidsetBody(String body) {

this.body= body;

}

publicStringgetOut_trade_no() {

returnout_trade_no;

}

public voidsetOut_trade_no(String out_trade_no) {

this.out_trade_no= out_trade_no;

}

publicStringgetTotal_fee() {

returntotal_fee;

}

public voidsetTotal_fee(String total_fee) {

this.total_fee= total_fee;

}

publicStringgetSpbill_create_ip() {

returnspbill_create_ip;

}

public voidsetSpbill_create_ip(String spbill_create_ip) {

this.spbill_create_ip= spbill_create_ip;

}

publicStringgetNotify_url() {

returnnotify_url;

}

public voidsetNotify_url(String notify_url) {

this.notify_url= notify_url;

}

publicStringgetTrade_type() {

returntrade_type;

}

public voidsetTrade_type(String trade_type) {

this.trade_type= trade_type;

}

publicStringgetSign() {

returnsign;

}

public voidsetSign(String sign) {

this.sign= sign;

}

//注意排序規(guī)則ASCII排序(一般按照A-Z,a-z)就行

@Override

publicStringtoString() {

return"appid="+appid+'&'+

"body="+body+'&'+

"mch_id="+mch_id+'&'+

"nonce_str="+nonce_str+'&'+

"notify_url="+notify_url+'&'+

"out_trade_no="+out_trade_no+'&'+

"spbill_create_ip="+spbill_create_ip+'&'+

"total_fee="+total_fee+'&'+

"trade_type="+trade_type+'&';

}

}

```


//記住在你調(diào)用的時候一定要在這個Bean里邊賦值,明白不,然后傳遞給sign的方法簽名就生成成功了

簽名生成完成了




開始上傳數(shù)據(jù)獲取預支付接口


這里邊有個XStream你可能找不到

在Studio里邊加入這段

```

compile ('com.thoughtworks.xstream:xstream:1.4.7') {

excludegroup:'xmlpull',module:'xmlpull'

}

```

重新編譯一下


代碼復制

```

public static voidUnfiedOrder(OrederSendInfo orederSendInfo, finalListerner listerner) {

//生成sign簽名

String sign = WXpayUtils.genSign(orederSendInfo);

//生成所需參數(shù)若治,為xml格式

orederSendInfo.setSign(sign.toUpperCase());

XStream xstream =newXStream();

xstream.alias("xml",OrederSendInfo.class);

finalString xml = xstream.toXML(orederSendInfo).replaceAll("__","_");

Log.e("xml---------------","UnfiedOrder: "+ xml);

//調(diào)起接口斗埂,獲取預支付ID

OkHttpUtils.ResultCallback resultCallback =newOkHttpUtils.ResultCallback() {

@Override

public voidonSuccess(String response) {

Log.e("返回的數(shù)據(jù)","onSuccess: "+ response);

String data = response;

data = data.replaceAll("","");

listerner.Success(data);

}

@Override

public voidonFailure(Exception e) {

listerner.Faiulre(e.toString());

}

};

try{

OkHttpUtils.post(WX_DATA_XINHAO_HAN.UNIFIED_ORDER,resultCallback, newString(xml.getBytes("UTF-8"),"ISO8859-1"));

}catch(UnsupportedEncodingException e) {

e.printStackTrace();

}

}

```


至于里邊的Listnener

在這里


接口

代碼復制

```

public interfaceListerner {

voidSuccess(String data);

voidFaiulre(String data);

}

```

拿到微信端的數(shù)據(jù)之后,直接掉起微信支付


調(diào)起微信支付

開始填充數(shù)據(jù)


填充數(shù)據(jù)




特別感謝:掘墓人

博客地址:http://www.reibang.com/p/9a3127cfda4d

我通過他所給的DEMO集成出了一套及簡單的Demo


下載地址: 鏈接: https://pan.baidu.com/s/1c2zURjq 密碼: jpr5


使用方法:你的這幾個部位可能會報錯注意,注意!!!!!!!!!!


WXActivity


因為微信很吊,你必須按照人家的來,直接在我那個工具包下創(chuàng)建一個Activity名字叫WXEntryActivity


你在你自己創(chuàng)建的Activity-->WXEntryActivity的這個方法下


直接復制這段代碼

```

WxMain.setStringOnListener(WXEntryActivity.this);

//如果是支付

WxMain.WXMessage wxMessage;

if(baseResp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {

intcode = baseResp.errCode;

switch(code) {

case0:

if(wxMessage!=null)

wxMessage.message("支付成功",0,"0.0");

//支付成功

break;

case-1:

if(wxMessage!=null)

wxMessage.message("支付失敗",-1,"0.0");

//支付失敗

finish();

break;

case-2:

if(wxMessage!=null)

wxMessage.message("支付取消",-2,"0.0");

//支付取消

finish();

break;

default:

if(wxMessage!=null)

wxMessage.message("支付失敗",-3,"0.0");

//支付失敗

setResult(RESULT_OK);

finish();

break;

}

return;

}

```


使用是這樣的:


使用

第一個為你的商品描述,第二個為金額,回調(diào)只有0是成功的

0 成功

-1 支付失敗

-2 支付取消

-3 支付失敗

使用的話直接復制進去就可以了

總而言之微信相比之下還要比支付寶麻煩

說白了就是加密數(shù)據(jù)發(fā)送再給你解析一下數(shù)據(jù)然后在調(diào)起支付,大致就這兩個步驟

工具可能會用到的東西

compile'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'

compile ('com.thoughtworks.xstream:xstream:1.4.7') {

excludegroup:'xmlpull',module:'xmlpull'

}

compile'com.zhy:okhttputils:2.4.1'


第二個如果你自己想拼的話就不用了,工具里邊是XML的解析器生成的XML

有時間會給大家講解一些OKHttp底層RXJAVA ,Kotlin,Android源碼,

一起加油,0.0哈哈.


0.0
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市惠奸,隨后出現(xiàn)的幾起案子飘痛,更是在濱河造成了極大的恐慌宇整,老刑警劉巖晌坤,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異丈牢,居然都是意外死亡祭钉,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進店門己沛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來慌核,“玉大人,你說我怎么就攤上這事申尼】遄浚” “怎么了?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵师幕,是天一觀的道長粟按。 經(jīng)常有香客問我,道長们衙,這世上最難降的妖魔是什么钾怔? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任碱呼,我火速辦了婚禮蒙挑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘愚臀。我一直安慰自己忆蚀,他們只是感情好,可當我...
    茶點故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著馋袜,像睡著了一般男旗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上欣鳖,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天察皇,我揣著相機與錄音,去河邊找鬼泽台。 笑死什荣,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的怀酷。 我是一名探鬼主播稻爬,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蜕依!你這毒婦竟也來了桅锄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤样眠,失蹤者是張志新(化名)和其女友劉穎友瘤,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吹缔,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡商佑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了厢塘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茶没。...
    茶點故事閱讀 40,769評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖晚碾,靈堂內(nèi)的尸體忽然破棺而出抓半,到底是詐尸還是另有隱情,我是刑警寧澤格嘁,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布笛求,位于F島的核電站,受9級特大地震影響糕簿,放射性物質(zhì)發(fā)生泄漏探入。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一懂诗、第九天 我趴在偏房一處隱蔽的房頂上張望蜂嗽。 院中可真熱鬧,春花似錦殃恒、人聲如沸植旧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽病附。三九已至问窃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間完沪,已是汗流浹背域庇。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留覆积,地道東北人较剃。 一個月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像技健,于是被迫代替她去往敵國和親写穴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,781評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 好了,多余的話不過多解釋,下面咋們大家一起來看看微信的SDK接入文檔可能介入的不是太好,重在學習,學習哈,跟著我的...
    XINHAO_HAN閱讀 1,954評論 0 0
  • 引言 秋高氣爽,天氣轉(zhuǎn)涼欣孤,正是學習工作做的好時候馋没。(~ ̄▽ ̄)~~(~ ̄▽ ̄)~ 我是個phper最近在寫微信支付...
    恩就是這個名閱讀 7,977評論 2 15
  • 今天二月二,俗稱龍?zhí)ь^降传。不知是否是龍王發(fā)威篷朵,昨天一股春天景象的大晴天轉(zhuǎn)眼變成了春雨紛紛。這種天氣最容易在家里無所事...
    小米火燒nalakuvara閱讀 293評論 0 1
  • 這里說的婆排,是辯論声旺,而不是辯論賽。 不是那種唇槍舌劍大秀精妙語句的比賽段只,不是那種一心要把別人打倒證明自己正確的心態(tài)腮猖,...
    Shirley千墨閱讀 2,213評論 0 0
  • 到了廣州,又有了夏天的感覺赞枕,和同事聊了聊澈缺,似又離重慶近了些。原本上周末打算寫下這篇文字炕婶,奈何沒時間姐赡,只得一拖再拖,...
    大鵬_29wp閱讀 180評論 0 0