使用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 相关文章推荐
学习YUI.Ext基础第一天
Mar 10 Javascript
关于Aptana Studio生成自动备份文件的解决办法
Dec 23 Javascript
让IE8支持DOM 2(不用框架!)
Dec 31 Javascript
这些年、我收集的JQuery代码小结
Aug 01 Javascript
javascript教程之不完整的继承(js原型链)
Jan 13 Javascript
jQuery ztree实现动态树形多选菜单
Aug 12 Javascript
简单实现AngularJS轮播图效果
Apr 10 Javascript
vue实现的请求服务器端API接口示例
May 25 Javascript
layui下拉列表select实现可输入查找的方法
Sep 28 Javascript
JavaScript Array.flat()函数用法解析
Sep 02 Javascript
vue中的循环对象属性和属性值用法
Sep 04 Javascript
详解前端任务构建利器Gulp.js使用指南
Apr 30 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合并数组的2种方法小结
2016/11/24 PHP
PHP水印类,支持添加图片、文字、填充颜色区域的实现
2017/02/04 PHP
PHP中for循环与foreach的区别
2017/03/06 PHP
jquery 抽奖小程序实现代码
2016/10/12 Javascript
jQuery图片切换动画特效
2016/11/02 Javascript
浅谈jQuery hover(over, out)事件函数
2016/12/03 Javascript
jquery实现简单的瀑布流布局
2016/12/11 Javascript
angularJS之$http:与服务器交互示例
2017/03/17 Javascript
ES6新特性四:变量的解构赋值实例
2017/04/21 Javascript
Vue官网todoMVC示例代码
2018/01/29 Javascript
vue-cli下的vuex的简单Demo图解(实现加1减1操作)
2018/02/26 Javascript
Angular事件之不同组件间传递数据的方法
2018/11/15 Javascript
详解JavaScript 异步编程
2020/07/13 Javascript
[01:02:10]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第一局
2016/02/26 DOTA
[49:08]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[03:42]2018完美盛典-《加冕》
2018/12/16 DOTA
[02:50]【扭转乾坤,只此一招】DOTA2全新版本永雾林渊开启新篇章
2020/12/24 DOTA
django轻松使用富文本编辑器CKEditor的方法
2017/03/30 Python
Mac中Python 3环境下安装scrapy的方法教程
2017/10/26 Python
python实现图片批量压缩程序
2018/07/23 Python
浅谈pycharm的xmx和xms设置方法
2018/12/03 Python
Python3字符串encode与decode的讲解
2019/04/02 Python
简单了解python filter、map、reduce的区别
2020/01/14 Python
Python内置类型性能分析过程实例
2020/01/29 Python
在Python中用GDAL实现矢量对栅格的切割实例
2020/03/11 Python
Django 解决开发自定义抛出异常的问题
2020/05/21 Python
Expected conditions模块使用方法汇总代码解析
2020/08/13 Python
Django自带用户认证系统使用方法解析
2020/11/12 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
2021/01/27 Python
悦木之源美国官网:Origins美国
2016/08/01 全球购物
巴西最大的玩具连锁店:Ri Happy
2020/06/17 全球购物
诺思信科技(南京)有限公司.NET笔试题答案
2013/07/06 面试题
大学生专科毕业生自我评价
2013/11/17 职场文书
2014年销售人员工作总结
2014/11/27 职场文书
MySQL索引知识的一些小妙招总结
2021/05/10 MySQL
Python自动化实战之接口请求的实现
2022/05/30 Python