To develop the Android app micro-credit payment function, you need to complete three steps: The first step is to generate a pre-payment order, a second step to generate a micro-credit payment parameter, and a third pace of micro-mail app payment. In addition to the need to audit through the app application, but also need to obtain the micro-letter payment interface permissions, and then get the corresponding merchant number, API key, which is indispensable, and in the app micro-letter payment to use
Get merchant number, API key
In the micro-credit open platform to see the audit through the app application, whether to apply for payment function, if applied, login micro-credit Payment | Merchant platform: http://pay.weixin.qq.com view the corresponding merchant number, API key
"Application for micro-credit payment interface
"Login to the merchant platform
"View Merchant number
"Get the API Key
Step one: Generate a pre-payment order
Store the commodity information, merchant information in Basicnamevaluepair, then store it in the list, and construct it into an XML string format, the interface provided by the Post method:https://api.mch.weixin.qq.com/ Pay/unifiedorder sends the data, receives the return information, obtains prepay_id the advance payment order number
To generate an order request
Private String Genproductargs () {stringbuffer xml = new StringBuffer ();
try {String noncestr = Gennoncestr ();
Xml.append ("</xml>");
list<namevaluepair> packageparams = new linkedlist<namevaluepair> ();
Packageparams. Add (New Basicnamevaluepair ("AppID", constants.app_id));
Packageparams.add (New Basicnamevaluepair ("Body", "Weixin"));
Packageparams. Add (New Basicnamevaluepair ("mch_id", constants.mch_id));
Packageparams.add (New Basicnamevaluepair ("Nonce_str", Noncestr));
Packageparams.add (New Basicnamevaluepair ("Notify_url", "http://121.40.35.3/test"));
Packageparams.add (New Basicnamevaluepair ("Out_trade_no", Genouttradno ());
Packageparams.add (New Basicnamevaluepair ("Spbill_create_ip", "127.0.0.1"));
Packageparams.add (New Basicnamevaluepair ("Total_fee", "1"));
Packageparams.add (New Basicnamevaluepair ("Trade_type", "APP"));
String sign = genpackagesign (packageparams); Packageparams.add (New Basicnamevaluepair ("sign", SIGN));
String xmlstring = toXml (packageparams);
return xmlstring;
catch (Exception e) {log.e (TAG, "Genproductargs fail, ex =" + E.getmessage ());
return null;
}
}
"Get the pre-payment order number
String url = String.Format ("Https://api.mch.weixin.qq.com/pay/unifiedorder");
String entity = Genproductargs ();
LOG.E ("Orion", entity);
byte[] buf = util.httppost (URL, entity);
String content = new string (BUF);
LOG.E ("Orion", content);
Step two: Generate the micro-credit payment parameters
AppID corresponding to the application of the app Appid,partnerid corresponding merchant number, Prepayid corresponding to the first step of the advance payment order, Packagevalue value Sign=wxpay,noncestr is a series of random numbers, Timestamp generated timestamp, sign corresponding to app signature
"Payment parameter Configuration
private void Genpayreq () {req.appid = constants.app_id;
Req.partnerid = constants.mch_id;
Req.prepayid = Resultunifiedorder.get ("prepay_id");
Req.packagevalue = "Sign=wxpay";
Req.noncestr = Gennoncestr ();
Req.timestamp = string.valueof (Gentimestamp ());
list<namevaluepair> signparams = new linkedlist<namevaluepair> ();
Signparams.add (New Basicnamevaluepair ("AppID", Req.appid));
Signparams.add (New Basicnamevaluepair ("Noncestr", Req.noncestr));
Signparams.add (New Basicnamevaluepair ("package", Req.packagevalue));
Signparams.add (New Basicnamevaluepair ("Partnerid", Req.partnerid));
Signparams.add (New Basicnamevaluepair ("Prepayid", Req.prepayid));
Signparams.add (New Basicnamevaluepair ("timestamp", Req.timestamp));
Req.sign = Genappsign (signparams);
Sb.append ("sign\n" + req.sign + "\ n");
Show.settext (Sb.tostring ());
LOG.E ("Orion", Signparams.tostring ()); }
"Noncestr random number
Private String Gennoncestr () {
Random Random = new Random ();
Return Md5.getmessagedigest (string.valueof (Random.nextint (10000))
. GetBytes ());
"Timestamp time stamp
Private Long Gentimestamp () {return
System.currenttimemillis ()/1000;
}
"App Signature
Private String genappsign (list<namevaluepair> params) {
StringBuilder sb = new StringBuilder ();
for (int i = 0; i < params.size (); i++) {
sb.append (params.get (i) getName ());
Sb.append (' = ');
Sb.append (Params.get (i). GetValue ());
Sb.append (' & ');
}
Sb.append ("key=");
Sb.append (Constants.api_key);
This.sb.append ("sign str\n" + sb.tostring () + "\ n");
String appsign = Md5.getmessagedigest (Sb.tostring (). GetBytes ())
. toUpperCase ();
LOG.E ("Orion", appsign);
return appsign;
}
The third step: to adjust the micro-letter app Payment
Before paying, need handset to install the micro-letter client, if not, will prompt to download installs the micro-letter, then the payment, adds the following configuration in the Androidmanifest.xml file
<activity
android:name= ". Act. Payactivity "
android:exported=" true "
android:launchmode=" Singletop ">
<intent-filter>
<action android:name= "Android.intent.action.VIEW"/>
<category android:name= " Android.intent.category.DEFAULT "/>
<data android:scheme=" wxf2f565574a968187 "/>
</ Intent-filter>
</activity>
"The micro-letter payment
private void Sendpayreq () {
msgapi.registerapp (constants.app_id);
Msgapi.sendreq (req);
}
Receive micro-letter return results
Rewrite the Onresp (Baseresp) method in an activity that implements the Iwxapieventhandler interface to receive the micro-letter results
"Receive the payment result
public void Onresp (Baseresp resp) {
log.d (TAG, "onpayfinish, Errcode =" + Resp.errcode);
if (resp.gettype () = = constantsapi.command_pay_by_wx) {
Alertdialog.builder Builder = new Alertdialog.builder (this );
Builder.settitle (r.string.app_tip);
Builder.setmessage (GetString (r.string.pay_result_callback_msg,
resp.errstr + "; code=" + string.valueof ( Resp.errcode)));
Builder.show ();
}
This article has been organized into the "Android micro-credit Payment Tutorial Summary", "Android micro-credit Development tutorial Summary," Welcome to learn to read.
The above is the entire content of this article, I hope to help you learn.