微信支付 JSAPI方式

2021-09-10 04:35:15 字數 3776 閱讀 1384

前言

因為老是用到還需要回顧以前的**,所以寫篇文章記錄一下,同時也希望可以幫助到正好有需要的朋友。

準備

配置網域名稱      http://網域名稱/mp_verify_q0u1chj03asdacac.txt

登入商戶號獲得商戶號mchid,配置商戶號

商戶號-賬號中心-安全中心-設定apikey

商戶號-產品中心-開通jsapi支付

商戶號-產品中心-開發配置,設定jsapi支付授權目錄

開發

使用者同意授權獲取code

通過code換取網頁授權access_token,獲得openid,直接貼**

/**

* * @param secret

* @param code

* @return

*/ oauthinfo oauthinfo = null;

//請求o_auth_openid_url,返回結果是json格式

// 如果請求成功

if (!commonutil.isempty(jsonobject)) catch (jsonexception e)

} return oauthinfo;

}

請求上圖**中的o_auth_openid_url 返回結果格式,oauthinfo 為自己寫的實體類,封裝了這幾個屬性方便自己用。

* *

* @param secret

* @param code

* @return

*/ wxuserinfo wxuserinfo = null;

string access_token = jsonobject.getstring("access_token");

string openid = jsonobject.getstring("openid");

if (commonutil.isempty(access_token) || commonutil.isempty(openid))

string getwxuserinfourl = "" + access_token + "&openid=" + openid + "&lang=zh_cn";

try

} catch (exception e)

return wxuserinfo;

} 請求上圖**中的getwxuserinfourl 返回格式如下,wxuserinfo 為自己定義的實體類,封裝了下面的引數方便自己呼叫。

public final static string wx_base_payurl = "";

hashmappayparams = new hashmap();

//getaccess_token方法在第一步獲取code中

if (commonutil.isempty(authinfo) || commonutil.isempty(authinfo.getopenid()))

system.out.println(authinfo.tostring());

//商戶號id

payparams.put("mch_id","mchid");

//隨機字串

payparams.put("nonce_str","c48f31602c2d8a525de00fa01cb91554");

//標題

payparams.put("body", "夢幻西遊點卡充值50");

//你自己的訂單號

payparams.put("out_trade_no","wx20190123110332917098e88");

//商品**,單位分

payparams.put("total_fee", 5000);

//使用者openid

payparams.put("openid", authinfo.getopenid());

payparams.put("spbill_create_ip","服務端ip");

//支付方式,固定值

payparams.put("trade_type", "jsapi");

//夢幻西遊點卡充值 對應的商品編號

* 組裝簽名串

* * @param params

* @return

*/public static string getsign(hashmapparams, string key)

string result = basestring.tostring();

if (result.contains("&"))

result = result + "&key=" + key;

// system.out.println("result---" + result);

string sign = md5.ge***5string(result).touppercase();

// system.out.println("sign---" + sign);

return sign;

}/**

* 建立需要傳送的post資料

* * @param params

* @param sign

* @return

*/public static string createpostxml(hashmapparams, string sign)

return basestring.tostring();

}/**

* 將xml轉換為map物件

* * @param xml

* @return

*/public static mappar***mltomap(string xml)

} catch (documentexception e)

return result;

}結尾

微信支付 微信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,...