![【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】微信公眾號(hào)開(kāi)發(fā)現(xiàn)金紅包的示例分析_第1頁(yè)](http://file4.renrendoc.com/view/2951b6d076db19593767c8884e39e9a3/2951b6d076db19593767c8884e39e9a31.gif)
![【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】微信公眾號(hào)開(kāi)發(fā)現(xiàn)金紅包的示例分析_第2頁(yè)](http://file4.renrendoc.com/view/2951b6d076db19593767c8884e39e9a3/2951b6d076db19593767c8884e39e9a32.gif)
![【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】微信公眾號(hào)開(kāi)發(fā)現(xiàn)金紅包的示例分析_第3頁(yè)](http://file4.renrendoc.com/view/2951b6d076db19593767c8884e39e9a3/2951b6d076db19593767c8884e39e9a33.gif)
![【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】微信公眾號(hào)開(kāi)發(fā)現(xiàn)金紅包的示例分析_第4頁(yè)](http://file4.renrendoc.com/view/2951b6d076db19593767c8884e39e9a3/2951b6d076db19593767c8884e39e9a34.gif)
![【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】微信公眾號(hào)開(kāi)發(fā)現(xiàn)金紅包的示例分析_第5頁(yè)](http://file4.renrendoc.com/view/2951b6d076db19593767c8884e39e9a3/2951b6d076db19593767c8884e39e9a35.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】微信公眾號(hào)開(kāi)發(fā)現(xiàn)金紅包的示例分析
/upload/information/20201208/260/9442.jpg準(zhǔn)備工作一、開(kāi)通現(xiàn)金紅包權(quán)限二、下載API證書/upload/information/20201208/260/9443.jpg/upload/information/20201208/260/9445.jpg歡迎使用微信支付!
微信支付API共四份(證書pkcs12格式、證書pem格式、證書密鑰pem格式、CA證書),為接口中強(qiáng)制要求時(shí)需攜帶的證書文件。
證書屬于敏感信息,請(qǐng)妥善保管不要泄露和被他人復(fù)制。
不同開(kāi)發(fā)語(yǔ)言下的證書格式不同,以下為說(shuō)明指引:
證書pkcs12格式(apiclient_cert.p12)
包含了私鑰信息的證書文件,為p12(pfx)格式,由微信支付簽發(fā)給您用來(lái)標(biāo)識(shí)和界定您的身份
部分安全性要求較高的API需要使用該證書來(lái)確認(rèn)您的調(diào)用身份
windows上可以直接雙擊導(dǎo)入系統(tǒng),導(dǎo)入過(guò)程中會(huì)提示輸入證書密碼,證書密碼默認(rèn)為您的商戶ID(如:10010000)
證書pem格式(apiclient_cert.pem)
從apiclient_cert.p12中導(dǎo)出證書部分的文件,為pem格式,請(qǐng)妥善保管不要泄漏和被他人復(fù)制
部分開(kāi)發(fā)語(yǔ)言和環(huán)境,不能直接使用p12文件,而需要使用pem,所以為了方便您使用,已為您直接提供
您也可以使用openssl命令來(lái)自己導(dǎo)出:openssl
pkcs12
-clcerts
-nokeys
-in
apiclient_cert.p12
-out
apiclient_cert.pem
證書密鑰pem格式(apiclient_key.pem)
從apiclient_cert.p12中導(dǎo)出密鑰部分的文件,為pem格式
部分開(kāi)發(fā)語(yǔ)言和環(huán)境,不能直接使用p12文件,而需要使用pem,所以為了方便您使用,已為您直接提供
您也可以使用openssl命令來(lái)自己導(dǎo)出:openssl
pkcs12
-nocerts
-in
apiclient_cert.p12
-out
apiclient_key.pem
CA證書(rootca.pem)
微信支付api服務(wù)器上也部署了證明微信支付身份的服務(wù)器證書,您在使用api進(jìn)行調(diào)用時(shí)也需要驗(yàn)證所調(diào)用服務(wù)器及域名的真實(shí)性
該文件為簽署微信支付證書的權(quán)威機(jī)構(gòu)的根證書,可以用來(lái)驗(yàn)證微信支付服務(wù)器證書的真實(shí)性
某些環(huán)境和工具已經(jīng)內(nèi)置了若干權(quán)威機(jī)構(gòu)的根證書,無(wú)需引用該證書也可以正常進(jìn)行驗(yàn)證,這里提供給您在未內(nèi)置所必須根證書的環(huán)境中載入使用三、充值/upload/information/20201208/260/9447.jpg四、獲取openid五、相關(guān)參數(shù)設(shè)置/upload/information/20201208/260/9450.jpg現(xiàn)金紅包類別發(fā)送現(xiàn)金紅包private
static
String
sendRedPackUrl
=
"/mmpaymkttransfers/sendredpack";
/**
*
發(fā)送紅包
*
@param
params
請(qǐng)求參數(shù)
*
@param
certPath
證書文件目錄
*
@param
partner
證書密碼
*
@return
{String}
*/
public
static
String
sendRedPack(Map<String,
String>
params,
String
certPath,
String
partner)
{
return
HttpUtils.postSSL(sendRedPackUrl,
PaymentKit.toXml(params),
certPath,
partner);
}private
static
String
sendGroupRedPackUrl
=
"/mmpaymkttransfers/sendgroupredpack";
/**
*
發(fā)送裂變紅包
*
@param
params
請(qǐng)求參數(shù)
*
@param
certPath
證書文件目錄
*
@param
partner
證書密碼
*
@return
{String}
*/
public
static
String
sendGroupRedPack(Map<String,
String>
params,
String
certPath,
String
partner)
{
return
HttpUtils.postSSL(sendGroupRedPackUrl,
PaymentKit.toXml(params),
certPath,
partner);
}/**
*
發(fā)送普通紅包
*
@param
request
獲取IP
*
@param
total_amount
付款現(xiàn)金(單位分)
*
@param
total_num
紅包發(fā)放總?cè)藬?shù)
*
@param
wishing
紅包祝福語(yǔ)
*
@param
act_name
活動(dòng)名稱
*
@param
remark
備注
*
@param
reOpenid
用戶openid
*
@param
partner
商戶號(hào)
*
@param
wxappid
公眾賬號(hào)appid
*
@param
sendName
商戶名稱
*
@param
paternerKey
商戶簽名key
*
@param
certPath
證書路徑
*
@return
*/
public
static
boolean
sendredpack(HttpServletRequest
request,String
total_amount,String
total_num,String
wishing,String
act_name,String
remark,String
reOpenid,String
partner,String
wxappid,String
sendName,String
paternerKey,String
certPath)
{
//
商戶訂單號(hào)
String
mchBillno
=
System.currentTimeMillis()
+
"";
String
ip
=
IpKit.getRealIp(request);
Map<String,
String>
params
=
new
HashMap<String,
String>();
//
隨機(jī)字符串
params.put("nonce_str",
System.currentTimeMillis()
/
1000
+
"");
//
商戶訂單號(hào)
params.put("mch_billno",
mchBillno);
//
商戶號(hào)
params.put("mch_id",
partner);
//
公眾賬號(hào)ID
params.put("wxappid",
wxappid);
//
商戶名稱
params.put("send_name",
sendName);
//
用戶OPENID
params.put("re_openid",
reOpenid);
//
付款現(xiàn)金(單位分)
params.put("total_amount",
total_amount);
//
紅包發(fā)放總?cè)藬?shù)
params.put("total_num",
total_num);
//
紅包祝福語(yǔ)
params.put("wishing",
wishing);
//
終端IP
params.put("client_ip",
ip);
//
活動(dòng)名稱
params.put("act_name",
act_name
);
//
備注
params.put("remark",
remark);
//創(chuàng)建簽名
String
sign
=
PaymentKit.createSign(params,
paternerKey);
params.put("sign",
sign);
String
xmlResult
=
RedPackApi.sendRedPack(params,
certPath,
partner);
Map<String,
String>
result
=
PaymentKit.xmlToMap(xmlResult);
log.warn(JsonKit.toJson(result));
//此字段是通信標(biāo)識(shí),非交易標(biāo)識(shí),交易是否成功需要查看result_code來(lái)判斷
String
return_code
=
result.get("return_code");
//業(yè)務(wù)結(jié)果
String
result_code
=
result.get("result_code");
if
(StrKit.isBlank(return_code)
||
!"SUCCESS".equals(return_code))
{
return
false;
}
if
(StrKit.notBlank(result_code)
&&
"SUCCESS".equals(result_code))
{
return
true;
}
return
false;
}/**
*
發(fā)送裂變紅包
*
@param
partner
*
@param
wxappid
*
@param
sendName
*
@param
reOpenid
*
@param
total_amount
*
@param
total_num
*
@param
wishing
*
@param
act_name
*
@param
remark
*
@param
paternerKey
*
@param
certPath
*
@return
*/
public
static
boolean
sendGroupRedPack(String
partner,
String
wxappid,
String
sendName,
String
reOpenid,
String
total_amount,
String
total_num,
String
wishing,
String
act_name,
String
remark,
String
paternerKey,
String
certPath){
//
商戶訂單號(hào)
String
mchBillno
=
System.currentTimeMillis()
+
"";
Map<String,
String>
params
=
new
HashMap<String,
String>();
//
隨機(jī)字符串
params.put("nonce_str",
System.currentTimeMillis()
/
1000
+
"");
//
商戶訂單號(hào)
params.put("mch_billno",
mchBillno);
//
商戶號(hào)
params.put("mch_id",
partner);
//
公眾賬號(hào)ID
params.put("wxappid",
wxappid);
//
商戶名稱
params.put("send_name",
sendName);
//
用戶OPENID
params.put("re_openid",
reOpenid);
//
付款現(xiàn)金(單位分)
params.put("total_amount",
total_amount);
//
紅包發(fā)放總?cè)藬?shù)
params.put("total_num",
total_num);
//紅包金額設(shè)置方式
params.put("amt_type",
"ALL_RAND");
//
紅包祝福語(yǔ)
params.put("wishing",
wishing);
//
活動(dòng)名稱
params.put("act_name",
act_name
);
//
備注
params.put("remark",
remark);
//創(chuàng)建簽名
String
sign
=
PaymentKit.createSign(params,
paternerKey);
params.put("sign",
sign);
String
xmlResult
=
RedPackApi.sendGroupRedPack(params,
certPath,
partner);
Map<String,
String>
result
=
PaymentKit.xmlToMap(xmlResult);
log.warn(JsonKit.toJson(result));
//此字段是通信標(biāo)識(shí),非交易標(biāo)識(shí),交易是否成功需要查看result_code來(lái)判斷
String
return_code
=
result.get("return_code");
//業(yè)務(wù)結(jié)果
String
result_code
=
result.get("result_code");
if
(StrKit.isBlank(return_code)
||
!"SUCCESS".equals(return_code))
{
return
false;
}
if
(StrKit.notBlank(result_code)
&&
"SUCCESS".equals(result_code))
{
return
true;
}
return
false;
}發(fā)送紅包Demo/**
*
微信紅包demo
*
@author
Javen
*
2016年5月28日
*/
public
class
RedPackApiController
extends
Controller
{
private
static
String
sendName
=
"Javen205";
//微信證書路徑
private
static
String
certPath
=
"/Users/Javen/Downloads/cert/apiclient_cert.p12";
//商戶相關(guān)資料
String
wxappid
=
PropKit.get("appId");
//
微信支付分配的商戶號(hào)
String
partner
=
PropKit.get("mch_id");
//API密鑰
String
paternerKey
=
PropKit.get("paternerKey");
/**
*
發(fā)送普通紅包
*/
public
void
sendredpack()
{
boolean
isSend
=
ReadPackUtils.sendredpack(getRequest(),
"100",
"1",
"感謝您參加猜燈謎活動(dòng),祝您元宵節(jié)快樂(lè)!",
"猜燈謎搶紅包活動(dòng)",
"猜越多得越多,快來(lái)?yè)專?,
"o_pncsidC-pRRfCP4zj98h7slREw",
partner,
wxappid,
sendName,
paternerKey,
certPath);
renderJson(isSend);
}
/**
*
發(fā)送裂變紅包
*/
public
void
sendGroupRedPack()
{
boolean
isSend
=
ReadPackUtils.sendGroupRedPack(partner,
wxappid,
"天虹百貨",
"o_pncsidC-pRRfCP4zj98h7slREw",
"100",
"10",
"感謝您參加猜燈謎活動(dòng),祝您元宵節(jié)快樂(lè)!",
"猜燈謎搶紅包活動(dòng)",
"猜越多得越多,快來(lái)?yè)?,
paternerKey,
certPath);
renderJson(isSend);
}
public
void
query()
{
String
query
=
ReadPackUtils.query("10000098201411111234567890",
partner,
wxappid,
paternerKey,
certPath);
renderJson(query);
}
}查詢紅包記錄private
static
String
getHBInfo
=
"/mmpaymkttransfers/gethbinfo
";
/**
*
根據(jù)商戶訂單號(hào)查詢信息
*
@param
params
請(qǐng)求參數(shù)
*
@param
certPath
證書文件目錄
*
@param
partner
證書密碼
*
@return
{String}
*/
public
static
String
getHbInfo(Map<String,
String>
params,
String
certPath,
String
partner)
{
return
HttpUtils.postSSL(getHBInfo,
PaymentKit.toXml(params),
certPath,
partner);
}/**
*
根據(jù)商戶訂單號(hào)查詢紅包
*
@param
mch_billno
商戶訂單號(hào)
*
@param
partner
商戶號(hào)
*
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2022-2023學(xué)年江西省宜春市袁州區(qū)四年級(jí)(上)期末數(shù)學(xué)試卷
- 人教版小學(xué)數(shù)學(xué)二年級(jí)下冊(cè)《除法的初步認(rèn)識(shí)(二)》練習(xí)題(含答案)
- 2025年買賣房屋協(xié)議書合同(2篇)
- 2025年代理銷售合同標(biāo)準(zhǔn)樣本(2篇)
- 2025年中學(xué)九年級(jí)歷史教學(xué)工作總結(jié)(二篇)
- 2025年九年級(jí)班主任下學(xué)期的工作總結(jié)(2篇)
- 2025年五年級(jí)小學(xué)數(shù)學(xué)教師工作總結(jié)樣本(四篇)
- 2025年人才開(kāi)發(fā)專項(xiàng)資金使用協(xié)議樣本(三篇)
- 2025年二手房屋買賣合同協(xié)議簡(jiǎn)單版(2篇)
- 地鐵站裝修工程合同范例
- 2024年廣東省深圳市中考道德與法治試題卷
- 汽車車身密封條設(shè)計(jì)指南
- DB4101-T 121-2024 類家庭社會(huì)工作服務(wù)規(guī)范
- DB53∕T 1269-2024 改性磷石膏用于礦山廢棄地生態(tài)修復(fù)回填技術(shù)規(guī)范
- 【財(cái)務(wù)共享服務(wù)模式探究的文獻(xiàn)綜述4000字】
- 敬語(yǔ)專項(xiàng)練習(xí)-高考日語(yǔ)復(fù)習(xí)
- 2024建安杯信息通信建設(shè)行業(yè)安全競(jìng)賽題庫(kù)(試題含答案)
- JBT 14727-2023 滾動(dòng)軸承 零件黑色氧化處理 技術(shù)規(guī)范 (正式版)
- 術(shù)后譫妄及護(hù)理
- 手術(shù)室術(shù)中物品清點(diǎn)不清的應(yīng)急預(yù)案演練流程及劇本
- 醫(yī)藥行業(yè)的市場(chǎng)營(yíng)銷與渠道拓展
評(píng)論
0/150
提交評(píng)論