本篇文章主要介绍了"手机网页支付",主要涉及到ajax,Git,ajax跨域,手机网页方面的内容,对于移动开发感兴趣的同学可以参考一下:
1、支付宝支付 支付宝支付只需要根据api参数列表列全必须的参数后进行签名,再拼接支付的url就差不多了 官方手机网页支付demo/*代码一*/func...
1、支付宝支付
支付宝支付只需要根据api参数列表列全必须的参数后进行签名,再拼接支付的url就差不多了
官方手机网页支付demo
/*代码一*/
function alipay(baseUrl, tradeno, order) {
this.baseUrl = baseUrl;
this.params = {
partner: '208881172042****',
seller_id: '208881172042****',
_input_charset: 'utf-8',
service: 'alipay.wap.create.direct.pay.by.user',
payment_type: '1',//支付类型 notify_url: baseUrl + '/api/alipayCallback/order',//服务器异步通知页面路径 return_url: baseUrl + '/follow/success.html',//页面跳转同步通知页面路径 out_trade_no: tradeno,//商品订单号 subject: '****',//订单名称 total_fee: order.totalFee,//付款金额, show_url: baseUrl + '/follow/success.html',//商品展示地址 body: '所跟单号-' + order.orderno//订单描述 };
}
alipay.prototype.submit = function () {
var pay = this;
/*将支付参数提交到后台进行签名*/
$.post('/api/follow/sign', pay.params, function (data) {
var sign = data.data;
pay.params.sign = sign;
pay.params.sign_type = 'RSA' pay.submitToPay('https://mapi.alipay.com/gateway.do?', pay.params, 'get');
});
}
alipay.prototype.submitToPay = function (url, param, method) {
var f = $('
'
);
for (
var key
in param)
$('
'
).val(param[key]).appendTo(f);
f.appendTo(document.body).submit();
document.body.removeChild(f.get(0
));
} 类似如下,在input标签内填入参数,以及对应的sign后,点击确定后跳转到支付宝网页支付界面(实际上上述的javascript实现的功能就是为了实现该部分)
DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><meta name="mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><title>支付宝支付title>head><body><form id='alipaysubmit' name='alipaysubmit' action='https://mapi.alipay.com/gateway.do?_input_charset=utf-8' method='get'><table><tr><td>_input_charsettd><td><input type='text' name='_input_charset' value='utf-8' />td>tr><tr><td>bodytd><td><input type='text' name='body' value='所跟单号-201507011709535177' />td>tr><tr><td>notify_urltd><td><input type='text' name='notify_url' value='http://**********/follow/success.html' />td>tr><tr><td>out_trade_notd><td><input type='text' name='out_trade_no' value='2088811720422661' />td>tr><tr><td>partnertd><td><input type='text' name='partner' value='2088811720422661' />td>tr><tr><td>payment_typetd><td><input type='text' name='payment_type' value='1' />td>tr><tr><td>return_urltd><td><input type='text' name='return_url' value='http://***********/follow/success.html' />td>tr><tr><td>seller_idtd><td><input type='text' name='seller_id' value='2088811720422661' />td>tr><tr><td>servicetd><td><input type='text' name='service' value='alipay.wap.create.direct.pay.by.user' />td>tr><tr><td>show_urltd><td><input type='text' name='show_url' value='http://**********/follow/success.html' />td>tr><tr><td>subjecttd><td><input type='text' name='subject' value='*****跟单' />td>tr><tr><td>total_feetd><td><input type='text' name='total_fee' value='0.01' />td>tr><tr><td>signtd><td><input type='text' name='sign' value='PL+tBPfvsVErLzbxcLz1jpq237NZbAG1icXY6+VWXotxYK0Wc/bUGwnqrdyYphBZBQ5LpmxwmLg1SAqibqavCdHnil4/nc+P7ei0ibwpbIElWv6gkEzfFFS6X1+/V+VGBmJBl/2Z4fHGsDClxFxUYYDJpR23vVrUY98BBjEeT+4=' />td>tr><tr><td>sign_typetd><td><input type='text' name='sign_type' value='RSA' />td>tr>table><input type='submit' value='确认'>form>body>html>
2、微信支付
(1)、公众号支付配置


(2)、支付 http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html
a、用户同意授权,获取code
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&resp
若提示“该链接无法访问”,请检查参数是否填写错误,是否拥有scope参数对应的授权作用域权限。
参数说明
参数 | 是否必须 | 说明 |
---|
appid | 是 | 公众号的唯一标识 |
redirect_uri | 是 | 授权后重定向的回调链接地址,请使用urlencode对链接进行处理 |
response_type | 是 | 返回类型,请填写code |
scope | 是 | 应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息) |
state | 否 | 重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节 |
#wechat_redirect | 是 | 无论直接打开还是做页面302重定向时候,必须带此参数 |
设置参数redirect_uri指向的页面为以下(代码二)内容(redirect_uri中必须使用域名,并且已经设置为微信支付目录);