Pingpp HTML5 SDK
简介
src 目录中是 HTML5 SDK 文件;
example-wap 目录里是基于手机浏览器的接入示例;
example-webview 目录里是 webview 的示例项目,包括 iOS 和 Android。
接入方法
- 在你的页面中引入 pingpp.js
pingpp;
如果 charge
正确的话,会跳转到相应的支付页面,要求用户进行付款。
- 用户支付成功后,会跳转到创建
charge
时定义的result_url
或者success_url
。如果用户取消支付,则会跳转到result_url
或者cancel_url
(具体情况根据渠道不同会有所变化)。
微信公众号 SDK 接入注意事项
以下示例中,Server-SDK 以 php
为例,其他语言请参考各语言 SDK 的文档
关于 openid
- 用 Server-SDK 取得
openid
(微信公众号授权用户唯一标识)
- 先跳转到微信获取
授权 code
,地址由下方代码生成,$wx_app_id
是你的微信公众号应用唯一标识
,$redirect_url
是用户确认授权后跳转的地址,用来接收code
- 用户确认授权后,使用
code
获取openid
,其中$wx_app_secret
是你的微信公众号应用密钥
- 将
openid
作为创建charge
时的extra
参数,具体方法参考技术文档,例:
"order_no": "1234567890" "app": "id": "app_1234567890abcDEF" "channel": "wx_pub" "amount": 100 "client_ip": "127.0.0.1" "currency": "cny" "subject": "Your Subject" "body": "Your Body" "extra": "open_id": openid
- 得到
charge
后,在页面中引用pingpp.js
,调用pingpp.createPayment
,结果会直接在callback
中返回。
pingpp;
使用微信 JS-SDK
如果使用微信 JS-SDK 来调起支付,需要在创建 charge
后,获取签名(signature
),传给 HTML5 SDK。
$jsapi_ticket_arr = \Pingpp\WxpubOAuth::getJsapiTicket($wx_app_id, $wx_app_secret);$ticket = $jsapi_ticket_arr['ticket'];
正常情况下,jsapi_ticket
的有效期为 7200 秒。由于获取 jsapi_ticket
的 api 调用次数非常有限,频繁刷新 jsapi_ticket
会导致 api 调用受限,影响自身业务,开发者必须在自己的服务器全局缓存 jsapi_ticket
。
$signature = \Pingpp\WxpubOauth::getSignature($charge, $ticket);
然后在 HTML5 SDK 里调用
pingpp;
alipay_wap
)
在微信客户端中使用支付宝手机网页支付(你需要把 alipay_in_weixin 目录下的两个文件分别放到你的服务器目录。
ap.js
只需要在需要调用支付宝的网页中引入
pay.htm
要放到你需要使用支付宝的页面的同级目录下。
- 参考 支付宝网站的解决方案