HBuilder支持手机微信支持银联支付吗吗

提供主流cms教程
提供数据库教程和设计
提供各种常见网页js代码
提供常用的JS特效代码及在线演示
提供jQuery插件教程及插件下载
提供服务器常见问题及教程
提供站长技术、站长资讯等内容
提供常用开发手册和开发工具
您现在的位置:& >
hbuilder 支付宝和微信支付插件配置
导读:HBuilder 基座已实现H5 plus的支付API,现已集成支付宝快捷支付平台。使用支付功能前必须在支付宝网站开通快捷支付服务,并配置服务器生...
HBuilder 基座已实现H5 plus的支付API,现已集成支付宝快捷支付平台。使用支付功能前必须在支付宝网站开通&快捷支付&服务,并配置服务器生成订单信息。
支付流程如下:
plus API使用步骤:
1. 调用plus.payment.getChannels()获取系统支持的支付通道;
2. 调用plus.payment.request()发起支付请求。
var channel=null;
// 1. 获取支付通道
function plusReady(){
// 获取支付通道
plus.payment.getChannels(function(channels){
channel=channels[0];
},function(e){
alert(&获取支付通道失败:&+e.message);
document.addEventListener('plusready',plusReady,false);
var ALIPAYSERVER='http://demo./helloh5/payment/alipay.php?total=';
var WXPAYSERVER='http://demo./helloh5/payment/wxpay.php?total=';
// 2. 发起支付请求
function pay(id){
// 从服务器请求支付订单
var PAYSERVER='';
if(id=='alipay'){
PAYSERVER=ALIPAYSERVER;
}else if(id=='wxpay'){
PAYSERVER=WXPAYSERVER;
plus.nativeUI.alert(&不支持此支付通道!&,null,&捐赠&);
var xhr=new XMLHttpRequest();
xhr.onreadystatechange=function(){
switch(xhr.readyState){
if(xhr.status==200){
plus.payment.request(channel,xhr.responseText,function(result){
plus.nativeUI.alert(&支付成功!&,function(){
},function(error){
plus.nativeUI.alert(&支付失败:& + error.code);
alert(&获取订单信息失败!&);
xhr.open('GET',PAYSERVER);
xhr.send();
注:第二步中获取到的订单数据需要在服务器通过支付宝平台获取PID和密钥生成。
HBuilder应用配置
分享插件添加方法具体步骤如下:
1. 双击应用的manifest.json文件,选中&使用第三方插件&
Ctrl+S保存。
点击manifest.json文件的&代码视图&,在permissions节点下添加Payment节点:
在plus -& distribute -& plugins 节点下添加payment节点:
alipay节点下配置支付宝相关信息
scheme值为iOS平台调用支付宝的&快捷支付&应用返回时用到的标识,推荐使用小写字符串。
weixin节点下配置微信支付相关信息
appid值为在微信开放平台申请应用的AppID值。
支付宝功能申请
登录支付宝账号,签约申请&移动快捷支付&功能,操作流程参考:
获取PID,参考教程:
生成密钥(公钥和私钥),并提交到支付宝,参考教程:
服务器生成订单示例(PHP)
完整示例代码已开源到
header('Content-type: text/plain');
// 获取支付金额
$amount='';
if($_SERVER['REQUEST_METHOD']=='POST'){
$amount=$_POST['total'];
$amount=$_GET['total'];
$total = floatval($amount);
if(!$total){
$total = 10;
// 对签名字符串转义
function createLinkstring($para) {
while (list ($key, $val) = each ($para)) {
$arg.=$key.'=&'.$val.'&&';
//去掉最后一个&字符
$arg = substr($arg,0,count($arg)-2);
//如果存在转义字符,那么去掉转义
if(get_magic_quotes_gpc()){$arg = stripslashes($arg);}
return $arg;
// 签名生成订单信息
function rsaSign($data) {
$priKey = &%私钥%&;
// 生成密钥时获取,直接使用pem文件的字符串
$res = openssl_get_privatekey($priKey);
openssl_sign($data, $sign, $res);
openssl_free_key($res);
$sign = base64_encode($sign);
$sign = urlencode($sign);
return $sign;
// 支付宝合作身份者ID,以2088开头的16位纯数字
$partner = &%PID%&;
// 支付宝开通快捷支付功能后可获取
// 支付宝账号
$seller_id = &payservice@dcloud.io&;
// 商品网址
$base_path = urlencode('http://demo./helloh5/payment/');
// 异步通知地址
$notify_url = urlencode('http://demo./helloh5/payment/notify.php');
// 订单标题
$subject = 'DCloud项目捐赠';
// 订单详情
$body = 'DCloud致力于打造HTML5最好的移动开发工具,包括终端的Runtime、云端的服务和IDE,同时提供各项配套的开发者服务。';
// 订单号,示例代码使用时间值作为唯一的订单ID号
$out_trade_no = date('YmdHis', time());
$parameter = array(
'service'
=& 'mobile.securitypay.pay',
// 必填,接口名称,固定值
'partner'
=& $partner,
// 必填,合作商户号
'_input_charset' =& 'UTF-8',
// 必填,参数编码字符集
'out_trade_no'
=& $out_trade_no,
// 必填,商户网站唯一订单号
'subject'
=& $subject,
// 必填,商品名称
'payment_type'
=& '1',
// 必填,支付类型
'seller_id'
=& $seller_id,
// 必填,卖家支付宝账号
'total_fee'
=& $total,
// 必填,总金额,取值范围为[0.01,]
'body'
// 必填,商品详情
'it_b_pay'
=& '1d',
// 可选,未付款交易的超时时间
'notify_url'
=& $notify_url,
// 可选,服务器异步通知页面路径
'show_url'
=& $base_path
// 可选,商品展示网站
//生成需要签名的订单
$orderInfo = createLinkstring($parameter);
$sign = rsaSign($orderInfo);
//生成订单
echo $orderInfo.'&sign=&'.$sign.'&&sign_type=&RSA&';
微信支付功能申请
使用微信支付功能需到微信开放平台申请移动应用并开通支付功能
申请应用后可以获取AppID和AppSecret值。
开通支付功能后可获取支付业务服务器配置数据
PARTNER:财付通商户号
PARTNER_KEY:财付通密钥
PAYSIGNKEY:支付签名密钥
服务器生成订单示例(PHP)
header('Access-Control-Allow-Origin: *');
header('Content-type: text/plain');
require_once(&classes/RequestHandler.class.php&);
require_once(&classes/ResponseHandler.class.php&);
require(&classes/client/TenpayHttpClient.class.php&);
//财付通商户号
$PARTNER = &财付通商户号&;
//财付通密钥
$PARTNER_KEY = &财付通密钥&;
$APP_ID=&移动应用AppID&;
//appsecret
$APP_SECRET= &移动应用AppSecret&;
//paysignkey(非appkey)
$APP_KEY=&支付签名密钥&;
//支付完成后的回调处理页面
$notify_url = &http://demo./helloh5/payment/wxnotify.php&;
// 获取支付金额
$amount='';
if($_SERVER['REQUEST_METHOD']=='POST'){
$amount=$_POST['total'];
$amount=$_GET['total'];
$total = floatval($amount);
if(!$total){
$total = 1;
$total = $total*100;
// 商品名称
$subject = 'DCloud项目捐赠';
// 订单号,示例代码使用时间值作为唯一的订单ID号
$out_trade_no = date('YmdHis', time());
$outparams =array();
//获取token值
$reqHandler = new RequestHandler();
$reqHandler-&init($APP_ID, $APP_SECRET, $PARTNER_KEY, $APP_KEY);
$Token= $reqHandler-&GetToken();
if ( $Token !='' ){
//=========================
//生成预支付单
//=========================
//设置packet支付参数
$packageParams =array();
$packageParams['bank_type']
= 'WX';
//支付类型
$packageParams['body']
= $subject;
//商品描述
$packageParams['fee_type']
= '1';
//银行币种
$packageParams['input_charset'] = 'GBK';
$packageParams['notify_url']
= $notify_url;
//通知地址
$packageParams['out_trade_no']
= $out_trade_no;
//商户订单号
$packageParams['partner']
= $PARTNER;
//设置商户号
$packageParams['total_fee']
//商品总金额,以分为单位
$packageParams['spbill_create_ip']= $_SERVER['REMOTE_ADDR'];
//支付机器IP
//获取package包
$package= $reqHandler-&genPackage($packageParams);
$time_stamp = time();
$nonce_str = md5(rand());
//设置支付参数
$signParams =array();
$signParams['appid']
$signParams['appkey']
=$APP_KEY;
$signParams['noncestr'] =$nonce_str;
$signParams['package']
=$package;
$signParams['timestamp']=$time_stamp;
$signParams['traceid']
= 'mytraceid_001';
//生成支付签名
$sign = $reqHandler-&createSHA1Sign($signParams);
//增加非参与签名的额外参数
$signParams['sign_method']
='sha1';
$signParams['app_signature']
//剔除appkey
unset($signParams['appkey']);
//获取prepayid
$prepayid=$reqHandler-&sendPrepay($signParams);
if ($prepayid != null) {
= 'Sign=WXPay';
//输出参数列表
$prePayParams =array();
$prePayParams['appid']
$prePayParams['appkey']
=$APP_KEY;
$prePayParams['noncestr']
=$nonce_str;
$prePayParams['package']
$prePayParams['partnerid']
=$PARTNER;
$prePayParams['prepayid']
=$prepayid;
$prePayParams['timestamp']
=$time_stamp;
//生成签名
$sign=$reqHandler-&createSHA1Sign($prePayParams);
$outparams['retcode']=0;
$outparams['retmsg']='ok';
$outparams['appid']=$APP_ID;
$outparams['noncestr']=$nonce_str;
$outparams['package']=$pack;
$outparams['partnerid']=$PARTNER;
$outparams['prepayid']=$prepayid;
$outparams['timestamp']=$time_stamp;
$outparams['sign']=$sign;
$outparams['retcode']=-2;
$outparams['retmsg']='错误:获取prepayId失败';
$outparams['retcode']=-1;
$outparams['retmsg']='错误:获取不到Token';
//Json 输出
ob_clean();
echo json_encode($outparams);
转载请注明(B5教程网)原文链接:
网友评论:提供主流cms教程
提供数据库教程和设计
提供各种常见网页js代码
提供常用的JS特效代码及在线演示
提供jQuery插件教程及插件下载
提供服务器常见问题及教程
提供站长技术、站长资讯等内容
提供常用开发手册和开发工具
您现在的位置:& >
Hbuilder MUI 微信支付php版(微信支付V3)
导读:使用说明打开WxPay.Config.php文件,配置以下常量值:APPID 应用APPID,开户邮件中可获取。MCHID 商户号,开户邮件中可获取。KEY API密...
打开WxPay.Config.php文件,配置以下常量值:
APPID 应用APPID,开户邮件中可获取。
MCHID 商户号,开户邮件中可获取。
KEY API密钥(32位数字或英文字符),登录商户平台的API安全中设置。
NOTIFY_URL 商户号,订单通知URL地址。
部署服务器后访问index.php获取订单,需要提交total参数(单位为元),如: http://demo./payment/wxpayv3.HBuilder/?total=1 这是可用于生成在HBuilder调试基座可使用的订单示例地址,其中total值为要支付的金额。
php后端代码下载地址:
转载请注明(B5教程网)原文链接:
网友评论:提供主流cms教程
提供数据库教程和设计
提供各种常见网页js代码
提供常用的JS特效代码及在线演示
提供jQuery插件教程及插件下载
提供服务器常见问题及教程
提供站长技术、站长资讯等内容
提供常用开发手册和开发工具
您现在的位置:& >
Hello MUI增加BeeCloud支付集成示例,无服务端也可完成支付全流程
导读:DCloud和BeeCloud合作的支付业务,与普通的三方支付不同。它仅需要工程师写前端App的js代码,调用Plus的原生支付接口进行支付宝和微信的原...
DCloud和BeeCloud合作的支付业务,与普通的三方支付不同。
它仅需要工程师写前端App的js代码,调用Plus的原生支付接口进行支付宝和微信的原生支付,不需要服务器编写代码,即可收款到开发商自己的微信或支付宝的账户里。
需要注意钱并不流经DCloud或beecloud的服务器,开发商向微信和支付宝申请账户,最终用户支付的钱直接到达开发商在微信或支付宝里申请的账户。
目前还不支持银联,下个版本会支持银联支付,同时会扩展至无plus环境的普通浏览器上自动兼容wap支付。
体验DEMO的方式:HBuilder 6.9版本后新建的Hello mui项目含有cloud pay模板。
在注册,并完成企业认证。
在创建你的第一个APP。
配置支付参数
配置您所需的支付渠道的支付参数,具体请参考,如图:
manifest.json配置
模块权限配置
勾选payment模块
需要在plus.payment-支付中配置scheme
支付宝支付
自定义填写,推荐使用小写字符串,不能填写alipay,AliPay等关键字
固定填写,微信开放平台创建应用的APPID
& 这些配置都是云打包之后生效,所以测试微信支付,必须云打包之后,在手机上运行,才能正常调起微信客户端支付。否则在数据正常的情况下,调起微信客户端后,会出现异常(只显示一个确定按钮)
真机运行使用的是DCloud公司的支付配置信息,此时付款会付给DCloud。
在页面中引入beecloud.js
( 在Hello mui里含有本文件)
src=&/static/css/default/img/default.jpg& data-original=&beecloud.js&
构建支付参数发起支付
src=&/static/css/default/img/default.jpg& data-original=&beecloud.js&
type=&text/javascript&
function beecloudPay(bcChannel) {
* 构建支付参数
* app_id: BeeCloud控制台上创建的APP的appid,必填
* title: 订单标题,32个字节,最长支持16个汉字;必填
* total_fee: 支付金额,以分为单位,大于0的整数,必填
* bill_no: 订单号,8~32位数字和/或字母组合,确保在商户系统中唯一,必填
* optional: 扩展参数,可以传入任意数量的key/value对来补充对业务逻辑的需求;此参数会在webhook回调中返回; 选填
* bill_timeout: 订单失效时间,必须为非零正整数,单位为秒,必须大于360。选填
var payData = {
app_id: &c37d661d-7e61-49ea-96a5-68c34e83db3b&,
channel: bcChannel,
title: &DCloud&,
total_fee: 1,
bill_no: beecloud.genBillNo(),
optional: {'uerId':'beecloud','phone':''},
bill_timeout: 360
payData: 支付参数
cbsuccess: 支付成功回调
cberror: 支付失败回调
beecloud.payReq(payData, function(result) {
mui.alert(&----- 支付成功 -----& + str);
}, function(e) {
mui.alert(&----- 支付失败 -----\n& +&错误码:&+ e.code + '\n' + e.message);
转载请注明(B5教程网)原文链接:
网友评论:& & & 前言&
  最近有点空余时间,所以,就研究了一下APP支付。前面很早就搞完APP的微信支付了,但是由于时间上和应用上的情况,支付宝一直没空去研究。然后等我空了的时候,发现支付宝居然升级了支付逻辑,虽然目前还兼容老的方法,但是新的既然出来了,肯定研究新的了。但是网上几乎都是旧的方法,所以,唯有自己看官方的文档,慢慢一步一步研究了。在研究的过程中,发现,他跟微信支付的差别蛮大的。好了废话不多说了,下面直接来干货。
& & & & 首先,你得去蚂蚁金服开放平台申请一个应用,地址:注册一个应用,如下图:
&  应用申请下来之后,需要申请功能,我们这里用到的是&APP支付&功能。如下图:
  如果需要查看相关的文档,那就点击&APP支付&就可以跳转到相关的文档,这里我直接给出APP需要看到的文档,地址:&如下图:
  我们在编写服务端的时候,需要用到两个参数,一个是APPID,这个上面的图里面有,还有一个就是密钥,这个是通过签名工具生成,可以通过下面这个地址下载工具,然后生成,地址:
  下载这个工具,然后解压,双击&支付宝RAS密钥生成器SHAwithRSA.bat&生成即可,这里要注意:TIPS:工具不支持含中文或空格的路径,请下载到英文目录下使用。
打开工具后,如下图:
  先&生成密钥&,然后再复制公钥,然后把公钥复制到平台,如下图:
  再保存,如下图:
  然后再验证公钥的正确性,这里,可以写个小工具来验证,方法如下:
&&&&&&&&///&&summary&
&&&&&&&&///&测试公钥是否对
&&&&&&&&///&&/summary&
&&&&&&&&///&&returns&&/returns&
&&&&&&&&public&string&testsign()
&&&&&&&&&&&&string&privtekey&=&Config.//这个就是生成器里面的那个私钥,第一个大框框那里的.
&&&&&&&&&&&&string&data&=&"a=123";//平台上提供的串
&&&&&&&&&&&&string&sign&=&RSAFromPkcs8.sign(data,&privtekey,&"utf-8");
&&&&&&&&&&&&return&
然后再把这个sign的值,复制出来,然后再点击&验证公钥正确性&,如下图:
  然后输入你的&sign&的值:
  点击&验证&后,如果提示验证通过,那么你这个签名的方式就是对了,如下图:
  再点击&保存&即可。
接下来,我就写一下服务端生成相应的串的方法,全部贴出来,方便大家模仿吧,其实大家按照下面这个图,慢慢研究,也可以的,如下图:
  最后,我们要给回到APP的参数是这个,只要我们按照规则返回即可。下面,我把方法贴出:
&&&&public&class&AliPayController&:&Controller
&&&&&&&&public&Dictionary&string,&string&&PayInfo&=&new&Dictionary&string,&string&();
&&&&&&&&//
&&&&&&&&//&GET:&/AliPay/
&&&&&&&&public&ActionResult&Index()
&&&&&&&&&&&&testsign();
&&&&&&&&&&&&GetPayInfo("0.01");
&&&&&&&&&&&&return&View();
&&&&&&&&///&&summary&
&&&&&&&&///&测试公钥是否对
&&&&&&&&///&&/summary&
&&&&&&&&///&&returns&&/returns&
&&&&&&&&public&string&testsign()
&&&&&&&&&&&&string&privtekey&=&Config.//这个就是生成器里面的那个私钥,第一个大框框那里的.
&&&&&&&&&&&&string&data&=&"a=123";//平台上提供的串
&&&&&&&&&&&&string&sign&=&RSAFromPkcs8.sign(data,&privtekey,&"utf-8");
&&&&&&&&&&&&return&
&&&&&&&&///&&summary&
&&&&&&&&///&获取支付信息
&&&&&&&&///&&/summary&
&&&&&&&&///&&param&name="_amount"&&/param&
&&&&&&&&///&&returns&&/returns&
&&&&&&&&public&string&GetPayInfo(string&_amount)//_amount:付款金额
&&&&&&&&&&&&string&strJson&=&string.E
&&&&&&&&&&&&try
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&string&orderInfo&=&GetOrderInfoWithOutEncode(_amount);
&&&&&&&&&&&&&&&&//&对订单做RSA&签名
&&&&&&&&&&&&&&&&string&sign&=&RSAFromPkcs8.sign(orderInfo,&Config.privtekey,&"utf-8");
&&&&&&&&&&&&&&&&//仅需对sign做URL编码
&&&&&&&&&&&&&&&&sign&=&HttpUtility.UrlEncode(sign,&Encoding.UTF8);
&&&&&&&&&&&&&&&&string&payInfo&=&GetOrderInfoWithEncode()&+&"&sign="&+&
&&&&&&&&&&&&&&&&strJson&=&payInfo.Replace("+",&"%20");//日期那里会有一个空格(&11:11:11)转化为+,所以这里要替换一下
&&&&&&&&&&&&&&&&FileLog.WriteLog("支付宝串:"&+&strJson);
&&&&&&&&&&&&}
&&&&&&&&&&&&catch&(Exception&ex)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&FileLog.WriteLog(ex.ToString());
&&&&&&&&&&&&}
&&&&&&&&&&&&return&strJ
&&&&&&&&///&&summary&
&&&&&&&&///&不包含Encode的字符串拼接
&&&&&&&&///&&/summary&
&&&&&&&&///&&param&name="price"&&/param&
&&&&&&&&///&&returns&&/returns&
&&&&&&&&public&string&GetOrderInfoWithOutEncode(string&price)
&&&&&&&&&&&&PayInfo.Add("app_id",&Config.app_id);
&&&&&&&&&&&&PayInfo.Add("biz_content",&GetBizContent(price));
&&&&&&&&&&&&PayInfo.Add("charset",&"utf-8");
&&&&&&&&&&&&PayInfo.Add("format",&"json");
&&&&&&&&&&&&PayInfo.Add("method",&"alipay.trade.app.pay");
&&&&&&&&&&&&PayInfo.Add("notify_url",&"http://wxpay.lmx.ren/ResultNotify");
&&&&&&&&&&&&PayInfo.Add("sign_type",&"RSA");
&&&&&&&&&&&&PayInfo.Add("timestamp",&DateTime.Now.ToString("yyyy-MM-dd&HH:mm:ss"));
&&&&&&&&&&&&PayInfo.Add("version",&"1.0");
&&&&&&&&&&&&string&strUrl&=&BuildQueryWithOutEncode(PayInfo);
&&&&&&&&&&&&return&strU
&&&&&&&&///&&summary&
&&&&&&&&///&包含Encode的字符串拼接
&&&&&&&&///&&/summary&
&&&&&&&&///&&param&name="price"&&/param&
&&&&&&&&///&&returns&&/returns&
&&&&&&&&public&string&GetOrderInfoWithEncode()
&&&&&&&&&&&&string&strUrl&=&BuildQuery(PayInfo,&"utf-8");
&&&&&&&&&&&&return&strU
&&&&&&&&///&&summary&
&&&&&&&&///&获取支付内容详情
&&&&&&&&///&&/summary&
&&&&&&&&///&&param&name="total_amount"&&/param&
&&&&&&&&///&&returns&&/returns&
&&&&&&&&public&string&GetBizContent(string&total_amount)
&&&&&&&&&&&&Dictionary&string,&string&&biz_content_info&=&new&Dictionary&string,&string&();
&&&&&&&&&&&&biz_content_info.Add("timeout_express",&"30m");//该笔订单允许的最晚付款时间,逾期将关闭交易。
&&&&&&&&&&&&biz_content_info.Add("seller_id",&"");//收款支付宝用户ID。&如果该值为空,则默认为商户签约账号对应的支付宝用户ID
&&&&&&&&&&&&biz_content_info.Add("product_code",&"QUICK_MSECURITY_PAY");//销售产品码,商家和支付宝签约的产品码,为固定值QUICK_MSECURITY_PAY
&&&&&&&&&&&&biz_content_info.Add("total_amount",&"0.01");//订单总金额,单位为元,精确到小数点后两位,取值范围[0.01,]
&&&&&&&&&&&&biz_content_info.Add("subject",&"Iphone7&128G");//商品的标题/交易标题/订单标题/订单关键字等。
&&&&&&&&&&&&biz_content_info.Add("body",&"最新款的手机啦");//对一笔交易的具体描述信息。如果是多种商品,请将商品描述字符串累加传给body。
&&&&&&&&&&&&biz_content_info.Add("out_trade_no",&DateTime.Now.ToString("yyyyMMddHHmmssffffff"));//商户网站唯一订单号
&&&&&&&&&&&&string&strBizContent&=&JsonHelper.Serialize(biz_content_info);
&&&&&&&&&&&&return&strBizC
&&&&&&&&///&&summary&
&&&&&&&&///&组装普通文本请求参数(带Encode)。
&&&&&&&&///&&/summary&
&&&&&&&&///&&param&name="parameters"&Key-Value形式请求参数字典&/param&
&&&&&&&&///&&returns&URL编码后的请求数据&/returns&
&&&&&&&&public&static&string&BuildQuery(IDictionary&string,&string&&parameters,&string&charset)
&&&&&&&&&&&&StringBuilder&postData&=&new&StringBuilder();
&&&&&&&&&&&&bool&hasParam&=&false;
&&&&&&&&&&&&IEnumerator&KeyValuePair&string,&string&&&dem&=&parameters.GetEnumerator();
&&&&&&&&&&&&while&(dem.MoveNext())
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&string&name&=&dem.Current.K
&&&&&&&&&&&&&&&&string&value&=&dem.Current.V
&&&&&&&&&&&&&&&&//&忽略参数名或参数值为空的参数
&&&&&&&&&&&&&&&&if&(!string.IsNullOrEmpty(name)&&&&!string.IsNullOrEmpty(value))
&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&if&(hasParam)
&&&&&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&&&&&postData.Append("&");
&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&postData.Append(name);
&&&&&&&&&&&&&&&&&&&&postData.Append("=");
&&&&&&&&&&&&&&&&&&&&string&encodedValue&=&HttpUtility.UrlEncode(value,&Encoding.GetEncoding(charset));
&&&&&&&&&&&&&&&&&&&&postData.Append(encodedValue);
&&&&&&&&&&&&&&&&&&&&hasParam&=&true;
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&}
&&&&&&&&&&&&return&postData.ToString();
&&&&&&&&///&&summary&
&&&&&&&&///&组装普通文本请求参数(不带Encode)。
&&&&&&&&///&&/summary&
&&&&&&&&///&&param&name="parameters"&Key-Value形式请求参数字典&/param&
&&&&&&&&///&&returns&URL编码后的请求数据&/returns&
&&&&&&&&public&static&string&BuildQueryWithOutEncode(IDictionary&string,&string&&parameters)
&&&&&&&&&&&&StringBuilder&postData&=&new&StringBuilder();
&&&&&&&&&&&&bool&hasParam&=&false;
&&&&&&&&&&&&IEnumerator&KeyValuePair&string,&string&&&dem&=&parameters.GetEnumerator();
&&&&&&&&&&&&while&(dem.MoveNext())
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&string&name&=&dem.Current.K
&&&&&&&&&&&&&&&&string&value&=&dem.Current.V
&&&&&&&&&&&&&&&&//&忽略参数名或参数值为空的参数
&&&&&&&&&&&&&&&&if&(!string.IsNullOrEmpty(name)&&&&!string.IsNullOrEmpty(value))
&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&if&(hasParam)
&&&&&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&&&&&postData.Append("&");
&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&postData.Append(name);
&&&&&&&&&&&&&&&&&&&&postData.Append("=");
&&&&&&&&&&&&&&&&&&&&string&encodedValue&=&
&&&&&&&&&&&&&&&&&&&&postData.Append(encodedValue);
&&&&&&&&&&&&&&&&&&&&hasParam&=&true;
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&}
&&&&&&&&&&&&return&postData.ToString();
&&&&&&&&///&&summary&
&&&&&&&&///&配置(请自行填上下面两个参数)
&&&&&&&&///&&/summary&
&&&&&&&&public&class&Config
&&&&&&&&&&&&///&&summary&
&&&&&&&&&&&&///&应用APPID
&&&&&&&&&&&&///&&/summary&
&&&&&&&&&&&&public&const&string&app_id&=&"";
&&&&&&&&&&&&///&&summary&
&&&&&&&&&&&&///&私钥,通过工具生成
&&&&&&&&&&&&///&&/summary&
&&&&&&&&&&&&public&const&string&privtekey&=&"";
  服务端的完整代码就如上了。
下面我吧HBuilder里面的代码也写一下,就是选择好&支付宝&之后,执行的代码是:
&&&&&&&&&&&&&&&&&&&&plus.nativeUI.showWaiting();
&&&&&&&&&&&&&&&&&&&&mui.post("http://wxpay.lmx.ren/AliPay/GetPayInfo",&{
&&&&&&&&&&&&&&&&&&&&&&&&_amount: 0.01
&&&&&&&&&&&&&&&&&&&&},&function(data)&{
&&&&&&&&&&&&&&&&&&&&&&&&plus.nativeUI.closeWaiting();
&&&&&&&&&&&&&&&&&&&&&&&&if&(data)&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&plus.payment.request(payChanel,&data,&function(result)&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&console.log(JSON.stringify(result));
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&mui.alert(JSON.stringify(result),&title);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&mui.alert("付费成功",&title);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&},&function(e)&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&console.log(JSON.stringify(e));
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&alert(JSON.stringify(e));
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&mui.alert("付费失败",&title);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&});
&&&&&&&&&&&&&&&&&&&&&&&&}&else&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&plus.nativeUI.alert("支付失败");
&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&});
&  好了,就是如此简单。下面贴几张成功的图片,方便大家预览。
  好了,这次教程到此结束。如果代码有漏的,回复评论,我会上来看。如果需要讨论的,加群讨论,QQ个人好友已满,加不了了,抱歉。
& &&&&到这里,就大功告成啦,接下来的东西,就由大家自己去展开拓展了,本次经验分享到此结束,写过博客的人都知道,好好写一个博客,需要自己从头重新走一遍代码,所以,各种辛苦,只有自己能体会。所以您如果觉得写得不错,或者对你有帮助,请点&好文要顶&或者&关注我&,顺带也可以评论一两句,大家互相交流交流,转载请保留原作者地址以及姓名。
我新建一个QQ群,如果有问题,可以在群里提。如果合适,也会根据大家提的比较多的问题,来写篇博文,帮助更多的人,群号:
点击链接加入群【.Net,MVC,EasyUI,MUI,Html,JS】:
(如果有私活,或者一起合作的,也可以私信找我呀,嘿嘿);
作者:南宫萧尘 &
需要实时测试的,可以关注公众号,测试相关功能(根据实际情况,可能会不定时更新程序,如果需要最新程序的,可以加群联系,QQ群号在上面):
& &&【原创分享&支付宝支付】HBuilder打包APP调用支付宝客户端支付
阅读(...) 评论()}

我要回帖

更多关于 银联手机支付客户端 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信