使用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 相关文章推荐
Mootools 1.2教程(21)——类(二)
Sep 15 Javascript
Js基础学习资料
Nov 23 Javascript
jquery.post用法关于type设置问题补充
Jan 03 Javascript
javascript函数声明和函数表达式区别分析
Dec 02 Javascript
jQuery中ajax的get()方法用法实例
Dec 26 Javascript
JS动态显示表格上下frame的方法
Mar 31 Javascript
Bootstrap基本插件学习笔记之Alert警告框(20)
Dec 08 Javascript
基于Vue如何封装分页组件
Dec 16 Javascript
jQuery基于闭包实现的显示与隐藏div功能示例
Jun 09 jQuery
Vue 重置组件到初始状态的方法示例
Oct 10 Javascript
解决在layer.open中使用时间控件laydate失败的问题
Sep 11 Javascript
jquery实现异步文件上传ajaxfileupload.js
Oct 23 jQuery
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验证码类代码( 最新修改,完全定制化! )
2010/12/02 PHP
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
2013/06/01 PHP
php中define用法实例
2015/07/30 PHP
PHP如何通过AJAX方式实现登录功能
2015/11/23 PHP
PHP简单判断手机设备的方法
2016/08/23 PHP
Yii2.0中使用js异步删除示例
2017/03/10 PHP
PHP 实现公历日期与农历日期的互转换
2017/09/13 PHP
php设计模式之观察者模式定义与用法经典示例
2019/09/19 PHP
Jquery 表格合并的问题分享
2011/09/17 Javascript
Notify - 基于jquery的消息通知插件
2011/10/18 Javascript
利用浏览器全屏api实现js全屏
2014/01/16 Javascript
jQuery学习笔记之 Ajax操作篇(一) - 数据加载
2014/06/23 Javascript
js简单倒计时实现代码
2016/04/30 Javascript
jquery easyUI中ajax异步校验用户名
2016/08/19 Javascript
详解Vue SPA项目优化小记
2018/07/03 Javascript
微信小程序登录session的使用
2019/03/17 Javascript
原生js实现each方法实例代码详解
2019/05/27 Javascript
vue+elementUI 复杂表单的验证、数据提交方案问题
2019/06/24 Javascript
JavaScript数组排序功能简单实现
2020/05/14 Javascript
Antd表格滚动 宽度自适应 不换行的实例
2020/10/27 Javascript
Python跨文件全局变量的实现方法示例
2017/12/10 Python
python中类的输出或类的实例输出为这种形式的原因
2019/08/12 Python
Pycharm 2019 破解激活方法图文详解
2019/10/11 Python
在python3中使用shuffle函数要注意的地方
2020/02/28 Python
linux mint中搜狗输入法导致pycharm卡死的问题
2020/10/28 Python
美国在线购买和出售礼品卡网站:EJ Gift Cards
2019/06/09 全球购物
新西兰Bookabach:查找全球度假屋
2020/12/03 全球购物
教师旷工检讨书
2014/01/18 职场文书
函授药学自我鉴定
2014/02/07 职场文书
酒店管理求职信范文
2014/04/06 职场文书
汽车专业求职信
2014/06/05 职场文书
班主任先进事迹材料
2014/12/17 职场文书
工会经费申请报告
2015/05/15 职场文书
行政处罚听证告知书
2015/07/01 职场文书
小学体育跳绳课教学反思
2016/02/16 职场文书
Golang 实现WebSockets
2022/04/24 Golang