使用PBFunc在Powerbuilder中支付宝当面付款功能


Posted in Javascript onOctober 01, 2016

在PB实现支付宝当面付的功能,需要先在支付宝进行商户签约,并设置相关的公钥信息(具体参考支付宝文档)。

然后使用对应的私钥文件对参数进RSAWithSha1前面计算。具体代码如下:

string ls_pubFileName,ls_priFileName
n_pbfunc_cryp lnv_cryp
ls_priFileName ="D:\pbfunclib_pri.pem"//私钥文件
string ls_str
string ls_appId,ls_secret,ls_biz_content
ls_appId ="3434343"//改成你的appid
ls_biz_content='{"out_trade_no": "2015020011","scene": "bar_code","auth_code": "'+sle_1.Text+'","subject": "当面付条码支付","total_amount": "0.01"}'
ls_str ="app_id="+ls_appId
ls_str +='&biz_content='+ls_biz_content
ls_str +='&charset=utf-8'
ls_str +='&method=alipay.trade.pay'
ls_str +='&sign_type=RSA'
ls_str +='×tamp=2016-05-08 11:27:15'
ls_str +='&version=1.0'
string ls_sigStr
blob utf8R
utf8R =lnv_cryp.of_str2utf8(ls_str)
if lnv_cryp.of_sha1withRsa(ls_priFileName,utf8R,lnv_cryp.HASH_RESULT_DEFAULT,ls_sigStr) then
  MessageBox("提示","签名成功:"+ls_sigStr)
Else
  MessageBox("提示","签名失败")
end if
/*验证签名可以不需要调用*/
ls_pubFileName ="D:\pbfunclib_pub.pem"//在D盘生成公钥文件pbfunclib_pub.pem
IF Not lnv_cryp.of_RSAVerifyFileSHA1(ls_pubFileName,utf8R,ls_sigStr,lnv_cryp.HASH_RESULT_DEFAULT) Then
  MessageBox("提示","验证签名失败")
else
  messagebox("","验证签名成功")
End IF
//ls_str +=''
n_pbfunc_http lnv_http
lnv_http.of_clear()//清空参数
string ls_data
ls_data = "app_id="+wf_alipay_urlencode(ls_appId)
ls_data += "&biz_content="+wf_alipay_urlencode(ls_biz_content)
ls_data += "&charset="+wf_alipay_urlencode("utf-8")
ls_data += "&method="+wf_alipay_urlencode("alipay.trade.pay")
ls_data += "&sign_type="+wf_alipay_urlencode("RSA")
ls_data += "&sign="+wf_alipay_urlencode(ls_sigStr)
ls_data += "×tamp="+wf_alipay_urlencode("2016-05-08 11:27:15")
ls_data += "&version="+wf_alipay_urlencode("1.0")
lnv_http.of_set_URL("https://openapi.alipay.com/gateway.do?"+ls_data)
Blob lblb_data
string ls_error
IF lnv_http.of_post(lblb_data,ls_error) Then
  string gbkData
  gbkData = lnv_cryp.of_utf8ToGbk(lblb_data)//由于返回来的是utf-8编码,直接显示会乱码
  MessageBox("提示",gbkData+" "+string(lblb_data))
Else
  MessageBox("提示","执行失败")
End IF

其中wf_alipay_urlencode函数代码如下:

//ls_str为参数
n_pbfunc_encode lnv_encode
string ls_content,ls_reserved//指明不需要编码的字符
ls_reserved =""//都需要编码
string ls_sigStr
blob utf8R
utf8R =lnv_encode.of_str2utf8(ls_str)
lnv_encode.of_URIEncode2(utf8R,ls_content)
return ls_content

以上所述是小编给大家介绍的使用PBFunc在Powerbuilder中支付宝当面付款功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复的。

Javascript 相关文章推荐
从零学jquery之如何使用回调函数
May 16 Javascript
jquery显示隐藏元素的实现代码
May 19 Javascript
js 实现一些跨浏览器的事件方法详解及实例
Oct 27 Javascript
mui开发中获取单选按钮、复选框的值(实例讲解)
Jul 24 Javascript
input输入框内容实时监测(附代码)
Aug 15 Javascript
微信小程序实现点击文字页面跳转功能【附源码下载】
Dec 12 Javascript
JS在Array数组中按指定位置删除或添加元素对象方法示例
Nov 19 Javascript
windows下create-react-app 升级至3.3.1版本踩坑记
Feb 17 Javascript
利用js canvas实现五子棋游戏
Oct 11 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
Oct 29 Javascript
Express 配置HTML页面访问的实现
Nov 01 Javascript
ant design charts 获取后端接口数据展示
May 25 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
Oct 01 #Javascript
javascript代码调试之console.log 用法图文详解
Sep 30 #Javascript
JS实现表单多文件上传样式美化支持选中文件后删除相关项
Sep 30 #Javascript
微信小程序 Audio API详解及实例代码
Sep 30 #Javascript
微信小程序 Record API详解及实例代码
Sep 30 #Javascript
微信小程序 Image API实例详解
Sep 30 #Javascript
微信小程序 wx.request(object) API详解及实例代码
Sep 30 #Javascript
You might like
一个PHP数组应该有多大的分析
2009/07/30 PHP
PHP的cURL库简介及使用示例
2015/02/06 PHP
php检查是否是ajax请求的方法
2015/04/16 PHP
JS应用之禁止抓屏、复制、打印
2008/02/21 Javascript
javascript模块化是什么及其优缺点介绍
2013/09/02 Javascript
document.compatMode的CSS1compat使用介绍
2014/04/03 Javascript
从零学JSON之JSON数据结构
2014/05/19 Javascript
Bootstrap组件学习之导航、标签、面包屑导航(精品)
2016/05/17 Javascript
AngularJS基础 ng-disabled 指令详解及简单示例
2016/08/01 Javascript
IOS中safari下的select下拉菜单文字过长不换行的解决方法
2016/09/26 Javascript
基于JavaScript实现焦点图轮播效果
2017/03/27 Javascript
Bootstrap-table使用footerFormatter做统计列功能
2018/09/07 Javascript
Three.js实现简单3D房间布局
2018/12/30 Javascript
微信小程序中weui用法解析
2019/10/21 Javascript
react组件基本用法示例小结
2020/04/27 Javascript
js中实现继承的五种方法
2021/01/25 Javascript
安装Python的web.py框架并从hello world开始编程
2015/04/25 Python
Python实现学生成绩管理系统
2020/04/05 Python
Tornado 多进程实现分析详解
2018/01/12 Python
使用python爬虫获取黄金价格的核心代码
2018/06/13 Python
python3读取csv和xlsx文件的实例
2018/06/22 Python
django 外键model的互相读取方法
2018/12/15 Python
python多线程http压力测试脚本
2019/06/25 Python
使用python分析统计自己微信朋友的信息
2019/07/19 Python
如何学习Python time模块
2020/06/03 Python
HTML5手机端弹出遮罩菜单特效代码
2016/01/27 HTML / CSS
某公司Java工程师面试题笔试题
2016/03/27 面试题
员工自我鉴定
2013/10/09 职场文书
写自荐信要注意什么
2013/12/26 职场文书
爱与责任师德演讲稿
2014/08/26 职场文书
学校师德师风自我剖析材料
2014/09/29 职场文书
国情备忘录观后感
2015/06/04 职场文书
2016年师德学习心得体会
2016/01/12 职场文书
利用python Pandas实现批量拆分Excel与合并Excel
2021/05/23 Python
Docker 镜像介绍以及commit相关操作
2022/04/13 Servers
CentOS7设置ssh服务以及端口修改方式
2022/12/24 Servers